写下这行代码时,只要我和天主知道是怎么回事

来源:CocoaChina ·2018年08月07日 09:08

01. 烂代码的途径依靠

假设你保护过运行了几年,乃至十几年的代码库,必定会有这样的体会:

" 这一坨代码是干嘛用的?看半响也不知什么意思?"

" 把这些看不懂的代码删了?要是出事了谁背锅?算了,仍是保持原状吧 "

" 仅仅简略地做一个功用的批改,却要一起去改五六处代码!不行,必定要重构… "

" 算了,这儿的代码有说不清的玄机,重构相当于在给自己挖更大的坑,仍是依照本来的写法吧… "

所以,烂代码就好像腐朽的苹果,一开始仅仅烂了几个点,很快就会延伸,直至烂透,再全体推倒重来

我见过许多程序员在遇到上一任留下的烂代码时,首要骂几句:" 靠,这 TM 谁写的废物,这怎样保护啊?"

吐槽一番后,就持续依照上一任们的写法持续写下去。假设有其别人问为什么要这么写,他们就会把全部职责都归咎于上一任。就好像别人写的代码就是豆腐渣,而自己却无辜纯真得好像白莲花。

烂代码的演化好像在雪地里走路,前人踏出了一个浅浅的坑。后边的人为了贪心便利,持续沿着这个坑前行,慢慢地,这些坑就变成了路,后续的人都沿用这条路走到黑,即便有些人想改动现状,踏出了一些分支,也无法改动整个局势,反而令道路愈加令人困惑。

脚印

02. 关于烂代码应采纳零忍受

相同一个人,假设在夜间大排档吃饭,他会大声喧闹,抽烟,乃至随地吐痰。他并不觉得这样有什么不当,由于周边的环境就是这样。

假使他是去星级酒店吃饭,天然就会捆绑自己的行为,瞬间变成一个绅士。

同理,一个新人假设看到公司的代码写得很整齐,都是一致的标准,每个文件、每个类、每个函数都有相应的注释。并且代码提交后还会有其别人进行 Review,那么即便他是一个菜鸟,也会仿照着其别人的代码标准,究竟谁也不会在光亮如面的星级酒店当众吐痰…

但假设新人看到公司的代码风格各异,命名毫无规矩,存在许多冗余的,不知所云的代码,并且多处选用硬编码的方法。那么他必定会觉得这家公司的代码能够随意写,只需能跑起来就能够了。即便是一个自身很考究编码标准的人,在这种代码环境下,也难免会写出冗余糟糕的代码。就好像大学宿舍只需有一个人不考究卫生,整个环境就很杂乱,由于其别人不行能去保护公共的环境。

因而,烂代码是有极强的感染性。破窗原理相同适用于代码。关于烂代码,应该在一开始就采纳零忍受的情绪。即便有些代码迫于进展压力,不得已而为之,也要充沛写好注释,避免污染到其他代码

破窗

03. 代码标准的重要性

有些程序员恃才傲物,关于代码标准不以为然,觉得自己共同的风格才是最高雅的,自己是一个艺术家,不该该被呆板的标准所捆绑。

我想大多数程序员的才能都比不上 google 的工程师吧,而 google 的开发人员,入职的榜首件事就是了解他们的代码标准,他们的代码标准极端谨慎,细化到每一个细节,如:命名标准,注释标准,大括号是否换行,缩进用 tab 仍是空格,变量名用驼峰法仍是下划线…

标准

拟定标准的意图是进步团队协作的功率,假设听任不同人以自己喜爱的风格写代码,那么整个代码库将会变成一个令人晕厥的大杂烩。特别是关于那些很灵敏的编程言语,不遵从标准的结果是灾难性的。

对此,PHP 程序员应该深有体会。毫不夸大地说,1000 个 PHP 程序员会有 1000 个以上的代码风格,即便是同一个人,在不同的时期,不同的心境下,写出来的代码风格也不同,横竖怎样写都不会报错,那就怎样爽怎样来。写的人是爽了,后边保护的人就痛苦了。尤其是强迫症的同学,看到那些不符合自己标准的代码,必定要去批改,而他的批改又干与了别人的自在。所以,就相互损伤吧…

尽管每个人都有自己的偏好,但在团队中,应该遵从同一套的标准,才能使协作的本钱降到最低。在团队中,经过悬殊的代码风格来别具一格是愚笨的行为。就好像在正式的宴席上,所有人都西装革履,而你却一件大背心,一个大裤衩,趿拉着拖鞋,唱着小苹果进场。

你,觉得这样适宜吗?

04. 文档的重要性

当我写下这一行代码时,只需我和天主知道是什么意思。一个月后,只需天主才知道是什么意思了…

程序员最怨恨的事:" 为什么别人不写个文档?", 而当要自己写文档时,又觉得:" 这东西,哪用写文档,看下代码就知道了 "。所以,当下一个人接手代码时,又是一阵吐槽,终究很可能自己从头完成功用。许多时分,了解别人的代码,还不如自己从头写来得更高效。

每一个程序员都必须认识到文档的重要性,学会写文档是必备技术。

咱们都是很健忘的,即便是自己写的代码,一个月后,可能都忘了其时为什么这么写了。然后又要重复去翻各种聊天记载,追寻代码,才慢慢地将逻辑串起来。这些消耗时刻的事不会发明任何的价值,却占用了程序员很大部分的时刻。

除非你是高手,能将代码写得非常简练易懂,做到 " 代码即文档 "。不然,文档就是你大脑在某一时刻的快照。往后,你或许别人只需依据文档的索引,就能知道这个需求的详细逻辑是怎样的,是为了处理什么问题,详细的完成方法怎么。

假设你能养成写文档的习气,你必定能节约许多瞎忙的时刻。

相同是炼金术,为什么西方能衍生出化学?由于他们有记载的习气,每次试验是能够重现的,而咱们信仰的是口口相传,把这些上升到了道的层面。这种说不清,道不明的所谓 " 道 ",是无法流程化的,而更像是一种玄机,类似于黑魔法的存在。

编程,应该遵从有记载、可重现的科学方法,而不是靠瞎猜的黑魔法方法。

2008~2017 家电新闻网 Inc. All rights reserved.