iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

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

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

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

[DAY1] 在開始之前

Hello 大家好,我是陽光伏特家的工程師 Oscar,這是我第一次參加鐵人賽!每年都想報名結果每年都拖到忘記 本系列文章將會分享關於我和我的同事們怎麼解決 R...

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

[DAY2] 聽說 Rails 開發很快速?

先來介紹一點關於 Ruby on Rails 這個框架 ,他採用了 ORM 來處理 Ruby 和資料庫的關係。 ORM 是什麼? ORM 全名是 Object-...

2021-09-17 ‧ 由 奧卡 分享
DAY 3

[DAY3] MVC與散落各處的邏輯

上回說到 Fat Model 的邏輯散落在各處,那這回就要來說說散落在哪、以及造成這種現象的原因。 Rails 的 MVC MVC(Model–View–Con...

2021-09-18 ‧ 由 奧卡 分享
DAY 4

[DAY4] 一塊大千層蛋糕 — MVC 架構的橫切分層,以及為何需要縱切

先來看看一個預設 Rails 專案的預設資料夾結構: 我們可以看到,他遵循著 MVC 架構,將各自的檔案分別放到不同的資料夾裡 單體式應用程式 (Monolit...

2021-09-19 ‧ 由 奧卡 分享
DAY 5

[DAY5] 病識感──當我們關注到測試

能載舟,能覆舟 前幾篇似乎說了很多 Rails 的壞話,但其實 Rails 是一套工具,工具沒有好壞之分,只有是否適合、怎麼使用。Rails 最重要的設計理念是...

2021-09-20 ‧ 由 奧卡 分享
DAY 6

[DAY6] 萬事起頭難

找救援 意識到有問題時,首先尋找有沒有專案遇到同樣的問題——有使用 Ruby on Rails 的大規模專案不少,那為何不會浮現這些問題,代表我們肯定是有哪個環...

2021-09-21 ‧ 由 奧卡 分享
DAY 7

[DAY7] 手起刀落

名詞解釋 model在本系列文章中,代表 ActiveRecord 自動產生的 model schema代表 DB 中的 table 和 column...

2021-09-22 ‧ 由 奧卡 分享
DAY 8

[DAY8] 與 ActiveRecord 分手

先來看看目前我們專案的資料夾結構: 前面有提到,ActiveRecord 所建立的 model 與 schema 會直接互相綁定,要擺脫這個限制、重新建立 d...

2021-09-23 ‧ 由 奧卡 分享
DAY 9

[DAY9] Boxenn 實作 Entity 與 Value Object

隆重介紹 Boxenn!它是我們專門用來在 legacy code 中導入 DDD 的套件,之後會花不小的篇幅來介紹每個 class 的設計理念對應到 DDD...

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

[Day10] Boxenn 實作 Aggregate 和 Aggregate Root

原則 對於 domain 內的 aggregate,有以下的原則我們會遵守 一個 domain 內只有一組 agrregate 所有對資料的更動必須要整個物件...

2021-09-25 ‧ 由 奧卡 分享