Domain Driven Design in JS
Software applications attempt to add value to users by solving a problem in their business domain.
JS is a full-stack technololgy that can provide a complete solution to a problem, say, in the healthcare sector.
With this power comes responsibility.
A responsibility for understanding the target domain and incorporating that understanding in software.
Or rather, domain driven design.
When this responsibility is met, a living and breathing domain model is realised in the application.
This domain model is reflected in design artefacts, code and the very language that engineers speak in the context of development.
Such a model tackles the inherent domain complexities, ensuring a long valuable life to software.
In this talk I will talk about domain driven design and how to incorporate it in JS.
Target audience - All JS developers. Especially those building enterprise software
Key Takeaways - An understanding of the domain driven design (DDD) philosophy and how to incorporate it in development
The talk will have 3 parts:
1. An introduction to DDD and why it’s important
Will address the general developer attitudes - Why should we ‘understand’ or even be ‘aware’ of the domain?
We need to be good ‘technically’ right? Domain is for domain experts, business analysts, and product managers
* The most significant complexity is not technical. It is the domain itself
* When this domain complexity is not handled in the code, it won’t matter that the infrastructural technology is well conceived
2. So how does DDD work?
Iteratively develop a domain model that is realized in design, code and developer language.
Code becomes an expression of the Model. Development becomes an iterative process of refining the model, design and code as a single activity
* What is a model anyway? What is domain modeling?
* Modeling through Knowledge Crunching
* A Ubiquitous Language
* Binding Model and implementation
3. Incorporating DDD in JS
* Domain is a first class citizen
* No, it does not mean you need to do OOP
*Content heavily based on Domain Driven Design by Eric Evans
After several years of developing software in the FinTech industry, I have come to appreciate how important it is to tackle domain complexity in software. For something that can actually define the success or failure of a project, its surprising to see that domain modeling is virtually unrecognized as a skill among developers. Through this talk, I hope to provide some insights about the philosophy of DDD and its practical implementation, through my personal experience.
I have worked for close to 8 years in software development.
I have a Masters in CS from Rutgers University, USA.
I am also a mom and a champion of women in tech.