歷時兩週的第一次【Domain-Driven Design 讀書會】,上週五正式檢討作業。

整個驗收討論的過程,我刻意親自示範何謂「大聲地建模」(Modeling Out Loud)。也順便以此過程,讓大家在現場親自體會作業第 3 題「為什麼作者主張,要透過對話來研究、改善模型?」

用肉身踩雷,比說破嘴更有說服力。折騰這一遭,其實也順便在灌輸敏捷開發的原則:individuals and interactions over processes and tools。


打鐵趁熱。第二輪開始了。

如此下去,我們的團隊會變成什麼樣子呢?真令人期待。



這次,仍然是 Domain-Driven Design 這本書。


Sprint 2 / 分離出領域模型

Chapter 3 - 綁定模型和實作 (Binding Model and Implementation)

Chapter 4 - 分離領域 (Isolating the Domain)



提問


提問 #1

請問,作者警告,若將「分析模型」與「程式實作」分離、分歧,會產生什麼問題?為什麼?

你同意作者的論述嗎?


提問 #2

請問,為什麼作者主張:「程式碼是模型的表達;改變某段程式碼,就改變了相應的模型」?為什麼作者警告,若將分析、建模、設計和編程工作過度分離,會對 model-driven design 產生不良影響?

以你的經驗來說,這是真的嗎?


提問 #3

請問,為什麼作者主張,「負責處理基本業務規則 (business rule) 的,是領域層 (domain layer),而不是應用層 (application layer)」?

你同意作者的論述嗎?


提問 #4

現在,請你一個人,或是和相關的同事合作,嘗試一下:

  • 根據上次讀書會的現場討論時點出的問題、缺少的部分,迭代精煉第一版 Ubiquitous Language & Model。
  • 因為已經是第二次了,所以,這次,需要將 concept coverage 提高到九成。
  • 並且,請根據這次學到的分層架構 (layered architecture),重構之。

⋯⋯而且,會請你真的・說・出・來。

注意:這只是第二版,不需要太完善。隨著讀書會繼續進行下去,我們還會不斷迭代精煉這份模型。

Candidates (including, but not limited to):

  • 摘錄自公司專案的真實語彙 [略]