建模和收納 X 豆漿和油條 三分鐘斷捨離,讓每天都早點下班

me
林彥成
2023-10-02 | 2 min.
文章目錄
  1. 1. Domain Driven Design
    1. 1.1. Domain Model
    2. 1.2. Open-Closed Principle
    3. 1.3. API First

當我們要準備買東西的時候,要考慮家裡有沒有空間,反之在室內設計時預留空間也很重要。

在前端開發包括需求分析、定義用戶流程、確定元件,然後進行系統開發,在系統設計的時候我們又該預留什麼,該依照什麼去進行設計?

分析需求 → 定義 User Flow 和確認元件 → 系統撰寫

做生意的本質是商業,在各個領域中除了技術本身外最重要的就是商業邏輯。

Domain-Driven Design (DDD) 提供了一種軟體設計和開發方法,強調以業務邏輯和領域 (Domain) 為核心基礎來進行軟體開發。

謎之音: 大多數情況實際上是 Deadline Driven Development

Domain Driven Design

Domain Driven Design 分成三個步驟

  1. 列出需要解決的商業問題
  2. 進行建模
  3. 把商業模型變成可以 POC 程式碼

跨部門溝通的目標是建立 Shared Mental Model

利用領域模型 (Domain Model)、領域詞彙 (Domain Terms)、通用語言 (Ubiquitous Language) 來設計和描述系統,進而可以更快的去了解和在各部門同步使用者的流程、商業模式、系統的運行。

Domain Model

定義領域模型,在商業的世界中除了實作的工程師外最重要的就是該領域的專家 (Domain Expert)。

Domain Model 是一種設計方法,主要著重於定義和建立應用程式的領域模型,這個模型反映了應用程式核心概念和實體之間的關係。

建立領域模型的目的是讓系統能在早期就看到全貌,並持續進行細節的設計, 而不是房子蓋到哪裡才想到哪裡。

就像常見的微服務中 API 互相呼叫可能產生複雜的網路結構,並且讓問題處理變得困難,Domain Model 有助於解決複雜的業務邏輯和需求,讓開發團隊更容易理解並實現應用程式的核心功能。

Open-Closed Principle

建模這件事情來說有點像是定義房屋的結構,而建模可以盡可能的遵守開放封閉原則。

對於擴展是開放的,但對於修改是封閉的

某些規劃需要提前考慮,例如在蓋房子時預留冷氣位置和窗戶開口,因為房屋的結構不允許輕易地修改。

  • 擴展開放: 可以客製各式的家具
  • 修改封閉: 房屋結構更動

有時候老闆可能會覺得只要換個元件就好了,可是其實換元件就等於整個重寫,所以在系統設計時就要以這樣的理念去設計。

API First

API First 單純是一個術語,關鍵還是在要解決的商業問題。

API-First 首先要對資源和 URL 進行建模,建模的內容則是依照剛剛專家所定義出的領域模型,依照商業問題把該做好做對的事情列出來,選擇正確的資源並確保正確的細粒度非常重要,這樣客戶就能夠獲得所需的功能,並實現靈活性和易維護性。

API First 是一種開發方法,API 本身提供了控制反轉的機制,強調在開發應用程式時優先設計和定義應用程式介面 (API),這包括進入點、資料格式、請求和回應等方面的設計,從 API 設計開始,就是從內容出發,然後著手實現前端和後端系統。

  • 促進團隊協作:不同的團隊和開發者之間協作可以同時根據 API 規格進行工作
  • 支持前後端分離:前後端分離時前端和後端團隊能夠獨立開發

喜歡這篇文章,請幫忙拍拍手喔 🤣


share