CleanArchitecture實作篇:在整潔的架構上弄髒你的手
出版日期:2022-08-15
ISBN:9786263331815
定價:500元
特價: 90 折!450 元
參考分類(CAT):
參考分類(CIP): 電腦科學
內容簡介
『建議搭配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...)
1、五南網路會員所購買的商品均享有取貨7天的鑑賞期﹝包含國定假日、例假日﹞,退換貨之商品必需於取貨7天內辦理退換貨,否則恕不接受退換貨。
2、依照消費者保護法規定,凡消費者於網站購物均享有7天商品鑑賞期,唯需注意辦理退貨商品需保留完整外包裝、附件、外盒等等,才可辦理退貨。
3、如欲退貨,請在鑑賞期內將商品連同發票寄回,每張訂單限退一次。
4、鑑賞期非試用期,若您收到商品經檢視後有任何不合意之處,請立即依照退貨規定辦理退貨
1、若本網站已設團購價,請直接下訂即可。
2、如您需要其他類型產品團購,則請聯繫客服或直接將需求e-mail
至wunan2351960@gmail.com即可
一、購物說明 1.本站商品近60萬筆。(商品圖片、出版日期等相關資訊僅供參考,出貨一律是最新版本) ◎請注意:上架商品不等於一定可以出貨。(會有缺書而訂不到書的狀況,敬請體諒) 2.當您下訂時,我們會向出版訂書(約7-10個工作天)(政府出版品因受限於採購程序,平均補貨作業時間約 2~6週)。如有久候,敬請見諒。當出版社回覆缺書時,我們只能取消您的訂單。 3.當您下訂時您必須同意:訂單成立的第14天起,因缺某一本書無法出貨的訂單,本站有權利自動取消您的訂單。◎請注意:缺書取消訂單我們統一發送簡訊通知。如果您要部份出貨者,請留言後再重新下單。 4.、本站保留出貨的權利。 二、運費說明 1.宅配到府:滿999元免運費,未滿則加收65元(台灣本島),離島一律加收120元 2.五南門市取貨:未滿350,運費20元 3.揪團:免運費 三、退貨與退款說明 五南會員所購買的商品均享有取貨7天的猶豫期﹝包含國定假日、例假日﹞,退換貨之商品必需於取貨7天內辦理退換貨,否則恕不接受退換貨。 1.請注意!下列商品購買後不提供7天的猶豫期,請務必詳閱商品說明並再次確認確實有購買該項商品之需求及意願時始下單購買,有任何疑問並請先聯繫客服詢問: (1)客製化之商品。 (2)買斷不退之商品。 (3)報紙、期刊或雜誌。 (4)經消費者拆封之影音商品或電腦軟體。 (5)下載版軟體、資訊及電子書。 (6)涉及個人衛生,並經消費者拆封之商品,如:內衣褲、刮鬍刀…等。 (7)藝文展覽票券、藝文表演票券。 (8)易於腐敗、保存期限較短或解約時即將逾期。 2.退貨退款詳細說明: (1)如欲退貨,請在鑑賞期內將商品連同發票寄回,每張訂單限退一次。 (2)退換貨政策:請在收到商品後,立刻檢查商品是否正確,如果有問題或瑕疵,請於7天猶豫期內完成退換貨申請手續。辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 (3)退款說明:請您填寫退貨退款書,若您採信用卡付款,由客服人員辦理刷退手續。若採其他付款方式,我們會將退款,匯款至指定帳戶。以上需要14個工作天。 (4)退貨退款書請至【客服中心】點選『退換商品】的說明中下載。
1.每日09:00前截止訂單,包含出貨通知、缺書通知等。 3.上午9:00點以前下單,可在當日下午17:00以後,查詢出貨進度。例假日除外 4.上午9:00以後在下單,需在隔日17:00以後,方能查詢訂單出貨進度。例假日除外 5.當你使匯款或轉帳時,請務必提供帳戶末5碼之資訊,請拍照email或傳真給我方,否則須等與銀行確認後,才能出貨。 6.出貨是以下單時間為出貨先後的順序,也就是請先下單再查詢庫存,因為就算查完庫存,也可能無法先為你保留書籍(政府出版品因受限於採購程序,平均補貨作業時間約 2~6週)。
CleanArchitecture實作篇:在整潔的架構上弄髒你的手
出版日期:2022-08-15
ISBN:9786263331815
定價:500元
特價: 90 折!450 元
參考分類(CAT):
參考分類(CIP): 電腦科學
運送付款
一般訂單: 超商取貨付款(全家、OK、萊爾富)
宅配到府(信用卡、ATM轉帳)