日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

代碼編程教學入門 代碼怎么編寫( 二 )

實際工程中,常見的分類維度主要是兩種,按功能性或業(yè)務域分類 。

  • 功能性分類:metaq、mapper、service、dao等 。
  • 業(yè)務域分類:user、item、order、promotion等 。
同一層級的包,要嚴格保持分類維度的一致性,要么先按業(yè)務域分類,再按功能性分類;要么就先按功能性分類,再按業(yè)務域分類 。
代碼編程教學入門 代碼怎么編寫


2.2 函數(shù)設計原則
有時候,優(yōu)雅的實現(xiàn)僅僅是一個函數(shù),不是一個類,不是一個框架,只是一個函數(shù) ?!?John Carmack
a. 函數(shù)要短小、專一
  • 短?。阂粋€函數(shù)不超過50行代碼,大量的setXXX()除外 。
  • 專一:一個函數(shù)只做一件事情,符合單一職責原則 。
b. 函數(shù)抽象層次保持一致
遵循金字塔原則,把函數(shù)層層遞進的調(diào)用,理解成結(jié)論先行,自上而下的表達過程 。
同層函數(shù)是對上一層的支撐,同層間要符合MECE法則,應描述和處理同一邏輯范疇的事情,高層抽象和底層細節(jié)不能雜糅在一起,否則會變得凌亂和難以理解 。
MECE是(Mutually Exclusive Collectively Exhaustive)的縮寫,指的是“相互獨立,完全窮盡”的分類原則 。通過MECE方法對問題進行分類,能做到清晰準確,從而容易找到答案 。
代碼編程教學入門 代碼怎么編寫


2.3 模塊分層原則
a. 模塊分層
代碼編程教學入門 代碼怎么編寫


  • client:外部可見層(暴露服務聲明)
  • service:業(yè)務邏輯層,對client層的實現(xiàn),協(xié)調(diào)domain和infrastructure一起完成業(yè)務邏輯 。
  • domain:領(lǐng)域?qū)?,對應DDD中的領(lǐng)域知識 。
  • infrastructure:基礎設施層,數(shù)據(jù)庫訪問、消息、外部調(diào)用等 。
  • start:應用啟動層,主要是項目啟動時的靜態(tài)配置 。
b. 模塊內(nèi)包分層
分包的建議:
  • 如果有多個一級域,建議:一級按業(yè)務分包,二級按功能分包,三級可按子領(lǐng)域分包 。
  • 如果僅一個一級域,建議:一級按功能分包,二級按子領(lǐng)域分包 。
例如:
代碼編程教學入門 代碼怎么編寫


三、耦合與內(nèi)聚
軟件設計的目標是高內(nèi)聚、低耦合 。如果代碼是高耦合和低內(nèi)聚的,就會出現(xiàn)修改一個邏輯,多處代碼要修改,可能影響到多個業(yè)務鏈路,增加了出bug的業(yè)務風險,同時擴大了測試回歸的范圍,導致研發(fā)成本增加 。
耦合和內(nèi)聚,是我們常掛在嘴邊的話,但是大家經(jīng)常說不太清楚,講不太明白,很難衡量:
  • 什么樣的叫高內(nèi)聚,什么樣的叫低耦合?
  • 高內(nèi)聚要高到什么程度,低耦合要低到什么程度?
3.1 耦合的類型
代碼編程教學入門 代碼怎么編寫


耦合是描述模塊(系統(tǒng)/模塊/類/函數(shù))之間相互聯(lián)系(控制/調(diào)用/數(shù)據(jù)傳遞)緊密程度的一種度量 。
  • 緊耦合:模塊之間聯(lián)系越緊密,耦合性就越強,模塊的獨立性則越差 。
  • 松耦合:模塊之間聯(lián)系越松散,單個模塊解決問題的目的越明確,模塊的獨立性越強 。
a. 非直接耦合
代碼編程教學入門 代碼怎么編寫


如果兩個模塊之間沒有直接關(guān)系,它們之間的聯(lián)系完全是通過主模塊控制調(diào)用來實現(xiàn)的,這就是非直接耦合,這種耦合的模塊獨立性最強 。
代碼編程教學入門 代碼怎么編寫


b. 數(shù)據(jù)耦合

推薦閱讀