您是在违反守则行事吗?
Adapted from Pixabay
重构旧代码,对修改后的程序进行严格的测试,并重新学习新的热门JavaScript框架,这都是好事。 但是,现在该看看另一面了—牛仔编码器和公司时钟打孔器,它们使您可以看到一些糟糕的编程实践,并且从未见过。 这里列出七个差的程序员的行为。 可悲的是,您会经常在现实世界中找到他们的影子。
0.保守秘密
如果您不能成为10倍的程序员,请成为9条命的程序员。 那是一个很难被解雇的人,因为他们知道公司应用程序的秘密知识-而且他们从不分享。
要做到这一点,请做好准备。 初级开发人员会问您问题。 您带他们进行复杂的猜谜游戏,偶尔做出不屑一听的表情和诸如“我们已将其混淆”之类的含蓄评论。
是的,您可以分享知识,互相学习并共同成长。 但是,如果目标是用少的精力获得大的工作安全保障,那么您的优化功能将在这里发挥领导作用。
1.如有疑问,请添加其他设计模式
正如灰胡子所说的那样:“计算机科学中的所有问题都可以通过额外的间接层来隐藏。”在新的桥梁(bridge),适配器(adater),代理(proxy),外观(facet)和工厂(factory)上加螺栓可能无法解决代码中的任何错误。 但是,它们会很好地隐藏它们,从而将您的缺点变成别人的问题。
此外,混淆的错误意味着您可以合理的否认。 谁知道是谁的错?
2.崇拜新事物
每件事都有自己的生命周期。 如果您使用的是JavaScript库,那么这个周期可能只会持续数周。 但是,无论采用哪种技术,终都该转向新的东西了。
新技术使所有人兴奋。 旧的东西可能仍然有用,但是一夜之间这很尴尬。 记住“它仍然有效”是“它在会议上给任何人留下深刻印象吗?”的第二要义。
如果您很聪明,可以多次编写相同的软件而获得报酬,每次使用不同的库和框架。 而且,如果您确实很敏捷,则可以在不必考虑自己的意大利面条式代码的成本之前,跳到一个新平台。 不断变化=一个合理的机会来解决您的错误。
3.不要让测试影响更多的代码
如果您想提高工作效率,就必须扭动这些数字。 测试没有效果。 你知道什么有生产力吗? 工具辅助的代码生成。 您需要大量的东西,根据数据库模式自动生成的整个数据类集。 下周,您可以更改架构并再次运行所有工具。 现在,这是一个很大的承诺。
无论如何,测试会拖累效率。 请记住,敏捷编程意味着永远不必说对不起。
4.写一次,然后不要管了
代码是不可预测的。 但是,当它起作用时,它就像是精致的雪花,小心翼翼地栖息在游戏中的积木塔顶上。 此时,请欣赏您的创作。 但不要冒险更改任何内容。
有必要牢记Pottery Barn的编码规则。
“如果有人拿起它时摔坏了,那反正是他们的问题。”
5.如果一开始没有成功,请复制,复制并粘贴
如果上帝(在这里插入您喜欢的神)想要我们受苦,那么他就不会在键盘上输入Ctrl + C。 对于正确的复制和粘贴,很难没有问题。 您的工作是将关键字的组合拼凑在一起,这将为您带来与StackOverflow相关的代码段。 将其带入您的代码库,您便可以获得一些免费代码!
6.注释只适用于失败者
您是在写代码。 为什么要在注释中重复它呢? (的例外:如果某项功能难以实现且很少使用,请添加TODO注释并从列表中将其选中。)
此策略也有助于养成#0的习惯。
7.这是终用户的错
那就是他们想要的。 不,他们没有具体说“构造一个10 x 6的按钮网格来触发不同的命令”(来自真实公司的实际示例)。 但是他们确实说所有这些命令都需要一键访问。 您是一名程序员,所以您了解逻辑推理的全部知识。
如果有人对您提出疑问,请记住以下几点:根据我给的规格,此用户界面不仅是好的,而且也是的一种。 甚至不必费心推荐更改-客户永远不会同意。 等等,这是一项新功能请求。 我们将需要另一个按钮。
(如果这看起来像八个,那么让我提醒您,我们在这里进行以0为首开始的计数。毕竟,你会认识到我们是Real Programmers™?)
(本文翻译自Matthew MacDonald的文章《The 7 Habits of Highly Ineffective Programmers》,参考https://medium.com/young-coder/the-7-habits-of-highly-ineffective-programmers-cdd997769879)