Skip to content

A practical Domain-Driven Design (DDD) workshop designed to bridge the gap between EventStorming and tactical DDD patterns one step at a time.

License

Notifications You must be signed in to change notification settings

PensionBee/ddd-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 

Repository files navigation

DDD Workshop

Welcome to PensionBee's DDD Workshop! This training programme is designed to increasing confidence writing event-driven, DDD-centric code by bridging the gap between EventStorming and the code one step at a time.

A couple of notes:

  • TypeScript is the language of choice (there's a TypeScript Foundations section at the beginning of the workshop for those who are unfamiliar with TS or need a refresher.)
  • The content is heavily inspired by Anthony Manning-Franklin's Functional Domain Driven Design: Simplified article.
  • Examples and exercises are somewhat specific to the way PensionBee have chosen to implement DDD tactical patterns. Our approach embraces pragmatic software design which is applicable to Object-Oriented Programming (OOP), Functional Programming (FP) and everything in-between.

We genuinely hope you find this workshop as useful and as fun as we've found it. Feel free to use it directly or fork it and modify it to suit your own needs.

Let's get to it...

Context

It’s your first day at SocialBuzz, the next big social media app. Promise.

You’re apprehended by the CEO at the coffee machine, just as you’re on the verge of figuring out how the damn thing works...

Right, here’s what we're going to need from you ASAP:

  1. People need to be able to register an account with their email address and a password.
  2. Users should be able to write short posts, possibly including images, which we’re going to display on the app's home page.
  3. They also need to be able to follow accounts they like.
  4. Ohh, and comments. Being able to comment on a post is important too.

Alright then, chop chop, let’s get to it.

You return to your desk (coffeeless). But you're excited. You feel it's time to try out this "Domain-Driven Design" thing you've heard so much about...

Workshop Overview

01: TypeScript foundations

02: EventStorming

03: Entities

04: Repositories

05: Command handlers

06: Policies

Final

About

A practical Domain-Driven Design (DDD) workshop designed to bridge the gap between EventStorming and tactical DDD patterns one step at a time.

Topics

Resources

License

Stars

Watchers

Forks