Domain Distilled
by calendarw on Sep.27, 2008, under design
DDD Charpter 15 講述 Distilled Domain, 入面既野有大部份都以前讀果科 Outsourcing 既理念差唔多, 都係講 Core Competence.
Core Competence 係指企業核心能力, 亦都係企業不可代替既競爭力, 等同於 Sony 既電子細小化技術, Mac 既圖象技術一樣, 每間公司能夠待續成長就要有一個 Core Competence!! 而 Distilled Domain 就係個 Core, 經多次程式員同 Domain Expert 討論及詳細理解過後既精華所在, 但如果一個 Core Domain 得不到質量管理, 最後都係發揮唔到佢競爭優勢.
Domain-Driven, 因為要解決既問題多數係 Domain Problem, 所以如果 Software Developer 未能理解該 Domain, 其實對軟件既質素長遠都有影響. 而當一個不良既設計存在於一個運行緊既系統內, 作為 Software Developer 係咪真係可以說服到管理層 (通常係 Project Manager) 去追求質素而去面對一個有可能存在既風險呢?
因為自己對軟件設計有追求及自己不段既進步, 面對住以前寫過既部份質素無咁好既設計(或者係 Code)因為已經運行當中而無法提高品質, 可以做既就係在一個新既系統未設計之前, 盡量去理解 Domain Problem 同 Business Needs 而去做一個精練既設計, 加上軟件架構同良好既編程習慣, 令跟隨者能易於管理及因需要而重構, 自己又能隨著經驗增加而設計出更高質素既 Domain 及周邊工具, 咁先可以有較地提高生產力.
一個好既 Domain Design 亦都好需要一個良好既 Utility 支持, 等同於 Core Competence 入面, 除左 Core 之外, Non-Core 但 Essential 係避免 Outsource 一樣, Utility 亦十分重要, 亦需要得到內部廣泛使用及質量管理 (e.g. Test-Driven Design), 不會抄襲而注重重用, 咁先可以真真正正提高效率, 質素及生產力, 呢幾個理念亦係我對軟件設計既堅持.

