The Principles of Good Programming

 Artima最新文章,作者正在搞C#培訓,總結以下幾個原理:
1.DRY(擰乾代碼不要有水分) 不要有重複代碼,很多概念實際就是爲此存在,比如loops function和classes等等,如果有重複,進行抽象。http://en.wikipedia.org/wiki/Don%27t_repeat_yourself


2.抽象原理,和DRY有關,代碼中沒一個重要的功能塊都應該擰乾抽象一下。http://en.wikipedia.org/wiki/Abstraction_principle_(programming)

3.KISS(Keep it simple, stupid!),簡化避免複雜是關鍵目標,簡單代碼花費時間短(代碼寫得少,腦子動得不見得少),少代碼有較少BUGs和更易於修改。(banq:耦合都很高的代碼有時很簡單,但不易於修改)http://en.wikipedia.org/wiki/KISS_principle

4.避免創造YAGNI,不要增加你不需要的功能:http://en.wikipedia.org/wiki/YAGNI

5.做最簡單只要能工作的設計,始終問自己,這樣簡單設計能夠工作嗎?http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html

6.不要讓我思考,代碼應該易於理解。http://www.sensible.com/dmmt.html

7.開閉原則 軟件實體如classes類 模塊和functions應該開放易於擴展,但是不允許修改,不要寫其他人能夠修改的類,而是寫出人們能夠擴展的類(banq:可用面向對象的繼承 實現等方法擴展多個子類)。
http://en.wikipedia.org/wiki/Open_Closed_Principle

8.寫代碼要值得將來維護。http://c2.com/cgi/wiki?CodeForTheMaintainer

8.做最少令人驚訝的事,代碼易於理解,名稱等各方面不要讓人產生驚訝的副作用。http://en.wikipedia.org/wiki/Single_responsibility_principle

9.最少耦合,代碼(代碼塊,函數,類,等等)的任何部分,應儘量減少對其他地區的代碼的依賴關係。這是通過使用儘可能少的共享變量 。“低耦合往往是一個結構完善的計算機系統的標誌和一個好的設計,高凝聚力相結合,實現更高的可讀性和可維護性的總體目標
http://en.wikipedia.org/wiki/Coupling_(computer_programming)

10.最大化凝聚性:相同功能代碼應該在同樣一個組件中。http://en.wikipedia.org/wiki/Cohesion_(computer_science)

11.隱藏實現細節,隱藏實現細節,將允許改變執行代碼組件,而最低限度影響的任何其他使用該組件的模塊(實現細節怎麼做是戰術,做什麼是方向戰略)http://en.wikipedia.org/wiki/Information_Hiding

12.迪米特Demeter法則 ,代碼組件只應該和他們的直接關係聯繫(直系血緣關係),如他們繼承的父類,包含的對象和參數傳遞的對象http://en.wikipedia.org/wiki/Law_of_Demeter

13.避免過早優化,除非你的代碼比你預期慢,否則不要提早優化,過早優化是罪惡根源,http://en.wikipedia.org/wiki/Program_optimization

14.代碼能夠重用是好的,重用代碼提高代碼的可靠性,縮短開發時間。http://en.wikipedia.org/wiki/Code_reuse

15.分散關注:不同功能區域,應該由不同代碼和最小重疊的模塊組成。(AOP是分散關注典型模式)

16.擁抱變化,這是一本Kent Beck書籍副標題,也被認爲是極限編程和敏捷方法在一般的宗旨。最大限度地減少耦合使代碼更容易改變。無論你是一個極端編程的醫生,這種方法對於編寫代碼是有道理的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章