上完”領域驅動設計與簡潔架構”之後

Rex Wang
2 min readFeb 16, 2020

--

多年以來,參與過幾個軟體專案,歷練過程式設計師、系統分析師、系統架構師,甚至專案經理。這段時間以來,系統設計與開發多以OOAD與之前的經驗為依據,雖然沒有什麼大問題,但也總覺得沒有太多系統性的思考與規劃,甚至以不同角度規劃的系統,會出現矛盾的情況,只好折衷與取捨之後,才能往下,更別說時常會糾結在使用什麼前端技術、框架與資料庫等。

簡稱 DDD的領域驅動設計(Domain Driven Design)提供了許多的建模建議,與簡潔架構(Clean Architecture) 闡述了如何讓軟體架構層次分明、更易於維護與發展,引起我莫大的興趣;雖然看過一些書籍、聽過一些演講與自己公司相關文件,但沒有機會推展到實作階段,總有些隔靴搔癢與遺珠之憾。Pivotal 有一群具有實戰經驗的服務團隊,無奈我尚未等到他們來到台灣服務客戶。

泰迪軟體一直在這些主題有許多的闡述與課程,這次終於有時間可以參加,實在幸運,也重新審視自己已知或是誤認的知識。趁著這次課程結束與工作調整的機會,正好可以再次閱讀相關書籍,找幾個過去參與過的專案進行驗證實作,並寫下心得筆記,當作迎接未來挑戰的準備。期待在這一連串的驗證過程,除了前述的兩個方法論納入,也將設計模式、無暇的程式碼與設計驅動開發等加入,讓過去看起來片段的知識,更加有連貫性。

簡單說明我的計畫,以下圖所示的虛擬訂單系統為目標:

  1. 以Event Storming 為系統建模
  2. 使用 Clean Architecture 設計系統架構
  3. 導入TDD、BDD
  4. 部署至容器平台
  5. 以上述步驟,再為之前參與的交易系統做一次

我喜歡Head First 一系列的書籍,他們總能以說故事的方式,去迭代與演進書中的範例程式,因此,我做的這些筆記、建模、程式碼會以迭代演進的方式進行。我打算運用Git的機制,進行版本控管,可以記錄下我的摸索過程,也算是對自己職業生涯的回顧與展望。

--

--

Rex Wang

最近看了一些網路技術大神建議,藉由寫部落格來記錄自己的學習歷程,並且可以累積自己的技術能力。於是,繼多年前雜誌技術編輯生涯,我再度展開了屬於自己的技術寫作之旅。