“Functional and Reactive Domain Modeling” by D. Ghosh combines classic object-oriented DDD with functional programming in Scala. Although powerful, the book’s methodology leaves key questions unanswered, such as “How to choose a particular model among alternatives? How to split a model into parts? How to decide upon the modelling granularity?”
This talk attempts to solve these questions by combining the DDD methodology with Behaviour-Driven Development. First, the example domain — the design of pharmaceutical experiments — is introduced. Next, key concepts of BDD are adapted to functional programming, and a visual BDD-style model is developed for the domain. This model is then used to drive functional domain-driven design. Finally, we discuss the costs and benefits of the combined BDD/DDD approach for software development in complex domains.
YOU MAY ALSO LIKE:
Combining BDD and DDD with functional Scala: How BADD can it get?
Oleg Volkov gained a PhD in mathematics from QMUL. He founded a startup, XITIFIC, aiming to improve pharmaceutical R&D. He developed mathematical software for over a decade, and for the last two years has been working in Scala. His particular interest is in applying domain-driven design and functional reactive programming to develop interactive scientific applications.