Skip to content

krzykrucz/e-lesson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Lesson (functional DDD showcase)

Build Status

Table of Contents

  1. Overview
  2. Event storming
  3. Contribute
  4. References

Overview

Used practices:
  • Domain-driven design
  • Pure functional programming
  • Behaviour-driven testing (BDD)
  • Event storming
  • Clean hexagonal architecture
Tech stack:
  • Kotlin with Spring Boot in production
  • Cucumber with Gherkin and ArchUnit in testing
The process:
  1. Big Picture event storming
  2. Design Level event storming
  3. Define ubiquitous language in code (types + workflows)
  4. Story definition in behaviour-driven way (specs)
  5. Implement domain logic to fulfill test specs
  6. GOTO step 3/4

Event storming

alt text

alt text

Contribute

Please, feel free to contribute by creating a Pull Request from your own fork repository.

You may either:

  • choose an existing Issue to be implemented and assign yourself to it
  • create your own Issue concerning any enhancements or not yet implemented features
  • just submit a Pull Request if changes contain just refactoring of the existing code

References

  1. Domain Modeling Made Functional, Scott Wlaschin
  2. Implementing Domain-Driven Design, Vaughn Vernon
  3. Ports and Adapters Pattern (Hexagonal Architecture), Juan Manuel Garrido de Paz