總結|高質量代碼的一些要素

7月28日的平常學習記錄html

高質量代碼三要素:可讀性,可維護性,可變動性

可讀性強:

  • 不要編寫大段代碼設計模式

  • 將段落封裝成一個又一個函數數組

  • 在編寫代碼的工程中養成不斷重構的習慣函數

  • 函數設計遵循的原則:職責驅動設計學習

  • 從上往下的編寫:每一個被分出去的程序,能夠暫時只寫一個空程序而不去具體實現功能,當主程序完成之後,再一個個實現它的全部子程序。ui

  • 當一個函數的代碼行數達到15-20行,開始考慮是否須要重構代碼。url

  • 一個類不該當有太多的函數,函數過多要考慮分爲多個類,一個包也不該該有太多的類設計

  • 釋義名稱:new/add , edit/mod , del , find/queryhtm

  • 釋義名稱:get開頭的函數僅僅用於獲取類屬性對象

  • 註釋:職責驅動設計,首先描述該類的職責

  • 註釋:編寫的是一個藉口 or抽象類,在@author後添加@see,將該接口的抽象類的全部實現類列出來

可維護性:適應軟件在部署和使用中的各類狀況

  • 代碼不能寫死(路徑爲相對路徑 or 經過屬性文件修改 )

  • 預測可能發生的變化

  • 將某些條件設置爲可配置的,須要必要的註釋

可變動性:因需求變化而對代碼進行修改

  • 提升代碼的可複用性

  • 對模型進行分析,用例模型,領域模型,分析模型,正向工程,逆向工程

  • 利用設計模式提升可變動性:經典的32個模式

    • if...else : (重構一下,保證不修改原有代碼,僅僅增長新的代碼就能應付選項的增長):寫成父類方法

    • 選項較多,而且增長選項的可能性很大的狀況下可使用工廠模式

    • 策略模式:解決繼承出現的問題,減小類的繼承,在類中增長某些方法的策略來代替繼承,能夠無限制的增長策略

    • 適配器模式:設計的系統要與其餘系統/模塊交互,可能調用接口或交換數據。我方的接口按照某個協議編寫,保持固定不變,在於真正對方接口時,在前段設計一個適配器類,對方協議變動,能夠更換適配器。(啓發:相似於rank中的service層,傳的參數也一樣儘可能不要限制,而是傳遞數組)(經過適配器接受數據or傳輸數據)

    • 模板模式:一般有一個抽象類,在抽象類中有一個主函數,按順序調用其餘函數(啓發:相似於JdbController extends Controller),比較個性的步驟由其繼承類完成。父類的主函數應當是final,其中的函數能夠是可選步驟,稱爲【hood】,在編寫時,抽象類中並非抽象函數,而是一個空函數,繼承類能夠重載,也能夠什麼也不寫,爲空執行。

  • 職責驅動設計(RDD) & 領域驅動設計(DDD)

  • 根據職責分配行爲和函數

  • 根據需求進行用例分析,根據用例繪製領域模型和分析模型

  • 《UML和模式應用》:RDD以職責爲中心分配行爲,軟件對象與現實世界儘可能保持一致(低表示差別)

  • 《領域驅動設計》:領域模型,需求分析階段創建領域模型

代碼質量評價:低耦合,高內聚(功能,元素除了職責任務,沒有其餘工做)

其餘概念:

  • 高內聚低耦合

  • 領域模型

  • 工廠模式 based on 多態

  • 用例模型

參考:url-link

相關文章
相關標籤/搜索