想要好代码问世,我们至少要写两次

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

  英文原文:Great code is written twice (or more)

  在过去的几年里,越来越多的人趋向于敏捷开发。而这方面的技术也不是最近才出来的,早在 80 年代 90 年代就已经有了。但却是在最近,程序员、商业顾问、建筑师和客户才渐渐青睐于敏捷开发。

  不断变化的需求

  在开始项目之前,我们是没办法写全所有要求的,这一点已经成为了共识。随着项目进程的推进,这些需求才会一个个被提出来。在我们一点点为整个程序添砖加瓦写代码的时候,还需要不断融合客户的最新要求。这就是哲学所说,事物是不断变化发展的道理,我们要与时俱进。就像生活中,我们需要通过一步一步的改进以达到最优一样。

  不断变化的代码!

  这才是全文的重点,你绝对不能不看,否则就等于入宝山而空手归了。现在的大多数程序员已经走进了一种思维定势,那就是需求必须逐步提取。但是他们似乎忘记了他们的工作!?他们竟然还认为一个项目一旦开启,框架及其结构就得固定不变。代码一旦能运行了,就高枕无忧了。

  真是大错特错。根据我多年的经验,如果想写出好代码,那么就必须千锤百炼,至少要写两次代码。第一次写的时候因为赶进度或者别的原因,没有注释或者写明代码的用途。当然如果你借鉴某些模式,然后提取可用的方法,使自己要负责的工作大大减少,这也是可行的。但是我不得不说,这样的写出来的代码或许会相当不错,但绝对不会是优秀的代码。

  在我现在着手的这个项目中,几乎所有重要的功能都被多次修改。虽然看上去进展缓慢,但是谁也不能否认代码的确变得越来越好了。但是当你第三或者第四次增删某个代码片段,或者你又一次修复 bug 成功的时候,整段代码对你而言其实已经了如指掌了。这个时候,一旦看到这段代码,我们就会直觉跳过它,甚至不愿意多看一眼。想知道当我有这种厌倦感的时候我是怎么做的吗?我会删除这段代码。

  大家往往会犹豫:那不是意味着我要重新写过了!?

  你又错了!虽然,你的 IDE 上面的的确确是啥都没了(可能有些测试会侥幸幸免于难),但是对这段代码的各个方面的理解却是加深了。因为你对以前那段代码是怎么写的已经烂熟于心,所以对于缺陷和 bug 也胸有成竹。而基于这些方面的深度掌握,你完全可以写出更好的代码——甚至是优秀的代码。当然我们也可以不删代码,而选择不断改进代码、重构方式和功能等等。但是,这又哪里比得上重写一次最后得到的程序好呢?

  正如俗语有言,“宝剑锋从磨砺出,梅花香自苦寒来”一样,“凤凰涅盘”才能“浴火重生”。这句话也适用于需求、架构以及代码,重写绝对能让你的代码焕发出夺目的光彩。

  写两次代码,太慢了?

  当我提出我的观点,代码至少要写两次的时候,所有人都持反对意见:比起别人这不是需要花双倍的时间才能完成项目了吗?如果你想出色完成项目,这样的想法不亚于南辕北辙。以下是我给出的理由:

  1. 第二次写代码所用的时间绝对比你第一次写要少很多很多。

  2. 重写的代码质量好、可维护性高、可扩展性大。

  文章的最后,祝各位好运,希望本文对你的编程事业有所帮助。如果你觉得重写代码毫无用途,欢迎联系相互探讨、共同进步。

  译文链接:http://news.html5tricks.com/better-code-write-twice.html

  翻译作者:IT 新闻 – 蒋丽丽


网载 2014-07-06 23:09:13

[新一篇] 萌妹子當道,微軟的宅男攻陷戰略

[舊一篇] Android的崛起和面臨的困境
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表