Rust中後端的清潔Clea架構原始碼專案

banq發表於2022-01-31

許多架構模式來設計 Web 應用程式。一個著名的是Robert C. Martin的“清潔clean架構”:

該架構將專案分成不同的層,以生成符合以下要求的系統

  1. 獨立於框架。該架構不依賴於某些功能豐富的軟體庫的存在。這使您可以將此類框架用作工具,而不必將系統塞入其有限的約束中。
  2. 可測試。可以在沒有 UI、資料庫、Web 伺服器或任何其他外部元素的情況下測試業務規則。
  3. 獨立於使用者介面。UI 可以輕鬆更改,而無需更改系統的其餘部分。例如,可以用控制檯 UI 替換 Web UI,而無需更改業務規則。
  4. 獨立於資料庫。您可以將 Oracle 或 SQL Server 換成 Mongo、BigTable、CouchDB 或其他東西。您的業​​務規則未繫結到資料庫。
  5. 獨立於任何外部架構。事實上,您的業務規則根本不瞭解外部世界。

但是,在我看來,所謂的“乾淨架構”過於複雜,其行話只能與專業架構師產生共鳴,而且抽象層太多。它不適用於實際編寫程式碼的人。

這就是為什麼我提出另一種方法,同樣靈活但更簡單,可用於傳統的伺服器端呈現的 Web 應用程式和 JSON API。

Rust中後端的清潔Clea架構原始碼專案

據我所知,這個架構沒有正式的名字,但我已經成功地將它用於 Rust、Go 和 Node.JS 中超過數萬行程式碼的專案。

使用這種架構的優點是,如果將來修改需求或一個依賴項,則更改是本地的並且是孤立的。

原始碼點選標題

banq評:作者沒有充分理解Clean架構核心思想,以自己方便舒適為第一設計原則,實則扭曲了設計宗旨,將業務邏輯放在服務之中,使得“服務員”做“廚師”的工作,小飯店是可以的。

相關文章