关于java:糟糕程序员的编程风格

2次阅读

共计 4645 个字符,预计需要花费 12 分钟才能阅读完成。

有一种说法是,“一个平凡的程序员相当于 10 个平庸的程序员”。

没有人违心被贴上了蹩脚程序员的标签,但一个可悲的事实是,很多开发人员没有意识到他们本人就属于这一群体。没有人违心问本人:我是一个蹩脚的开发人员吗?

蹩脚的开发人员

如果你还是编程老手,并且放心本人编写的是蹩脚的代码,那么可能你还不是高手。

不过,你也不必因而灰心丧气,因为只有你不是无可救药的,那就都还有改良的余地。

首先让咱们先来理解对于蹩脚的开发人员的两种次要类型:

  • 牛仔 / 女程序员(为了浏览不便,前面我会统称“牛仔”来指代这种类型)
  • 平庸的开发人员

从实质来看,这两者是雷同的,然而它们通常体现出不同的行为。

牛仔程序员

牛仔程序员会毁掉一个团队,他们喜爱人多势众的做我的项目,并且我的项目往往都很长寿。

那些素来没有受到过任何编写可用代码的领导,自学成才的程序员通常会有成为牛仔程序员的危险,并且很多优良的,有教训的程序员有可能在他们的编码职业生涯的初期,就是一个牛仔程序员。

那么,什么是牛仔程序员的要害属性呢?

1. 编码速度十分快

通常,这种类型的不良开发者开发新性能的速度要远远快过平均值,然而,可怜的是,那么不懂代码的人,因而会认为这些“快枪手”很牛掰(这只会进一步让这些牛仔程序员在自我收缩的路线上越走越远)。

这类开发人员在单独工作的时候最佳,在客户对工夫要求特地紧迫只有尽快实现性能的时候最适宜。

牛仔程序员编码速度十分快——这意味着,他们的代码没有对可维护性有任何布局。所以这就会导致……

2. 凌乱、不可读的代码

疾速代码设计创立进去的我的项目经常会乱得一塌糊涂(或者更确切地说,他们就没有进行代码设计)。这种凌乱的代码,通常被称为“意大利面条式代码”,这指的是它的形态,而不是滋味。

意大利面条式代码难于了解,并且通常没有必要那么宏大和简单,从而导致了其他人难于了解程序员的所作所为,因而这种代码通常是保护的噩梦。这意味着如果有人可怜和一个牛仔程序员一起工作,那么整体生产力就会大幅度降落。

凌乱的代码会导致……阿里的《Java 开发手册》倡议好好学习下吧。也能够在 Java 核心技术后盾发送 手册 间接下载。

3.Bug,无处不在的 bug

如果一家公司的软件在变大和变得更加简单之后,他们的代码依然是一堆意大利面条,那么它就会成为一个期待爆炸的定时炸弹。在最坏的状况下,其结果甚至会像丰田汽车意外减速一样重大。家喻户晓,丰田汽车召回是一场劫难。

更重要的是,意大利面条式代码是不可扩大的。这意味着如果减少新性能,那么这种代码就像行走在雷区上——不晓得什么时候,就会爆炸。这通常是因为牛仔程序员将每个性能都混合在一起,于是任何变动都可能会毁坏软件。如果有更好的代码设计和 / 或单元测试,或者就能阻止这种状况,然而,牛仔程序员不在乎他们的代码是否是可用的,也不想编写测试(因为须要工夫)。

更甚者,从蹩脚的设计决策衍生出的代码构造形式,通常是不可测试的,甚至是无奈调试的。在牛仔程序员身上,还有一种常见的状况是,在他们迅速“修复”一些 bug 的同时,发明出了更多的 bug。因而他们总是感觉很忙,就像勇敢的消防员,疲于到处灭火。

总而言之,每一个蹩脚开发人员发明的 bug 和谬误都会导致耗费生产力。哪怕刚开始的时候,他们看上去很牛,总是能按时实现其余开发人员不敢轻易允诺的编码工作,然而这是以各种意外谬误频频来临为代价的,而这本来能够通过优良开发人员的精心设计和简洁代码编程扼杀在襁褓中。

如果你超过 80%的开发工夫都花在了调试本人的代码上,并且调试过程像一场噩梦的话(即这边解决了一个 bug,那边又进去了另一个 bug),那么阐明代码库不佳,并且你须要改良你的代码。

自卑

有的牛仔程序员并不坏,因为他们只是依据治理 / 客户不可能的期限要求,才生产出了意大利面条式代码(然而,那些器重本人代码的开发人员会抉择来到这样的公司或回绝这样的客户)。

很多初学者和高级开发人员是因为没有编码打算,因此生产出了一堆有 bug 的代码,但有时是因为他们不足问题的教训,从而做出了谬误的决定。

这些初学者通过承受来自于资深的优良的开发者的领导,是能够改过的。然而,如果他们的身边尽是和他们一样或平庸的开发人员,那么他们就会陷入自我感觉良好的错觉中。

只有你违心为本人的谬误承担责任,只有你违心从谬误中学习,那么你就不算是一个蹩脚的开发人员。

使得这些程序员变得蹩脚的最重要的属性,是自卑。

蹩脚的程序员认为他们的代码是完满的,只会归咎于是客户的愚昧导致了程序的解体,而不是反思——为什么他们做的软件会解体。牛仔程序员通常是自私的开发者,因为他们不会对那些不得不为他们“擦屁股”的开发人员抱有一丝同情心。

更为重要的是,这些自卑的程序员总是认为本人的智力出人头地,总是自认为他人没有正文不行,总是认为那些不明确他们代码的人是因为太愚昧,但从来不曾想想为什么大家不了解他们的代码。这种始终坚韧不拔地认为他们本人是对的,总是认为本人出人头地的后果就是,没有与人好好沟通就自作主张地构建了可能会给团队带来很多问题和麻烦的性能。还有的人因为(毫无正当理由地)坚信本人的代码更好,因此有时候甚至会回避“最佳做法”或“规范”。

最糟的是,蹩脚的程序员都不违心听他人说教,不违心从谬误中学习,因为他们不抵赖他们犯了谬误,正如后面提到的,他们通常会推卸责任。

请留神,这并不意味着牛仔程序员在事实中就是难相处或低智商的人——兴许他们就是你遇到过的最和善亲切的人——然而,在他们面对批评的时候,却有着一种积重难返的自卑和不违心承当过错责任的心态。

平庸的开发者

这里我指的平庸意味着“不能胜任”。

在某些方面,平庸的开发者比牛仔程序员更糟,因为他们晓得本人不可能胜任,却不违心去致力,满足于停留在技能阶梯的底层。

不像牛仔程序员,平庸的开发者通常对编程不足趣味,因而在了解编程概念方面有艰难。他们须要很长的工夫来创立一些货色,同时生产的代码欠佳并且充斥问题。他们通常对编码毫无没有激情 / 趣味可言,他们在学习新技术时停顿迟缓,或通常没有理论的操作教训。

兴许平庸的开发者不像牛仔程序员那样具备破坏性,这是因为他们处在一个团队中,但他们相对不会为团队带来任何益处,并且他们提出的解决办法总是劣于优良的开发人员(他们经常会因为谬误的决策,导致满是 bug/ 低效的代码)。

对于平庸的开发者,我就不再多说什么了。最差的预计是,他们可能会连累整个团队,最好的状况是,他们勉勉强强也算是在最初期限内实现了工作。

问题的外围

促使开发者盘踞“蹩脚”宝座的外围是因为他们不足成为一个更好的程序员的欲望。蹩脚的程序员对目前的行为形式感到称心和舒服。更糟的是,牛仔程序员和平庸的程序员通常自认为晓得那些其实他们不晓得的货色。

更重要的是,蹩脚程序员往往对学习新事物不感兴趣,因而不会无意地去改良本人。

这也是为什么在蹩脚程序员的代码上常常能够发现大量复制 & 粘贴的货色,因为他们基本上不会去搞清楚为什么有些中央这些代码见效而有些中央不见效。复制 & 粘贴自身并不是好事,但只有在上面这些状况下:

  • 你晓得你正在在做什么(很多蹩脚的开发人员会自认为他们晓得本人在做什么)
  • 确信复制&粘贴的代码会无效工作
  • 只用于测试 / 测验

蹩脚的开发者通常只会复制粘贴 StackOverflow 代码,而不是去了解它,或者调整解决方案以匹配他们本人的代码。

此外,那些始终保持所谓的“最佳做法”而不去了解为什么这些做法会被认为是“最好”的程序员也能够被归类为蹩脚的程序员。

总而言之,兴许你并不需要晓得一个大型的简单框架的每一个细节的工作原理。然而,你至多应该弄清楚你应用的局部是如何工作的。

蹩脚的程序员从来不会从本人的谬误中吸取教训,要么是因为不抵赖他们犯了谬误,要么是因为他们不足学习的欲望,要么两者皆有。

每个人都会犯错,每个程序员都会制作 bug,这没有什么大不了。然而,如果你总是在反复雷同的谬误,那就意味着你是一个不学习的蹩脚的开发者。

优良的开发人员

通过漫谈无关与蹩脚开发者的相干特色,你可能对是什么造就了优良开发人员曾经有了一个含糊的想法。优良的开发人员是开发队伍的中坚力量,并且他们通常具备以下特色。

有着一种山外有山人外有人的谦虚意识,违心为谬误承担责任,从谬误中学习,写出的代码是可读的、结构化的、通过牢靠设计的、可被轻松调试的,致力了解事物的工作原理,和团队中的其他人有着良好的沟通 / 合作,虚心接受批评和凋谢看待不同的办法,放弃学习新技术的心态,乐于解决问题等等。

确实,对于何为高质量代码是很难掂量的(这就是为什么我没有将它蕴含在特色中,然而这的确是组成开发人员“优良”的一个重要方面)。

那么咱们怎么晓得本人写的代码是否良好呢?请看漫画中的完满解释。

真正优良的开发人员

上面这两种类型的开发人员,才是真正可能帮忙团队的开发人员:

  • MVP
  • 乐于助人的开发人员

MVP

MVP 型开发者不心愿只是简略地解决问题,他们会致力寻找解决问题的最佳办法。他们能应酬挑战,因而在艰难的工作背后总是表现出色——这也是为什么 MVP 型开发者比大多数开发人员更富裕生产力的起因。正是因为这种爱挑战的冒险心态,所以如果雇主调配给他们的工作太容易或太平庸的话,可能会留不住他们,因为一旦他们感到厌倦的话,可能就会抉择来到。

因为 MVP 型开发者对本人工作的自豪感,因而他们经常会在品质和性能上求全责备。事实上,他们会思考很多边缘状况,在产生之前就认真斟酌。在某些状况下,他们是本人的 QA 工程师,会在用户之前先测验本人的代码。他们不会因为所谓的“最佳实际”,就自觉地去做 TDD,然而他们会设计程序,从而大大减少调试的工夫。因而,一个 MVP 型程序员的生产效率至多是一个蹩脚程序员的 10 倍。

MVP 型开发者有着强烈的好奇心,会不惜一切代价地去寻找事物“为什么”工作或不工作的起因。他们会花很多工夫来浏览无关编程的内容,以便于跟上新技术,但却不会随大流,因为他们更感兴趣的是靠本人去找出问题的本源。他们十分酷爱编码,所以常常在业余时间编程,或者是捣鼓业务我的项目,或者是尝试新的技术、工具和语言。

最初,MVP 型开发者自信且谦虚,因为他们始终牢记,三人行必有我师,他们喜爱和更优良的人才一起单干,因为他们能从这些更好的开发人员身上学习。

总结

要想成为一个优良的,甚至是平凡的开发人员,最重要的因素是本人。

兴许这须要天才和一种真正与生俱来的激情,能力成为顶尖的程序员,但只有对编程有趣味,任何人都能够是一个“好”的程序员。

如果你不想成为一个优良的程序员,那么没有人,能够帮你实现。你才是本人最大的敌人和对手,你的指标应该始终是成为一个比当初更好的程序员。

作者:Yi-Jirr Chen

原文:https://jaxenter.com/everything-you-need-to-know-about-bad-programming-styles-120611.html

译文:http://www.codeceo.com/article/bad-programming-style.html

翻译:码农网 – 小峰

近期热文举荐:

1.1,000+ 道 Java 面试题及答案整顿(2021 最新版)

2. 终于靠开源我的项目弄到 IntelliJ IDEA 激活码了,真香!

3. 阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!

4.Spring Cloud 2020.0.0 正式公布,全新颠覆性版本!

5.《Java 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

正文完
 0