在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):ddd-edm-online-course/ddd-edm-course-materials开源软件地址(OpenSource Url):https://github.com/ddd-edm-online-course/ddd-edm-course-materials开源编程语言(OpenSource Language):开源软件介绍(OpenSource Introduction):Materials for Domain-Driven Design and Event-Driven Microservices Online CourseThis class will be offered via O’Reilly’s Live Online Training Platform on a semi-monthly basis. Watch the link for scheduled offerings! SyllabusNew architectural paradigms like microservices and evolutionary architecture, as well as the challenges associated with managing data and transactional contexts in distributed systems, have generated a renewed interest in disciplined software design and modular decomposition strategies. We know that the secret to obtaining the benefits of these architectures is getting the boundaries right, both at the team and the component/service level, and then keeping them right as the software continues to evolve! A key reason for getting the boundaries right is that it allows us to create a unified and ubiquitous language within the bounded contexts those boundaries enclose, allowing the business and engineers to have productive and coherent conversations. Fortunately, there is a mature, battle-tested approach to domain modeling and system decomposition that is a perfect compliment to these architectures: Domain-Driven Design (DDD). In this course, we’ll leverage an exemplar business domain, that of a pizza delivery store, to illustrate DDD-based decomposition strategies, data architecture patterns, and implementations. Prerequisites and Helpful Background:
Setup Instructions:Foundational RequirementsYour computer should be set up with the following capabilities: Free SaaS accounts (optional): (Optional) Setup Path for Enhanced FeedbackThe exercises for this course will be enhanced and will provide personalized, real-time feedback if you have a (free) account with GitHub. We will use GitHub Classroom to generate a private repository for each participant, and it will use GitHub Actions to automatically run tests against code exercises submitted to each repository. The instructor will be able to see your code submissions, but no one else. A GitHub account is optional, but strongly recommended for the best experience.
At this point, you’ll want to pick up with the instructions found in the README of your private clone of the lab environment! Setup Path for Basic ParticipationWithout a GitHub account, you can still download the course materials manually, as a ZIP file; you just will not receive personalized feedback on the exercises. Schedule:Day One:Class Introduction (10 minutes)
Lecture: Why do we need DDD? (15 minutes) Lecture: What is Ubiquitous Language and why is it so important? (15 minutes) Open Q&A and Class Discussion: Why DDD / Ubiquitous Language (10 minutes) Break (10 minutes) Lecture: DDD 101 - Strategic Design: Bounded Contexts, Context Mapping, Subdomains (25 minutes) Open Q&A and Class Discussion: Strategic Design (10 minutes) Lecture: DDD 101 - Tactical Design: Aggregates, Entities, Value Objects, Domain Events, Application Services, Domain Services (25 minutes) Open Q&A and Class Discussion: Tactical Design (10 minutes) Lecture: Overview of Event Storming (15 minutes) Break (10 minutes) Lecture: Introduction to the Pizza Shop domain (10 minutes) Open Q&A and Class Discussion: Event Storming and Pizza Shop Domain (10 minutes) Student Activity: Pizza Shop Event Storming exercise (20 minutes) Interactive Screen Share: Pizza Shop Event Storming solution (15 minutes) Lecture: Discuss how Event Storm concepts translate into DDD concepts, User Stories, and TDD code (20 minutes) Open Q&A and Class Discussion: Day One AMA (10 minutes) Day Two:Day One Recap (10 minutes) Lecture: DDD and Technical Architectures (25 minutes) Break (10 minutes) Interactive Screen Share: Overview of the Pizza Shop Coding Exercise Environment (10 minutes) Student Activity: Lab 1: TDD Aggregate Root - Create Kitchen Commands with Business Logic and Invariants (10 minutes) Interactive Screen Share: Lab 1 Solution (15 minutes) Student Activity: Lab 2: TDD Aggregate Root - Create and Publish Kitchen Domain Events (10 minutes) Interactive Screen Share: Lab 2 Solution (15 minutes) Student Activity: Lab 3: TDD Aggregate Repository - Create Kitchen Repositories and Add Domain Events (10 minutes) Interactive Screen Share: Lab 3 Solution (15 minutes) Student Activity: Lab 4: TDD Aggregate Repository - Rehydrate Kitchen Aggregates by Reference (10 minutes) Interactive Screen Share: Lab 4 Solution (15 minutes) Student Activity: Lab 5: TDD Application Service - Expose Kitchen Business Interface and Implement Transactions (10 minutes) Interactive Screen Share: Lab 5 Solution (15 minutes) Student Activity: Lab 6: TDD Policy - Subscribe to a Kitchen Domain Event from within an Aggregate and Create CQRS View (10 minutes) Interactive Screen Share: Lab 6 Solution (15 minutes) Student Activity: Lab 7: TDD Policy - Subscribe to a Kitchen Domain Event from an Adjacent Aggregate and Update State (10 minutes) Interactive Screen Share: Lab 7 Solution (15 minutes) Open Q&A and Class Discussion: Day Two AMA (10 minutes) |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论