Clean Architecture 實作篇:在整潔的架構上弄髒你的手 (Get Your Hands Dirty on Clean Architecture)
Tom Hombergs 著 錢亞宏 譯
- 出版商: 博碩
- 出版日期: 2022-08-10
- 定價: $500
- 售價: 7.8 折 $390
- 語言: 繁體中文
- 頁數: 176
- ISBN: 626333181X
- ISBN-13: 9786263331815
-
相關分類:
軟體工程、軟體架構
- 此書翻譯自: Get Your Hands Dirty on Clean Architecture (Paperback)
-
其他版本:
Clean Architecture 實作篇:在整潔的架構上弄髒你的手 (第二版) (Get Your Hands Dirty on Clean Architecture, 2/e)
銷售排行:
👍 2022 年度 繁體中文書 銷售排行 第 8 名
🥇 2022/8 繁體中文書 銷售排行 第 1 名
買這商品的人也買了...
-
無瑕的程式碼-敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)$580$452 -
無瑕的程式碼 番外篇-專業程式設計師的生存之道 (The Clean Coder: A Code of Conduct for Professional Programmers)
$360$281 -
無瑕的程式碼-敏捷完整篇-物件導向原則、設計模式與 C# 實踐 (Agile principles, patterns, and practices in C#)$790$616 -
單元測試的藝術, 2/e (The Art of Unit Testing: with examples in C#, 2/e)$650$507 -
無瑕的程式碼-整潔的軟體設計與架構篇 (Clean Architecture: A Craftsman's Guide to Software Structure and Design)$580$452 -
領域驅動設計:軟體核心複雜度的解決方法 (Domain-Driven Design: Tackling Complexity in the Heart of Software)$680$530 -
Working Effectively with Legacy Code : 管理、修改、重構遺留程式碼的藝術 (中文版)$720$562 -
The Pragmatic Programmer 20週年紀念版 (The Pragmatic Programmer, 20th Anniversary Edition)$680$537 -
依賴注入:原理、實作與設計模式 (Dependency Injection: Principles, Practices, Patterns, 2/e)$1,000$780 -
軟體架構原理|工程方法 (Fundamentals of Software Architecture: A Comprehensive Guide to Patterns, Characteristics, and Best Practices)$680$537 -
Kent Beck 的測試驅動開發:案例導向的逐步解決之道 (Test-Driven Development: By Example)(TDD)$560$437 -
資料密集型應用系統設計 (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems)$980$774 -
內行人才知道的系統設計面試指南$580$458 -
設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt)$520$406 -
Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture)$800$624 -
演算法學習手冊|寫出更有效率的程式 (Learning Algorithms: A Programmer's Guide to Writing Better Code)$580$458 -
Good Code, Bad Code|寫出高品質的程式碼 (Good Code, Bad Code: Think Like a Software Engineer)$520$411 -
軟體架構:困難部分 (Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures)$780$616 -
ASP.NET Core 工程師不可不知的 10大安全性漏洞與防駭方法$690$538 -
Rust 程式設計, 2/e (Programming Rust: Fast, Safe Systems Development, 2/e)$1,200$948 -
Test-Driven Development 學習手冊$580$458 -
Web API 設計原則|API 與微服務傳遞價值之道 (Principles of Web API Design: Delivering Value with APIs and Microservices)$520$411 -
Agile Retrospectives 中文版:這樣打造敏捷回顧會議,讓團隊從優秀邁向卓越 (Agile Retrospectives: Making Good Teams Great)$500$390 -
無瑕的程式碼 敏捷篇:還原敏捷真實的面貌 (Clean Agile : Back to Basics)$560$437 -
Google 的軟體工程之道|從程式設計經驗中吸取教訓 (Software Engineering at Google)$880$695
商品描述
『建議搭配Uncle Bob的《Clean Architecture》,一本學理論,另一本學實作,兩本一起服用學習效果更佳。』
-「搞笑談軟工」板主Teddy Chen 專文推薦
[名家名著] 27
Clean Architecture實作篇:在整潔的架構上弄髒你的手
Get Your Hands Dirty on Clean Architecture
所有人都想要找出一種架構設計,能以最少的開發成本,打造最好又富有彈性的軟體。但是各種無理的時限壓力,以及各種不得已的偷吃步做法,讓我們離理想中的架構設計越來越遠。
本書會先從傳統的階層式架構設計入手,針對此架構的優缺點開始討論。接著,我們也會討論由Robert C. Martin(Uncle Bob)所提出的「整潔的架構」(Clean Architecture)以及由Alistair Cockburn所提出的「六角形架構」(Hexagonal Architecture),探討這類以業務領域為主的架構設計有什麼好處。隨後,本書會用實際的Java程式碼,帶領各位讀者親自動手做一遍六角形架構的實作流程。
你將學習如何在六角形架構的架構層之間選擇並實作對應策略,以及如何將架構中的各種元素組裝為應用程式。然後,我們也會說明如何強化架構中的邊界,並以理性的態度探討偷吃步的做法會造成什麼樣的技術債影響,以及在什麼樣的情況下,我們會願意承擔這類技術債。
讀完這本書,讀者將學會使用六角形架構的設計風格,建立整潔的網頁應用程式。
學習目標:
・採用階層式架構會有什麼潛在問題
・如何強化架構中的邊界
・偷吃步做法會為軟體架構帶來什麼潛在影響
・應該在何時採用何種架構設計風格
・根據架構設計來安排程式檔案結構
・針對架構中不同的元素安排不同的測試策略
作者簡介
Tom Hombergs是一位專業資深軟體工程師,投身於此行業已十多年,曾服務各大企業客戶,並曾參與各種不同的軟體開發專案。這些軟體開發專案大多數都是以Java程式語言的開發環境為主,Tom則是在其中扮演過開發工程師、架構設計師以及教練等角色。Tom認為教學相長,因此寫書的過程對自己來說也是一次很好的學習機會,尤其是能從自身經驗及過往參與的軟體專案來探討各項議題,希望能夠透過文字,為混亂不明的軟體開發領域帶來秩序與一線光明。除了寫書以外,他也會在個人部落格reflectoring.io上發表一些關於軟體開發的文章,並且偶爾會在各大論壇上發表演講。
目錄大綱
推薦序|Teddy Chen
作者序
Chapter 01:階層式架構的問題點
資料庫驅動設計
在階層中偷吃步
難以執行的測試
使用案例不知影
平行分工的困難
如何讓軟體邁向可維護性的目標?
Chapter 02:依賴反轉
單一職責原則
與副作用之間的陳年往事
依賴反轉原則
整潔的架構
六角形架構
如何讓軟體邁向可維護性的目標?
Chapter 03:程式結構
以架構層為結構
以功能為結構
可呈現出架構的套件結構
依賴注入的影響
如何讓軟體邁向可維護性的目標?
Chapter 04:使用案例實作
領域模型實作
使用案例長話短說
輸入驗證
利用建構子的好處
不同的使用案例、不同的輸入模型
業務規則驗證
充血領域模型與貧血領域模型
不同的使用案例、不同的輸出模型
唯讀使用案例的問題
如何讓軟體邁向可維護性的目標?
Chapter 05:網頁層轉接器實作
依賴反轉
網頁層轉接器的職責
分割開來的控制器
如何讓軟體邁向可維護性的目標?
Chapter 06:儲存層轉接器實作
依賴反轉
儲存層轉接器的職責
分割開來的轉接埠介面
分割開來的儲存層轉接器
以Spring Data JPA為例
資料庫交易的問題
如何讓軟體邁向可維護性的目標?
Chapter 07:架構測試
測試金字塔
領域實體的單元測試
使用案例的單元測試
網頁層轉接器的整合測試
儲存層轉接器的整合測試
系統主要路徑的系統測試
要多少測試才算夠?
如何讓軟體邁向可維護性的目標?
Chapter 08:架構層之間的對應策略
不對應策略(No Mapping)
雙向對應策略(Two-Way Mapping)
全部對應策略(Full Mapping)
單向對應策略(One-Way Mapping)
如何選擇要採用的策略?
如何讓軟體邁向可維護性的目標?
Chapter 09:應用程式組裝
組裝是有什麼好談的?
透過純程式碼組裝
透過Spring的類別路徑掃描功能來組裝
透過Spring的Java Config來組裝
如何讓軟體邁向可維護性的目標?
Chapter 10:強化架構中的邊界
邊界與依賴關係
存取修飾子
編譯後檢查
建置成品
如何讓軟體邁向可維護性的目標?
Chapter 11:理性看待偷吃步
偷吃步的破窗效應
第一步的重要性
在使用案例之間共用模型
把領域實體當成輸出或輸入模型
省略輸入轉接埠
省略應用服務
如何讓軟體邁向可維護性的目標?
Chapter 12:選擇你的架構風格
領域為王(Domain is King)
經驗為后(Experience is Queen)
視情況而定(It depends...)
















