iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

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

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

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

[DAY11] Data Access Layer 設計概念

前言 這篇將介紹 boxenn 與 DAL 層的依賴關係和介面。 簡易 Class Diagram Source 代表的是外部 gem 的 class,本系列...

2021-09-26 ‧ 由 奧卡 分享
DAY 12

[Day12] Boxenn 實作 Record Mapper 與 Factory

建議搭配之前的 sequence diagram 一起服用! Dry Initializer 在進到 Record Mapper 和 Factory 之前,先來...

2021-09-27 ‧ 由 奧卡 分享
DAY 13

[Day13] 擴充 Boxenn 的 Record Mapper

擴充 Record Mapper 大部分 domain 的 mapper 皆為 key 的轉換,而在此範例中使用的外部資源為 ActiveRecord,他大部分...

2021-09-28 ‧ 由 奧卡 分享
DAY 14

[Day14] Boxenn 實作 Source Wrapper

Source Wrapper source wrapper 的職責很簡單,他負責將外部資源的介面轉換給 Boxenn::Repository 使用。在 Boxe...

2021-09-29 ‧ 由 奧卡 分享
DAY 15

[Day15] Boxenn 實作 Repository & Query

Repository 將 source wrapper 、 record mapper 、 factory 都完成後,在 repository 裡只需要簡單的歸...

2021-09-30 ‧ 由 奧卡 分享
DAY 16

[DAY16] Data Access Layer 測試

準備工作 在開始介紹如何測試 repository 之前,要先帶過有使用的一些套件本系列文章以 Rspec 作為測試用的框架,並且有使用 FactoryBot...

2021-10-01 ‧ 由 奧卡 分享
DAY 17

[DAY17] 關於 DAL 的一些問題

Q: 為甚麼原本 ActiveRecord 提供的 ORM 不用,要再包一層自己的 ORM? 在本系列的第2~5篇中有稍微提到過,這邊列點整理 Model 沒...

2021-10-02 ‧ 由 奧卡 分享
DAY 18

[DAY18] Use Case 設計概念

緣起 Use Case 的職責是把業務邏輯封裝,一個 Use Case 大致可以對應到一個 User Story。一開始我們對 Use Case 要怎麼設計並沒...

2021-10-03 ‧ 由 奧卡 分享
DAY 19

[DAY19] Boxenn 實作 Use Case

Use Case 定義對外唯一的 method call 利用 dry-monads 的特性處理預期及非預期錯誤 use case 內利用 steps 拆...

2021-10-04 ‧ 由 奧卡 分享
DAY 20

[DAY20] Domain 間的依賴關係

Domain 間的依賴 在專案中,除了 domain 內上下層的關係外,domain 之間也會有依賴關係,而為了不讓 domain 間過度耦合,我們透過 wis...

2021-10-05 ‧ 由 奧卡 分享