好程序需要你写(至少)两遍

最近这些年,越来越多的人开始转向敏捷开发。各种敏捷开发技术并不新鲜,大多是在8090年代发展形成。但只是在最近这些年,程序员和(更重要的是)一些商业顾问,架构师,客户开始变得喜欢和拥抱敏捷开发。

进化中的需求

现在的一种普遍的认识是,在开始编码前,你不可能把所有的需求都写完备。这些需求的确定是一个逐渐发展进化的过程。使用短开发周期/springts,我们一步步的开发程序,使用多次迭代的方式完成从客户方得到的最新需求。这些都是基于一个进化的思想。就像生活中,我们总是通过一步步的改进来达到最好一样。

进化中的代码!

可是,这就完事了吗?如今大部分的程序员都认识到了需求必定是一步步的挖掘出来的。但他们却忘了自己的工作!?他们仍然认为他们的框架和架构在项目开始之初就定型了。同样,代码一旦写成,程序就完成了… 不是吗?

。以我的经验,所有好的程序都至少要写两遍。第一编是你过于仓促,不能很好的理解需求、实现需求。不错,当看到了某种业务模式,我们知道要提炼出方法,围绕着它实现业务职责。你最终写成的代码是非常好的,但,它不是优秀的。

在我们目前的项目中,几乎所有的重要功能模块都从头重写过数次。慢慢的但明显的,代码变得越来越好。一旦你对某段程序做了第三或第四次增补,或又找到了一个bug,你能感觉到这程序什么地方有异味。你开始躲避触碰这段程序,你为不需要在处理这段程序而高兴。当有了这样的感觉后我会怎么做?我会删了这些代码。

可是… 可是… 这样你就要完全从头开始了!?

你又错了! 当然,IDE里空了,代码全没了,也许一些测试程序会存留下来。但你却对你的代码应该做什么有了扎实的认识。你也知道以前这段代码是什么样的,你知道它以前的内伤和异味在哪里!有了这些认识,你能写出更好,甚至是非常优秀的代码!不错,我们也可以保留这些代码,使用一些重构措施…但你可能再也找不到这样好的从头开始、更好的编写它的机会了。

再次,就像生活中的所有事情:要让事情变的完美,你需要经过多次的进化迭代。对你的需求是这样,对你的架构和代码也是如此。

写两遍,就意味着两倍的时间吗?

当告诉人们我的观点是所有的程序都至少写两遍时,他们担心花费两倍的项目时间。但事实远非如此。下面是原因:

  1. 第二次写代码只是用去你初次写代码的很少一部分的时间。
  2. 重写之后,代码的质量会有明显的提高,可维护性,可扩展性都有改善,包括编程的速度。

祝你好运,坚持重新改进你的代码!

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

分享这篇文章:

9 Responses to 好程序需要你写(至少)两遍

  1. ln_ydc says:

    写代码就像看小说,有的小说只是情节吸引人,看一遍就可以了,但有的小说看N遍也不会烦的。

  2. 爱国者 says:

    国内有多少真正的程序员???

  3. 裤衩 says:

    相当有道理!

  4. evan says:

    这对于大公司真是灾难:一个小小的需求会变成一堆的需求文档,浪费时间,反应迟钝。

  5. 不能再同意更多了。 says:

    刚开始做的时候需求还没定型,架构就不会考虑得很周全,中间再催催进度,代码质量更会下降。这样等到二期三期,代码就丑如无盐嫫母了。

  6. hadoop says:

    完全同意

发表评论

电子邮件地址不会被公开。 必填项已用*标注