iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

在 Ruby on Rails 中導入 Domain-Driven Design 是不是搞錯了什麼? 系列

在過去2年我和我的同事在解決專案問題時,因緣際會下接觸了 Domain-Driven Design,於是就開始在 legacy system 中導入這個酷酷的東西,希望藉由這30天的機會跟大家分享我們的心路歷程。

鐵人鍊成 | 共 30 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 21

[DAY21] 非同步的 Boxenn Use Case

在實務中,常常會有花很長執行時間、或需要排程的邏輯,這時候便會需要進行非同步處理。 在 Boxenn Use Case 上擴充 sidekiq worker s...

2021-10-06 ‧ 由 奧卡 分享
DAY 22

[DAY22] Boxenn Use Case Spec

Use Case Spec 這邊以之前的 use case 當作例子來撰寫測試。 首先要能快速地建立測資,需要透過 Factory Bot 制定規則。 # or...

2021-10-07 ‧ 由 奧卡 分享
DAY 23

[DAY23] Boxenn Use Case & Validation

在 Boxenn::UseCase 中處理 validation? dry-monads 中有提供 validate 的功能,他的特色是不會中斷執行,而是等到所...

2021-10-08 ‧ 由 奧卡 分享
DAY 24

[DAY24] Boxenn Use Case 的 error handle

Boxenn 的 error handling Boxenn 的實作可以在這邊複習。 Use Case 中的 error 可以分為兩種,可預期的錯誤和不可預期的...

2021-10-09 ‧ 由 奧卡 分享
DAY 25

[DAY25] Boxenn 小結

將幾篇 Boxenn 相關文章整理成分類目錄(範例 GitHub repository 建置中,完成後也會放在這裡): Boxenn 設計理念 Data A...

2021-10-10 ‧ 由 奧卡 分享
DAY 26

[DAY26] 導入 DDD 時尚未深究的問題

這篇羅列導入 DDD 時遇到的困難,以及針對這些問題,在團隊內還沒有確切設計共識時,我們的處理方式。 Ransack Ransack 依賴 ActiveReco...

2021-10-11 ‧ 由 奧卡 分享
DAY 27

[DAY27] 功能型團隊 VS 需求型團隊

前面的篇章大部分著重 DDD 的戰術設計,這篇來說說戰略設計。 功能型團隊 在導入 DDD 前,我們審視後發現,過去的開發項目並沒有完全滿足其他部門的需求,導致...

2021-10-12 ‧ 由 奧卡 分享
DAY 28

[DAY28] 戰略設計的彆扭事件

上一篇提到,要深入瞭解需求,需要大量的溝通,對應到 DDD 中非常重要的一環——與領域專家一同開會。理想情況是,聚集所有利害關係人,透過事件風暴確認需求後再開發...

2021-10-13 ‧ 由 奧卡 分享
DAY 29

[DAY29] 總回顧

導入 DDD 後專案真的有變比較好嗎? 從測試的角度 之前的篇章中有提到,舊有測試都是以 controller 和頁面文字進行測試,因此可以視為測試覆蓋率為...

2021-10-14 ‧ 由 奧卡 分享
DAY 30

[DAY30] DDD學習資源與完賽感言

DDD 學習資源 ddd-crew裡面有許多關於 DDD 各個面向的 repo,其中這個 repo 有提供一套完整的方法教你怎麼樣開始導入 DDD。 DD...

2021-10-15 ‧ 由 奧卡 分享