簡單說就是「讓開發人員與領域專家合作(開很多會)以暸解領域知識並劃分領域界限並轉換為軟體架構及程式碼的手法。」
拜讀了iThome鐵人賽 - Think in Domain-Driven Design 系列對於DDD後的初步認知。
下面引述Domain-Driven Design Reference對於DDD的解釋:
Domain-Driven Design is an approach to the development of complex software in which we: 1. Focus on the core domain. 2. Explore models in a creative collaboration of domain practitioners and software practitioners. 3. Speak a ubiquitous language within an explicitly bounded context.
即DDD為專注核心業務領域(core domain),讓領域人員(domain practitioners)(使用者、領域專家)與開發人員(software practitioners)合作探索出領域模型(models)並在情境限界(bounded context)內以共通語言(ubiquitous language)溝通的軟體開發方法。
不過光是要常開會討論我想實際上在大多數公司應該很難執行,多半會跟敏捷開發一樣變成半調子做樣子的模式。然而對於近年流行的微服務(microservices)的粒度切分上感覺是個很好的搭配。
沒有留言:
張貼留言