想要好代碼問世,我們至少要寫兩次

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

  英文原文: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的崛起和面臨的困境
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表