在過去2年我和我的同事在解決專案問題時,因緣際會下接觸了 Domain-Driven Design,於是就開始在 legacy system 中導入這個酷酷的東西,希望藉由這30天的機會跟大家分享我們的心路歷程。
前言 這篇將介紹 boxenn 與 DAL 層的依賴關係和介面。 簡易 Class Diagram Source 代表的是外部 gem 的 class,本系列...
建議搭配之前的 sequence diagram 一起服用! Dry Initializer 在進到 Record Mapper 和 Factory 之前,先來...
擴充 Record Mapper 大部分 domain 的 mapper 皆為 key 的轉換,而在此範例中使用的外部資源為 ActiveRecord,他大部分...
Source Wrapper source wrapper 的職責很簡單,他負責將外部資源的介面轉換給 Boxenn::Repository 使用。在 Boxe...
Repository 將 source wrapper 、 record mapper 、 factory 都完成後,在 repository 裡只需要簡單的歸...
準備工作 在開始介紹如何測試 repository 之前,要先帶過有使用的一些套件本系列文章以 Rspec 作為測試用的框架,並且有使用 FactoryBot...
Q: 為甚麼原本 ActiveRecord 提供的 ORM 不用,要再包一層自己的 ORM? 在本系列的第2~5篇中有稍微提到過,這邊列點整理 Model 沒...
緣起 Use Case 的職責是把業務邏輯封裝,一個 Use Case 大致可以對應到一個 User Story。一開始我們對 Use Case 要怎麼設計並沒...
Use Case 定義對外唯一的 method call 利用 dry-monads 的特性處理預期及非預期錯誤 use case 內利用 steps 拆...
Domain 間的依賴 在專案中,除了 domain 內上下層的關係外,domain 之間也會有依賴關係,而為了不讓 domain 間過度耦合,我們透過 wis...