上图的事件是每个码农都非常抓狂的问题,其实这个问题本身就有点矛盾,在日常生活和工作中,到底是该认真写代码然后到头来白忙一场,还是先狂写初步完成任务占领市场然后再优化呢,很纠结。。
我们总是想把一个集美感和功能于一体的程序展现给用户,但是这样的程序不是短时间能够做出来的,码农的绝大部分工作精力是在维护代码上,至少在我所工作的部门是这样的。由此观点出发,码农界形成了如下共识:
代码首先是写给人看的。
重写代码的客观原因
经过前仆后继呕心沥血的堆砌,摆在面前的代码,就如同瓦力在末日世界执着搭建的垃圾大厦,表面上看非常整齐,仔细看去,就是一块块垃圾拼凑而成,代码库中充斥着烂代码。
好的代码大致相同,烂的代码各式各样。随便举一些例子:
- 设计复杂,或者干脆没有设计,无法理解
- 耦合严重,各个模块、功能间相互交织,无法分离
- 代码重复,逻辑重复严重的代码,遍地Ctrl+C、Ctrl+V的代码
- 风格杂乱,前辈码农前仆后继,都留下自己独有的代码性格和印记
- 废弃代码,有用,或者没用,代码就在那里,只增不减
- 注释失效,过时的注释不是好注释,误导码农的注释是流氓注释
重写代码的主观原因
重写代码是码农内心萌生的欲望,是码农对优美代码的追求的正面体现。重写代码可能的动机有哪些呢?
- 代码洁癖,代码整洁很重要,但是过犹不及
- 优雅强迫症,设计要优雅,要抽象,为了适应未来的变化,可是未来在哪里?
- 眼高手低,认为可以轻而易举的重写代码,把既有代码替换掉
- 先苦后甜的心里预期,认为在一番努力之后,后续的维护工作将更加轻松
- 内心泛滥的对后代码农的责任心,希望留下优秀的代码遗产,和一段传说
每个码农都有自己的代码审美观,爱美之心,人皆有之,码农希望能写出优雅的代码,维护优雅的代码,无可厚非,而且是应当鼓励的。