民初思韻網

加入收藏   設為首頁
選擇語言   簡體中文
你好,請 登陸 或 注冊
首頁 人文思韻 傳奇人物 歷史思潮 時代作品 話題討論 國民思韻 民初捐助 賬戶管理
  搜索  
    人文精神 >>> 技術的天空 溫和的思緒
字體    

想要好代碼問世,我們至少要寫兩次
想要好代碼問世,我們至少要寫兩次
網載     阅读简体中文版

  英文原文: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

歡迎訂閱我們的微信公眾賬號!
春秋茶館訂閱號
微信號 season-tea(春秋茶館)
每天分享一篇科技/遊戲/人文類的資訊,點綴生活,啟迪思想,探討古典韻味。
  清末民初歷史人物  民初人物
新與古典文化研究大家
胡適(1891年12月17日-1962年2月24日),原名嗣穈,學名洪騂,字希疆,後改名胡適,字適之,筆名天風、藏暉等,其中,適與適之之名與字,乃取自當時盛行的達爾文學說....
傳奇人物傳記 風華絕代 物華天寶
此間選取古往今來傳奇人物的傳記與軼事,事不分大小,趣味為先,立意新穎,足以激越古今。
資助民初精神網
        回頂部     寫評論

 
評論集
暫無評論!
發表評論歡迎你的評論
昵稱:     登陸  註冊
主頁:  
郵箱:  (僅管理員可見)

驗證:   验证码(不區分大小寫)  
© 2011   民初思韻網-清末民初傳奇時代的發現與復興   版權所有   加入收藏    設為首頁    聯繫我們    1616導航