原文:程序員修煉之道-從小工到專家
這時代很多領域都開始需要會寫程式來幫助其提高工作效率,已經不限於本科“計算機科學”的人了,而寫程式過了第一關基本語法的學習後,後多時候就是要培養好的思惟架構和技巧,如何讓自己在寫程式這件事情上事半功倍,絕對很重要。
這章提到如何提升編成效率的原則可以由下面的這句話總結:
“假如你做了,那麼你往後的效率會越來越好,因為…你沒有留給自己爛攤子,並且為自己的未來打造好的工具。”
兩個提升編成效率的要點分別是:
1. 不要重複 Don’t Repeat Yourself (幫未來的自己打造好工具)
2. 代碼的正交性(沒有給自己留爛攤子)
第一個提升自己編成效能的重點:不要重複
在由不同脈絡下的重複行為來分類:
DRY:Don’t repeat yourself
a. 強加的重複 Imposed duplication
多多利用Snippet
常常我們在撰寫代碼或是分析時候,都會編著一些基本架構,像是日期、誰編的、分類等等,重複性的敘述,這邊往往可以藉由編寫簡單的過濾器、或是代碼生成器就可以解決。
另外,編譯器都可以設定snippet等,第一手解決很多重複撰寫的問題。
文檔與代碼
代碼的註解能精簡就精簡,不要註解很“簡單”的代碼。
b. 無意的重複 Inadvertent duplication
這邊指得是代碼撰寫時“設計”不良,所造成的重複,或是data model設計不好,造成後續引用或是修改時候會重複的緩存數據。
c. 無奈的重複 Impatient duplication
“欲速則不達時”我們就會把很多該參數化的代碼混過去,這樣造成後面無法簡單的去引用。
d. 開發者之間的重複 Interdeveloper duplication
在團隊合作開發時,要是沒有很好的策劃,容易重複開發“功能一樣”的模塊,這時候就會浪費時間。
第二個提升自己編成效能的要點:考慮代碼間的正交性
Eliminate effects between unrelated things
這點蠻好理解的,要撰寫的模塊之間彼此獨立,優點可以提高“往後”的生產效率,和降低開發風險,有一些小細節是可以注意的:
- 從一開始的設計就要抱持者layer by layer的概念
- 謹慎地挑選要引入的技術或是工具
- 讓代碼解離
- 避免全局數據的使用
- 模塊測試
- 文檔的撰寫(當你為代碼模塊撰寫文檔,要是這些文檔能輕易的單獨閱讀,當然代表這些代碼模塊之間是獨立的)