Resources

 The Pillars of Domain-Driven Design

Domain-Driven Design is neither a method nor a technology, it is a culture, a way of thinking about the needs of the customers first and putting an emphasis on their language and human interactions. The promise of DDD is to tackle complexity in the heart of software, and the means are plentiful and can be overwhelming. There are three pillars though, on which the whole approach stands. A focus on learning, language, and empathy. With the right mindset, it becomes simple to derive good models, keep them pure and aligned with the business. Simple is not easy, but done right Domain-Driven Design transforms everything in your organization from code to culture, from agile to architecture.

DDD Event Sourcing Video

May 16 2021

 Unconditional Code • Michael Feathers

Many systems are full of error checks and conditional logic. They introduce discontinuities that make reasoning difficult. In this talk, Michael Feathers will present a conceptual framework for dealing with errors, conditionality and decision making at the level of code, architecture and user interface. Often by changing design and revisiting requirements we can make various error cases impossible, and make code and architecture simpler as well as more robust.

Abstraction Design Video

Mar 18 2021

 Higher Kinded Types in Python

* What Higher Kinded Types (HKTs) are and why they are useful * How they are implemented and what limitations there are * How can you use them in your own projects

Python

Oct 30 2020

 Is High Quality Software Worth the Cost?

A common debate in software development projects is between spending time on improving the quality of the software versus concentrating on releasing more valuable features. Usually the pressure to deliver functionality dominates the discussion, leading many developers to complain that they don't have time to work on architecture and code quality.

Code quality Martin Fowler

Oct 23 2020

 Greg Young - How to get productive in a project in 24h

So you are entering a new contract, or maybe it's just a new project you are being transferred to. How do you get up, going, and committing on your first day? How to identify the areas of the system that are risky or problematic? This session looks at tools and strategies to reach this goal coming from a speaker who regularly works for less than a week with a team and needs to provide value within that period of time

Code quality Observability Video

Jun 27 2020

 Modeling Uncertainty • Vaughn Vernon

The foundation ideas behind Domain-Driven Design, or DDD, are fundamentally the same as when Eric Evans brought them to our attention through his seminal work. The Bounded Context with its Ubiquitous Language is still of chief importance, along with mapping various Bounded Contexts to form a whole system solution. Even so, what has changed substantially is the computing landscape on which software developers construct and release these solutions. Systems are far more likely to be distributed, especially due to the [...]

Architecture DDD Video

Jun 24 2020