開發心得之想要好程式碼問世,我們至少要寫兩次

edithfang發表於2014-07-05

在過去的幾年裡,越來越多的人趨向于敏捷開發。而這方面的技術也不是最近才出來的,早在80年代90年代就已經有了。但卻是在最近,程式設計師、商業顧問、建築師和客戶才漸漸青睞于敏捷開發。


不斷變化的需求

在開始專案之前,我們是沒辦法寫全所有要求的,這一點已經成為了共識。隨著專案程式的推進,這些需求才會一個個被提出來。在我們一點點為整個程式添磚加瓦寫程式碼的時候,還需要不斷融合客戶的最新要求。這就是哲學所說,事物是不斷變化發展的道理,我們要與時俱進。就像生活中,我們需要通過一步一步的改進以達到最優一樣。

不斷變化的程式碼!

這才是全文的重點,你絕對不能不看,否則就等於入寶山而空手歸了。現在的大多數程式設計師已經走進了一種思維定勢,那就是需求必須逐步提取。但是他們似乎忘記了他們的工作!?他們竟然還認為一個專案一旦開啟,框架及其結構就得固定不變。程式碼一旦能執行了,就高枕無憂了。

真是大錯特錯。根據我多年的經驗,如果想寫出好程式碼,那麼就必須千錘百煉,至少要寫兩次程式碼。第一次寫的時候因為趕進度或者別的原因,沒有註釋或者寫明程式碼的用途。當然如果你借鑑某些模式,然後提取可用的方法,使自己要負責的工作大大減少,這也是可行的。但是我不得不說,這樣的寫出來的程式碼或許會相當不錯,但絕對不會是優秀的程式碼。

在我現在著手的這個專案中,幾乎所有重要的功能都被多次修改。雖然看上去進展緩慢,但是誰也不能否認程式碼的確變得越來越好了。但是當你第三或者第四次增刪某個程式碼片段,或者你又一次修復bug成功的時候,整段程式碼對你而言其實已經瞭如指掌了。這個時候,一旦看到這段程式碼,我們就會直覺跳過它,甚至不願意多看一眼。想知道當我有這種厭倦感的時候我是怎麼做的嗎?我會刪除這段程式碼。

大家往往會猶豫:那不是意味著我要重新寫過了!?

你又錯了!雖然,你的IDE上面的的確確是啥都沒了(可能有些測試會僥倖倖免於難),但是對這段程式碼的各個方面的理解卻是加深了。因為你對以前那段程式碼是怎麼寫的已經爛熟於心,所以對於缺陷和bug也胸有成竹。而基於這些方面的深度掌握,你完全可以寫出更好的程式碼——甚至是優秀的程式碼。當然我們也可以不刪程式碼,而選擇不斷改進程式碼、重構方式和功能等等。但是,這又哪裡比得上重寫一次最後得到的程式好呢?

正如俗語有言,“寶劍鋒從磨礪出,梅花香自苦寒來”一樣,“鳳凰涅槃”才能“浴火重生”。這句話也適用於需求、架構以及程式碼,重寫絕對能讓你的程式碼煥發出奪目的光彩。

寫兩次程式碼,太慢了?

當我提出我的觀點,程式碼至少要寫兩次的時候,所有人都持反對意見:比起別人這不是需要花雙倍的時間才能完成專案了嗎?如果你想出色完成專案,這樣的想法不亞於南轅北轍。以下是我給出的理由:

1. 第二次寫程式碼所用的時間絕對比你第一次寫要少很多很多。
2. 重寫的程式碼質量好、可維護性高、可擴充套件性大。

文章的最後,祝各位好運,希望本文對你的程式設計事業有所幫助。如果你覺得重寫程式碼毫無用途,歡迎聯絡相互探討、共同進步。

本文轉載自:http://news.html5tricks.com/better-code-write-twice.html
相關閱讀
評論(0)

相關文章