“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:
- Real World Kotlin Development Workshop (in London on 22nd - 23rd October 2019)
- Jenny Martin's BDD From Start to Finish - Successful Delivery through Continuous Collaboration (in London on 4th - 6th November 2019)
- P3X - People, Product & Process eXchange 2019 (in London on 31st October - 1st November 2019)
- Clojure eXchange 2019 (in London on 2nd - 3rd December 2019)
- The Five Stages of Data: a holistic approach to data analytics and BI (in London on 21st October 2019)
- Code Kata: Yilin Wei - Optics with Monocle (in London on 22nd October 2019)
- Keynote: (Programming Languages) in Agda = Programming (Languages in Agda) (SkillsCast recorded in October 2019)
- Keynote: Haskell is a Great Host (SkillsCast recorded in October 2019)
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.