優美代碼重要嗎?毋庸置疑,答案是肯定的,不過前提是開發滿足項目的時間、範圍、成本、品質約束。項目必須滿足時間要求,拖延項目等於增加成本;必須滿足範圍要求,超出是浪費,少於是偷工減料;一個企業賴以生存的是資源,我相信沒有那個老闆願意看到成本不斷增長;滿足品質要求,要保證項目所有重要干係人對開發過程及結果都滿意。這些都是淩駕於技術、代碼之上的約束,在以上基礎上,我們才應該考慮代碼,考慮技術。
目前,中國大地許多中小型IT企業管理是非常不規範、缺少流程化的,這種情況下代碼寫的怎麼樣全靠開發人員的技術水平與責任心。要寫出好的代碼不能靠別人,要靠自己。你要通過不斷的學習,改進自己的技術,提升編碼水平;你要對項目、對團隊、對自己的工作具備非常強的專業態度,要站在你的管理者、下屬、未來可能出現的維護者、測試者、使用者負起責任。你需要在滿足項目其他約束的情況下,寫出最合適的代碼。
代碼的優美程度是評估一個程式員技術水平的重要指標。優美的代碼是可維護、可擴充、可傳承、健壯性強、風格統一的。軟體需求是不斷變更的,代碼具備可維護性,我們才能迅速反饋變更;維護分修改、擴充兩類,修改代碼可以很快實現,但不適合大範圍修改,擴充難度高,但針對大型變化是非常有效,可維護性之外我們需保證系統的可擴充性;可傳承是指師兄走後師弟非常容易看懂代碼,從中學習、維護;健壯性強才能保證系統可運行性,不會三天兩頭死一次;風格統一的代碼才能容易上手學習。
我是在去年開始學習代碼優秀之道。我的學習路徑是:重構=》設計模式=》物件導向設計=》敏捷開發。學習重構,我們才能識別代碼臭味,才能知道自己代碼裡面有那些缺點,要怎麼消除;設計模式提供一種通用的解決方案,讓你學會處理代碼重複,提高代碼重用性;設計模式是一種模板,教人怎麼做,物件導向設計是一種思想,教人怎麼想,人學東西都是先模仿後領會的,學習物件導向設計可以領會許多原則,領會為什麼這麼做,為什麼這麼想;敏捷開發雖然很大程度上是管理方面的知識,但它提出的那種迅速開發、迅速反饋思維可以讓人學會做事的優先次序,讓人重視反饋、重視本質問題,許多剛開始接觸設計模式的人都容易過分設計,處處皆模式,敏捷開發可以讓人擺脫這種傾向。