工程師腹肌養成之路 — 戰略篇從小胖到大的我總是嚮往能擁有好身材,因此練出腹肌一直都是我的人生目標之一,雖然健身多年,但一直沒有明顯的起色。每當刷IG時總是羨慕著一些身材好的網帥,尤其是拿著衝浪板的那種,於是我內心想著:「難道身為工程師的我這輩子與腹肌無緣了嗎?…Nov 29, 20241Nov 29, 20241
[DDD] 領域驅動設計 Domain-Driven Design 名詞解釋 (二)有了 Bounded Context 的概念,可以避免溝通上的誤解或衝突。比如:訂單管理中的商品與商品管理中的商品就是兩種不同的東西,所以訂單管理與商品管理就是兩個不同的 Bounded Context。Feb 13, 2023Feb 13, 2023
[DDD] 領域驅動設計 Domain-Driven Design 名詞解釋 (一)Domain 在應用程式內業務邏輯及知識所涵蓋的範圍,也就是在真實世界( Real World )中的問題,需要被軟體解決的所有範圍。 舉例:購物車系統、訂房系統。 Domain 又分為 Problem Domain 和 Solution DomainFeb 10, 2023Feb 10, 2023
Clean Architecture (二) 整潔式架構整潔式架構的原則為,必須讓業務邏輯可以在沒有框架、資料庫、使用者介面或其他外部的應用程式的情況下,可以進行測試。Jan 8, 2023Jan 8, 2023
Clean Architecture (一) 階層式架構的問題點階層式架構的儲存層往往會讓實體( Entity )和資料庫( Persistence )有著緊密耦合,每當 Entity 發生變化,Table 欄位也會連帶改變,反之也是如此。這也導致當 Entity 增加了新的行為或行為改變,我們總是優先考慮儲存層要做哪些更動Nov 27, 2022Nov 27, 2022
快速搞懂 UML 類別圖 6 種關係線( Dependency、Association、Aggregation、Composition、Generalization、Realization )在學習 OOP Design Pattern 時常常需要看懂 UML 圖上的各種類別與類別間的關係線,本篇就快速整理 UML 圖中經常使用的 6 種關係線及含義。Nov 6, 2022Nov 6, 2022
[SOLID] 用 Golang 實作 SOLID: The Dependency Inversion Principle (DIP) 依賴反轉原則High-level modules should not import anything from low-level modules. Both should depend on abstractions 高階模組不該引用(依賴)任何的低階模組,兩者應該都依賴於抽象。Oct 10, 2022Oct 10, 2022
[SOLID] 用 Golang 實作 SOLID: The Interface Segregation Principle (ISP) 介面隔離原則ISP 是指不應該強迫模組依賴介面中用不到的 Method ,應將 Interface 拆分成適合各個模組使用的 Interface,以介面最小化為原則。Oct 8, 2022Oct 8, 2022
[SOLID] 用 Golang 實作 SOLID: The Liskov Substitution Principle (LSP) 里氏替換原則LSP 其實是對物件導向三大特性中的”繼承”加以規範,在上述的描述裡,”用 o1 替換 o2後,程式 P 的行為功能不變”是 LSP 的核心,也就是說如果子類別繼承了父類別,那子類別就必須遵守在父類別上的所有行為。Oct 5, 2022Oct 5, 2022
[SOLID] 用 Golang 實作 SOLID: The Open-Closed Principle (OCP) 開放封閉原則簡單來說 The Open-Closed Principle (OCP) 是指一個良好的系統對於修改應該是封閉的,而對於擴充是開放的,這裡引用 Clean Architecture 書中對 OCP 的描述:Oct 2, 2022Oct 2, 2022