//cs-a.ecimg.tw/items/DJAA2VA900H1JXO/000001_1703579001.jpg;
商品編號:DJAA2V-A900H1JXO

Clean Architecture實作篇:在整潔的架構上弄髒你的手(第二版)

驚喜優惠
$474
$600
  • 登記送

    【7-11】單筆滿$350純取貨/取貨付款訂單登記送韓風拌拌炸雞兌換券乙張(限量)

  • 登記送

    【第三波】書店/閱讀器/寵物指定品單筆滿$1,500登記送100P幣(使用效期30天/限量)

付款方式
出貨
  • PChome 倉庫出貨,24小時到貨
配送
宅配滿$490免運,超取滿$350免運
  • 宅配到府(本島/低溫)
    滿$699免運
  • 宅配到府(本島/常溫)
    滿$490免運
  • 超商取貨(常溫)
    滿$350免運
  • 超商取貨(低溫)
    滿$699免運
  • i郵箱(常溫)
    滿$290免運

商品評價

5.0
共 2 則評價
5.0
100%
4.0
0%
3.0
0%
2.0
0%
1.0
0%
最相關
*鈺*
2024/06/25
*佳*
2024/01/11
商品詳情
作者:
譯者:
錢亞宏、盧國鳳/錢亞宏(審校)
ISBN:
9786263336803
出版社:
出版日期:
2024/01/05
  • 內文簡介

  • <內容簡介>

    [名家名著] 29

    Clean Architecture實作篇:在整潔的架構上弄髒你的手(第二版)
    Get Your Hands Dirty on Clean Architecture - Second Edition

    軟體設計的可維護性(maintainability)是降低開發成本的關鍵,也是提升開發人員滿意度的基石。第二版以第一版的骨架為基礎,主要新增三個章節,分別延伸探討可維護性、Bounded Context、以元件為基礎的架構等第一版沒有深入探索的主題,為各位讀者補強「打造可維護軟體」所需的知識和技巧。

    我們首先從傳統的階層式架構設計入手,針對此架構的優缺點開始討論。接著,我們也會討論由Robert C. Martin(Uncle Bob)所提出的「整潔的架構」(Clean Architecture)以及由Alistair Cockburn所提出的「六角形架構」(Hexagonal Architecture),探討這類以業務領域為主的架構設計有什麼好處。隨後,本書會用實際的Java和Kotlin程式碼,帶領各位讀者親自動手做一遍六角形架構的實作流程。你將學習如何在六角形架構的架構層之間選擇並實作對應策略,以及如何將架構中的各種元素組裝為應用程式。然後,我們也會說明如何強化架構中的邊界,並以理性的態度探討偷吃步的做法會造成什麼樣的技術債影響,以及在什麼樣的情況下,我們會願意承擔這類技術債。

    讀完這本書,讀者將學會使用六角形架構的設計風格,建立整潔、可維護又經得起時間考驗的網頁應用程式。

    學習目標:
    ・採用階層式架構會有什麼潛在問題
    ・如何強化架構中的邊界
    ・偷吃步做法會為軟體架構帶來什麼潛在影響
    ・應該在何時採用何種架構設計風格
    ・根據架構設計來安排程式檔案結構
    ・針對架構中不同的元素安排不同的測試策略

    【下載範例程式檔案】
    讀者可以從GitHub下載本書的範例程式碼,如果程式碼有更新,作者也會直接更新在儲存庫上:https://github.com/thombergs/buckpal

    【下載本書的彩色圖片】
    本書使用的彩色截圖和圖表,可以在此下載PDF檔案:https://packt.link/eBKMn


    ★專家推薦:

    『針對Clean Architecture 的實作方式,這是Teddy 讀過解釋得最清楚的單一本書,推薦給有志讓軟體變軟的鄉民們。』
    -「搞笑談軟工」板主Teddy Chen 二版推薦序專文推薦

    『Teddy 建議搭配Uncle Bob 的《Clean Architecture》,一本學理論,另一本學實作,兩本一起服用學習效果更佳。』
    -「搞笑談軟工」板主Teddy Chen 一版推薦序專文推薦

    『只有誠實地面對專案需求與團隊情況,根據當下條件選擇合適的架構與方法論,並在開發與維護過程中保持敏捷的彈性,隨時回頭審視、做出調整,以便因應業務領域在未來的任何變化,才能逐步邁向業務目標。這就是軟體開發上的「風險管理」。』
    -錢亞宏 譯者審校序專文推薦


    ★目錄:

    二版推薦序|Teddy Chen

    一版推薦序|Teddy Chen

    譯者審校序|錢亞宏

    推薦序|Gernot Starke

    貢獻者
    作者簡介
    檢閱者簡介

    作者序
    本書目標
    目標讀者
    範例應用程式
    下載彩色圖片
    讀者回饋
    讀者評論

    Chapter 01:可維護性
    可維護性是什麼意思?
    可維護性能夠實現功能性
    可維護性帶來開發者樂趣
    可維護性能支援做出決策
    維護可維護性

    Chapter 02:階層式架構的問題點
    資料庫驅動設計
    在階層中偷吃步
    難以執行的測試
    使用案例不知影
    平行分工的困難
    如何讓軟體邁向可維護性的目標?

    Chapter 03:依賴反轉
    單一職責原則
    與副作用之間的陳年往事
    依賴反轉原則
    整潔的架構
    六角形架構
    如何讓軟體邁向可維護性的目標?

    Chapter 04:程式結構
    以架構層為結構
    以功能為結構
    可呈現出架構的套件結構
    依賴注入的影響
    如何讓軟體邁向可維護性的目標?

    Chapter 05:使用案例實作
    領域模型實作
    使用案例長話短說
    輸入驗證
    利用建構子的好處
    不同的使用案例、不同的輸入模型
    業務規則驗證
    豐富領域模型與貧血領域模型
    不同的使用案例、不同的輸出模型
    唯讀使用案例的問題
    如何讓軟體邁向可維護性的目標?

    Chapter 06:網頁層轉接器實作
    依賴反轉
    網頁層轉接器的職責
    分割開來的控制器
    如何讓軟體邁向可維護性的目標?

    Chapter 07:儲存層轉接器實作
    依賴反轉
    儲存層轉接器的職責
    分割開來的轉接埠介面
    分割開來的儲存層轉接器
    以Spring Data JPA為例
    資料庫交易的問題
    如何讓軟體邁向可維護性的目標?

    Chapter 08:架構測試
    測試金字塔
    領域實體的單元測試
    使用案例的單元測試
    網頁層轉接器的整合測試
    儲存層轉接器的整合測試
    系統主要路徑的系統測試
    要多少測試才算夠?
    如何讓軟體邁向可維護性的目標?

    Chapter 09:架構層之間的對應策略
    不對應策略(No Mapping)
    雙向對應策略(Two-Way Mapping)
    全部對應策略(Full Mapping)
    單向對應策略(One-Way Mapping)
    如何選擇要採用的策略?
    如何讓軟體邁向可維護性的目標?

    Chapter 10:應用程式組裝
    組裝是有什麼好談的?
    透過純程式碼組裝
    透過Spring的類別路徑掃描功能來組裝
    透過Spring的Java Config來組裝
    如何讓軟體邁向可維護性的目標?

    Chapter 11:理性看待偷吃步
    偷吃步的破窗效應
    第一步的重要性
    在使用案例之間共用模型
    把領域實體當成輸出或輸入模型
    省略輸入轉接埠
    省略服務
    如何讓軟體邁向可維護性的目標?

    Chapter 12:強化架構中的邊界
    邊界與依賴關係
    存取修飾子
    編譯後檢查
    建置成品
    如何讓軟體邁向可維護性的目標?

    Chapter 13:管理多個Bounded Context
    為每個Bounded Context建立一個六角形?
    解耦合的Bounded Context
    適當耦合的Bounded Context
    如何讓軟體邁向可維護性的目標?

    Chapter 14:以元件為基礎的軟體架構方法
    透過元件進行模組化
    案例研究:打造一個檢查引擎元件
    強化元件的邊界
    如何讓軟體邁向可維護性的目標?

    Chapter 15:選擇你的架構風格
    從簡單開始
    領域的發展
    相信自己的經驗
    視情況而定


    <作者簡介>

    Tom Hombergs
    是軟體工程師、作家、奉行簡單主義的阿宅。複雜度就是他的死對頭,所以他致力於將複雜的東西簡化成容易消化的碎片。如果他能夠理解,那麼其他人也能夠理解。他簡化程式碼及文字,並撰寫讓人可以輕鬆閱讀的文章、書籍和開發文件。Tom目前在澳洲雪梨的Atlassian工作,負責Atlassian開發者使用的技術堆疊的DX(開發者體驗)。
購物須知
寄送時間
全台灣24h到貨,遲到提供100元現金積點。全年無休,週末假日照常出貨。例外說明
送貨方式
透過宅配送達。除網頁另有特別標示外,均為常溫配送。
消費者訂購之商品若經配送兩次無法送達,再經本公司以電話與Email均無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
送貨範圍
限台灣本島與離島地區註,部分離島地區包括連江馬祖、綠島、蘭嶼、琉球鄉…等貨件,將送至到岸船公司碼頭,需請收貨人自行至碼頭取貨。注意!收件地址請勿為郵政信箱。
註:離島地區不配送安裝商品、手機門號商品、超大材商品及四機商品。
售後服務
缺掉頁更換新品
執照證號&登錄字號
本公司食品業者登錄字號A-116606102-00000-0
關於退貨
  • PChome24h購物的消費者,都可以依照消費者保護法的規定,享有商品貨到次日起七天猶豫期的權益。(請留意猶豫期非試用期!!)您所退回的商品必須回復原狀(復原至商品到貨時的原始狀態並且保持完整包裝,包括商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性)。商品一經拆封/啟用保固,將使商品價值減損,您理解本公司將依法收取回復原狀必要之費用(若無法復原,費用將以商品價值損失計算),請先確認商品正確、外觀可接受再行使用,以免影響您的權利,祝您購物順心。
  • 如果您所購買商品是下列特殊商品,請留意下述退貨注意事項:
    1. 易於腐敗之商品、保存期限較短之商品、客製化商品、報紙、期刊、雜誌,依據消費者保護法之規定,於收受商品後將無法享有七天猶豫期之權益且不得辦理退貨。
    2. 影音商品、電腦軟體或個人衛生用品等一經拆封即無法回復原狀的商品,在您還不確定是否要辦理退貨以前,請勿拆封,一經拆封則依消費者保護法之規定,無法享有七天猶豫期之權益且不得辦理退貨。
    3. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,一經您事先同意後始提供者,依消費者保護法之規定,您將無法享有七天猶豫期之權益且不得辦理退貨。
    4. 組合商品於辦理退貨時,應將組合銷售商品一同退貨,若有遺失、毀損或缺件,PChome將可能要求您依照損毀程度負擔回復原狀必要之費用。
  • 若您需辦理退貨,請利用顧客中心「查訂單」或「退訂/退款查詢」的「退訂/退貨」功能填寫申請,我們將於接獲申請之次日起1個工作天內檢視您的退貨要求,檢視完畢後將以E-mail回覆通知您,並將委託本公司指定之宅配公司,在5個工作天內透過電話與您連絡前往取回退貨商品。請您保持電話暢通,並備妥原商品及所有包裝及附件,以便於交付予本公司指定之宅配公司取回(宅配公司僅負責收件,退貨商品仍由特約廠商進行驗收),宅配公司取件後會提供簽收單據給您,請注意留存。
  • 退回商品時,請以本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋),原封包裝後交付給前來取件的宅配公司;如果本公司或特約廠商寄送商品給您時所使用的外包裝(紙箱或包裝袋)已經遺失,請您在商品原廠外盒之外,再以其他適當的包裝盒進行包裝,切勿任由宅配單直接粘貼在商品原廠外盒上或書寫文字。
  • 若因您要求退貨或換貨、或因本公司無法接受您全部或部分之訂單、或因契約解除或失其效力,而需為您辦理退款事宜時,您同意本公司得代您處理發票或折讓單等相關法令所要求之單據,以利本公司為您辦理退款。
  • 本公司收到您所提出的申請後,若經確認無誤,將依消費者保護法之相關規定,返還您已支付之對價(含信用卡交易),退款日當天會再發送E-mail通知函給您。