Richard Wallintin
software architect, coach and DDD enthusiast @ WPS
Hamburg, Germany
Actions
Richard wants software to just work. He believes that this is best achieved by independent teams that seriously measure the success of their products. As an architect, consultant and coach, he values passion, courage and technical excellence. And of course, Richard always writes the test first.
Area of Expertise
Topics
Modules are Underrated
Many software-developing organisations adopt DDD and apply strategic design to map out bounded contexts based on domain understanding to build services and applications within those contexts.
Teams have come to appreciate hexagonal architecture as a great approach to isolating the domain within a microservice or an application.
But that cannot be the end of the story - successful applications grow, people learn and the world changes. Bounded contexts will require adjustment, be split or abandoned - and that requires modularity within their domain cores.
I want to show an example of how hexagonal architecture and domain-driven modules go together and how such an architecture can be visualized and organized.
- presented iSAQB Software Architecture Gathering 2021
- works as lightning talk as well as medium (<1h) presentation
TDD ❤️ DDD: Modeling in Code, seriously
You fear that working closely with domain experts means modeling on a whiteboard forever?
You think that DDD means “big design up-front with sticky notes“?
After all, if domain experts don’t understand code, isn’t collaborative modeling limited to text and drawings?
Actually, DDD is about using ubiquitous languages – meaning that your code can
be comprehensible for domain experts!
Test-driven Development (TDD) can help you to seamlessly move between post-it notes
and production code, together with your domain experts.
In this session, I will show how to do domain-driven modeling in code. I will write working Kotlin code…
* driven by tests,
* with rich ubiquitous language,
* that is understandable for non-developers (even without Gherkin)
And you will learn something about airport ground handling services, which will be our real-world example.
- Live Coding Event for < 2 hours
- presentation with IDE, also works remote
- participants should have minimal Java/Kotlin and programming background
- real-world example, code available on github
Workshop – TDD ❤️ DDD: Modeling in Code, seriously
Does DDD mean “big design up-front with sticky notes“? After all, if domain experts don’t understand code, isn’t collaborative modeling limited to text and drawings?
Actually, DDD is about using ubiquitous languages – meaning that your code can be comprehensible for domain experts!
Test-driven Development (TDD) can help you to seamlessly move between post-it notes and production code, together with your domain experts.
In this workshop, together we will...
* quickly re-iterate the fundamentals of TDD (and behaviour-driven development, BDD)
* touch on some non-code collaborative modeling techniques (Domain Storytelling, Event Storming)
* model and implement working software from scratch based on real-world requirements of an airport
You will...
* discuss and understand the domain as well as how we want to model it
* write code in small groups to evolve a model and make it work
(We will use Kotlin but no advanced experience is required. If you’re comfy with Java, you’re just fine.)
After the workshop you will be able to...
* write code that is close to the domain and comprehensible to non-software-developers
* practice TDD and apply implementation techniques for DDD building blocks
* develop models directly in code together with domain experts
* find the right balance between code and non-code artifacts
- full day workshop (ca 6 net hours + lunchbreak + frequent short breaks)
- participants need computers and a development environment (of their liking) for Kotlin(JVM) and need to be basically familiar with Kotlin (Java experience is sufficient, though)
The Arrows Make the Difference – Use Information, Control and Model Flow for Better Architectures
Designing systems and discussing architectural decisions is hard, because there are so many concerns to respect.
Explicitly distinguishing control flow, information flow, model flow and dependencies helps to clear up the confusion. This allows for richer and more powerful designs - from class level all the way up to bounded contexts and team organization.
I will explain how to fully utilize these concepts and share stories of how tiny arrowheads can make a huge difference, for better and worse.
Talk with Slides. Min. 45 max. 90 minutes.
For junior and experienced software architects.
Richard Wallintin
software architect, coach and DDD enthusiast @ WPS
Hamburg, Germany
Actions
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top