【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 Tom Hombergs 博硕

Brand: 博碩    Sold By: EM China
【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 Tom Hombergs 博硕
【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 Tom Hombergs 博硕
【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 Tom Hombergs 博硕
【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 Tom Hombergs 博硕

【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 Tom Hombergs 博硕

Brand: 博碩    Sold By: EM China
$64.64 In Stock
Item can be returned in its original condition for a full refund or replacement within 30 days of receipt.

100% Satisfaction Guarantee

Amazing Value

Fast Shipping

Expert Customer Service

Free shipping in US over $59 (Ships from China, Arrives in 7-14 business days: Wed, Jun 26 - Fri, Jul 05)
【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 Tom Hombergs 博硕

【中商原版】Clean Architecture实作篇 在整洁的架构上弄脏你的手 港台原版 T...

$64.64

Product Details

 

商品详情

《Clean Architecture實作篇:在整潔的架構上弄髒你的手》

作者: Tom Hombergs  

譯者: 錢亞宏

出版社:博碩  

出版日期:2022/08/10

語言:繁體中文

ISBN:9786263331815

規格:平裝 / 176頁 / 17 x 23 x 1.36 cm / 普通級 / 單色印刷 / 初版

出版地:中国台

本書分類:電腦資訊> 程式設計/APP開發> 程式邏輯/演算法

 (页面参数仅供参考,具体以实物为准)

 

內容簡介

[名家名著] 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...)

购物须知0627-640.jpg

Shipping Overview: 

Free Shipping: We offer free shipping on most orders within the U.S. Certain items may require a shipping fee due to size or handling needs. 

Order Processing: Please allow 1-2 business days for order processing and preparation before shipment. 

Domestic Shipping: Orders within the U.S. are shipped via USPS or FedEx, depending on the origin of the product. The average transit time is 3-7 business days. 

International Shipping: Currently, we only ship within the USA. 

Tracking Information: Every order is trackable. You will receive a tracking number once your order has been shipped. Products may be shipped from various global fulfillment centers.

Shipping Delays: 

Please note that shipping times may vary due to factors beyond our control, such as weather conditions, natural disasters, or peak holiday periods. While we strive to ensure timely delivery, the exact arrival time cannot be guaranteed and is managed by the shipping carrier.

Shipping Options:

  • Standard Delivery: Most orders are shipped within 3-7 business days. Larger items may utilize LTL shipping for safe handling.

  • Handling Time: We handle shipments on business days (Monday - Friday), with a preparation time of 1-2 days.

  • Additional Charges: Some items require additional shipping charges due to their size, weight, or special handling. These charges are specified on the product pages and are not eligible for shipping discounts.

  • Exclusions: Gift cards, packaging, taxes, and prior purchases do not count toward the minimum purchase requirement for free shipping. This offer is valid only for shipments to U.S. addresses, including Puerto Rico.

Delivery Details:

  • Estimates: Standard shipping within the US typically takes 3-7 business days. These are estimates and not guarantees.

  • Shipping Restrictions: We ship to all 50 states, Washington, DC, U.S. territories, and APO/FPO/DPO addresses. Shipping options vary based on the delivery address.

  • Remote Areas: Shipments to remote areas may incur additional charges or require pickup from a nearby shipping partner’s location.

Shipping Confirmation:

You will receive a shipping confirmation email with a tracking number as soon as your order is dispatched. If you do not receive this email immediately, please be assured that your items will arrive within the estimated delivery window provided at checkout.

Order Modifications:

If you need to cancel or modify your order, please contact our customer support immediately.

Issues with Delivery:

If your order shows as delivered but you have not received it, please contact the shipping carrier directly to resolve the issue. For persistent problems, contact our customer service at cs@everymarket.com.

Customer Support:

Our team is available 24/7 to assist you with any questions or concerns regarding your order. We are committed to ensuring a smooth shopping experience.

Return & Refund Policy Overview

Please review our return and refund policies below to ensure a smooth transaction process.

Return Policy

  • Duration: You have 30 days from receiving your item to initiate a return.

  • Condition: Items must be unworn, unwashed, with original tags and packaging intact.

  • Shipping Costs: Customers are responsible for return shipping costs.

  • Packaging: Ensure returned items are well-packaged to avoid damage during transit.

  • Tracking: Use a trackable and insured shipping method as we are not liable for items lost or damaged on return.

  • Initiating a Return: Contact us at cs@everymarket.com to start your return. We will provide a return shipping label and instructions upon approval. Returns without prior approval will not be accepted.

How to Return

  • Method: Returns must be sent back by mail to the address provided in the return instructions.

Return Label

  • Defective Products: Return labels are provided for defective items.

  • Non-Defective Returns: Customers are responsible for obtaining their return shipping label.

Product Conditions for Return

  • Eligible Products: Returns are only accepted for items in new condition.

Nonreturnable Items

Certain items are not eligible for return:

  • Electronic devices after 30 days (e.g., computers, laptops, Kindles)

  • Gift cards, prepaid game cards

  • Perishable goods, live insects, some jewelry, some health and personal care items

  • Customized or personalized products

  • Items with special shipping restrictions

Refund Policy

  • Window: Eligible products may be returned within 30 days of delivery for a refund.

  • Refund Method: Refunds are processed to the original payment method or as store credit for items purchased with gift cards.

  • Processing Time: Refunds are processed within 3-5 business days after we receive the return; please allow additional time for shipping and bank processing.

Claims

Inspect your order upon arrival and report any defects, damages, or incorrect items immediately to allow us to address the issue. For claims, contact our support team with details of the issue.

Exchange Policy

For the quickest service, return your original item and place a new order for the desired product once your return is accepted.

Return Address

EveryMarket Customer Service 2101 E Terra Ln, O'Fallon, MO 63366

Customer Support

Available 24/7 for any questions or assistance needed:

  • Phone: +1 636-312-5925

  • Email: cs@everymarket.com

 

 

商品详情

《Clean Architecture實作篇:在整潔的架構上弄髒你的手》

作者: Tom Hombergs  

譯者: 錢亞宏

出版社:博碩  

出版日期:2022/08/10

語言:繁體中文

ISBN:9786263331815

規格:平裝 / 176頁 / 17 x 23 x 1.36 cm / 普通級 / 單色印刷 / 初版

出版地:中国台

本書分類:電腦資訊> 程式設計/APP開發> 程式邏輯/演算法

 (页面参数仅供参考,具体以实物为准)

 

內容簡介

[名家名著] 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...)

购物须知0627-640.jpg

Shipping Overview: 

Free Shipping: We offer free shipping on most orders within the U.S. Certain items may require a shipping fee due to size or handling needs. 

Order Processing: Please allow 1-2 business days for order processing and preparation before shipment. 

Domestic Shipping: Orders within the U.S. are shipped via USPS or FedEx, depending on the origin of the product. The average transit time is 3-7 business days. 

International Shipping: Currently, we only ship within the USA. 

Tracking Information: Every order is trackable. You will receive a tracking number once your order has been shipped. Products may be shipped from various global fulfillment centers.

Shipping Delays: 

Please note that shipping times may vary due to factors beyond our control, such as weather conditions, natural disasters, or peak holiday periods. While we strive to ensure timely delivery, the exact arrival time cannot be guaranteed and is managed by the shipping carrier.

Shipping Options:

  • Standard Delivery: Most orders are shipped within 3-7 business days. Larger items may utilize LTL shipping for safe handling.

  • Handling Time: We handle shipments on business days (Monday - Friday), with a preparation time of 1-2 days.

  • Additional Charges: Some items require additional shipping charges due to their size, weight, or special handling. These charges are specified on the product pages and are not eligible for shipping discounts.

  • Exclusions: Gift cards, packaging, taxes, and prior purchases do not count toward the minimum purchase requirement for free shipping. This offer is valid only for shipments to U.S. addresses, including Puerto Rico.

Delivery Details:

  • Estimates: Standard shipping within the US typically takes 3-7 business days. These are estimates and not guarantees.

  • Shipping Restrictions: We ship to all 50 states, Washington, DC, U.S. territories, and APO/FPO/DPO addresses. Shipping options vary based on the delivery address.

  • Remote Areas: Shipments to remote areas may incur additional charges or require pickup from a nearby shipping partner’s location.

Shipping Confirmation:

You will receive a shipping confirmation email with a tracking number as soon as your order is dispatched. If you do not receive this email immediately, please be assured that your items will arrive within the estimated delivery window provided at checkout.

Order Modifications:

If you need to cancel or modify your order, please contact our customer support immediately.

Issues with Delivery:

If your order shows as delivered but you have not received it, please contact the shipping carrier directly to resolve the issue. For persistent problems, contact our customer service at cs@everymarket.com.

Customer Support:

Our team is available 24/7 to assist you with any questions or concerns regarding your order. We are committed to ensuring a smooth shopping experience.

Return & Refund Policy Overview

Please review our return and refund policies below to ensure a smooth transaction process.

Return Policy

  • Duration: You have 30 days from receiving your item to initiate a return.

  • Condition: Items must be unworn, unwashed, with original tags and packaging intact.

  • Shipping Costs: Customers are responsible for return shipping costs.

  • Packaging: Ensure returned items are well-packaged to avoid damage during transit.

  • Tracking: Use a trackable and insured shipping method as we are not liable for items lost or damaged on return.

  • Initiating a Return: Contact us at cs@everymarket.com to start your return. We will provide a return shipping label and instructions upon approval. Returns without prior approval will not be accepted.

How to Return

  • Method: Returns must be sent back by mail to the address provided in the return instructions.

Return Label

  • Defective Products: Return labels are provided for defective items.

  • Non-Defective Returns: Customers are responsible for obtaining their return shipping label.

Product Conditions for Return

  • Eligible Products: Returns are only accepted for items in new condition.

Nonreturnable Items

Certain items are not eligible for return:

  • Electronic devices after 30 days (e.g., computers, laptops, Kindles)

  • Gift cards, prepaid game cards

  • Perishable goods, live insects, some jewelry, some health and personal care items

  • Customized or personalized products

  • Items with special shipping restrictions

Refund Policy

  • Window: Eligible products may be returned within 30 days of delivery for a refund.

  • Refund Method: Refunds are processed to the original payment method or as store credit for items purchased with gift cards.

  • Processing Time: Refunds are processed within 3-5 business days after we receive the return; please allow additional time for shipping and bank processing.

Claims

Inspect your order upon arrival and report any defects, damages, or incorrect items immediately to allow us to address the issue. For claims, contact our support team with details of the issue.

Exchange Policy

For the quickest service, return your original item and place a new order for the desired product once your return is accepted.

Return Address

EveryMarket Customer Service 2101 E Terra Ln, O'Fallon, MO 63366

Customer Support

Available 24/7 for any questions or assistance needed:

  • Phone: +1 636-312-5925

  • Email: cs@everymarket.com

 

Oops!

Sorry, it looks like some products are not available in selected quantity.

OK