領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)

Alexey Zimarev 著 蔡孟玹 譯

  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-1
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-2
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-3
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-4
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-5
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-6
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-7
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-8
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-9
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-10
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-11
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-12
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-13
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-14
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-15
  • 領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-16
領域驅動設計與 .NET Core:應用 DDD 原則,探索軟體核心複雜度 (Hands-On Domain-Driven Design with .NET Core)-preview-1

買這商品的人也買了...

商品描述

  • 『本書採用目前流行的Event Storming(事件風暴)作為教學主軸,以刊登廣告系統為範例,帶著讀者完整走過一遍套用DDD的分析、設計與實作過程。書中除了基本的Entity、Value Object、Domain Service、Factory、Aggregate、Repository、Domain Event、Application Service等DDD戰術模式的詳細實作範例與設計取捨的討論,還包含進階的CQRS以及Event Sourcing應用。對於有志實踐Event Sourcing的讀者,不可錯過本書的第10章與第11章。』
    ——「搞笑談軟工」板主Teddy Chen 專文推薦


     
    領域驅動設計與.NET Core:應用DDD原則,探索軟體核心複雜度
     
    Tackling complexity in the heart of software by putting DDD principles into practice




    為了將複雜的業務知識與需求,轉換成容易理解和維護的傑出軟體,來自世界各地的開發人員開始應用DDD原則,使用現代工具(如Event StormingEvent SourcingCQRS)識別並解決對的問題,為客戶提供他們真正想要的東西。本書將引導你,如何讓利害關係人也能參與你為他們精心建置的軟體。透過了解領域模型的行為驅動與時序本質,你將能夠建置更精實、更敏捷、模組化的系統,進而解決複雜的業務問題!

    首先,我們將探討領域的複雜度,並學習如何捕捉領域語言的各種行為。然後,我們將說明Event Storming,並透過.NET Core 2.1(或更高版本)建立新專案。我們還會編寫一些將事件從便利貼轉移到C#的程式碼。我們也將展示如何使用aggregate處理命令並產生事件,以及逐步掌握CQRSEvent SourcingBounded Context的精髓。在將領域模型轉換為可執行的C#程式碼之後,我們將使用Vue.js範例應用程式,學習一些有用的前端相關模式。此外,我們也將重構程式碼,討論事件版本和遷移的要點。

    在這本書中,你將學到:
    使用Event Storming,與利害關係人一起發現並解決領域複雜度
    如何避免領域模型的常見陷阱
    深入探索並學習Bounded ContextContext Map等概念
    Event Sourcing的優點和缺點
    詳細介紹CQRS(命令查詢職責分離)
    學會使用Event Store
    學習實作投影(projection)
    DDD應用於不同的架構風格,如REST、反應式系統、微服務


    本書的最後一章,「第13章,拆分系統」,是一個「線上補充章節」,讀者請至博碩文化官網,下載繁體中文翻譯PDF。


    目標讀者:
    適合熟悉C#JavaScript的.NET開發人員。



    下載範例程式檔案:
    本書的程式碼是由GitHub託管,可點選下面圖案前往下載:


    下載本書的彩色圖片:
    提供您一個包含本書使用的彩色圖表的PDF檔案,可以在此下載:



  •  
  •  
  •  

作者簡介

  • Alexey Zimarev是一名軟體架構師,目前關注領域模型、DDD(領域驅動設計)、Event Sourcing、訊息驅動系統、微服務、教練與指導等技術。Alexey也是幾個開源專案的貢獻者,如RestSharp和MassTransit。他也是DDD Norway Meetup的Organizer(組織者)。

目錄大綱

  • 前言
    Chapter 01:為什麼需要領域驅動設計?
    了解問題
    處理複雜度
    知識
    小結
    延伸閱讀

    Chapter 02:語言和情境
    Ubiquitous Language
    語言和情境
    小結

    Chapter 03:Event Storming
    Event Storming
    主持Event Storming工作坊
    我們的第一個模型
    小結
    延伸閱讀

    Chapter 04:設計模型
    領域模型
    設計階段的Event Storming
    小結
    延伸閱讀

    Chapter 05:實作模型
    技術需求
    開始實作
    將模型轉換為程式碼
    確保正確性
    程式碼中的領域事件
    小結

    Chapter 06:使用命令
    技術需求
    領域模型之外
    處理命令
    應用程式服務
    小結

    Chapter 07:一致性邊界
    技術需求
    保護不變量
    小結

    Chapter 08:Aggregate持久化
    技術需求
    Aggregate持久化
    小結

    Chapter 09:CQRS-讀取端
    技術需求
    新增使用者設定檔
    查詢端
    實作查詢
    小結

    Chapter 10:Event Sourcing
    技術需求
    為什麼要使用Event Sourcing?
    事件來源的Aggregate
    小結
    延伸閱讀

    Chapter 11:投影與查詢
    事件與查詢
    從「事件」建置「讀取模型」
    實作投影
    跨Aggregate投影
    擴充讀取模型
    持久化儲存空間
    小結

    Chapter 12:Bounded Context
    單一模型的陷阱
    結構化系統
    小結

    Chapter 13:拆分系統
    本書的最後一章是一個「線上補充章節」,讀者請至博碩文化官網,下載繁體中文翻譯PDF。