DDD and FP Can’t Be Friends - Yet - Mike Sperber and Henning Schwentner - DDD Europe 2023

  Рет қаралды 1,296

Domain-Driven Design Europe

Domain-Driven Design Europe

7 ай бұрын

Domain-Driven Design Europe 2023
dddeurope.com - / ddd_eu - newsletter.dddeurope.com/ / domain-driven-design-e...
Organised by Aardling (aardling.eu/)
Henning (dedicated to DDD) and Mike (ferociously FP since the 80s) agree on all the fundamentals of software architecture, but when it comes to designing models, they can't seem to find common ground. DDD and FP folks like to congratulate themselves on how well they go together - how FP modeling techniques complement DDD models, or how DDD concepts are really FP in disguise. However, much work remains to unify these two worlds:
DDD folks like to use the ubiquitous concrete language of the application domain, whereas FP folks like abstractions and the terminology that goes with it. Mixing the two results in inconsistent or contradictory vocabulary.
While both camps prefer operation-rich models, the approaches to designing these operations are incompatible. Specifically, the OO influence of DDD tilts DDD models towards the OO idea of having the objects populating the domain be encapsulated and thus isolated, whereas in FP this encapsulation is an emergent (or not emergent) phenomenon. .
DDD’s tactical design is inherently stateful, and FP is inherently stateless. This naturally leads to very different approaches to interface design, and more importantly, to the use of types and their relationship to the ubiquitous language. Moreover, this results in fundamental differences in the division between entities and value objects. Note that this is the case even when Tactical DDD is expressed in functional languages, as the means of expression change, but the fundamental approach is the same.
Even more fundamentally, DDD focuses on modeling the domain, whereas FP focuses on the human perception of the domain - this might seem like an esoteric difference, but has pervasive practical impact. Thus, to reap the full potential of combining DDD and FP, we first need to recognize the differences. While DDD has much to teach FP about relating the domain language to the code, it can learn from FP its extensive set of techniques for turning information into data as well as the judicious use of abstraction. Henning and Mike will highlight how DDD and FP approaches to design differ, and offer possible approaches to unifying both for mutual gain and insight.
Michael Sperber is CEO of Active Group in Tübingen, Germany. Mike specializes in functional programming, and has been an internationally recognized expert in the field: He has spoken at the top conferences in programming languages, authored many papers on the subject as well as several books. Mike is one of the founders of the funktionale-programmierung.de blog, and one of the co-organizers of the BOB developer conference.
Henning loves programming in high quality. He lives this passion as coder, coach, and consultant at WPS - Workplace Solutions. There he helps teams to structure their monoliths or to build new systems from the beginning with a sustainable architecture. Microservices or self-contained systems are often the result. Henning is author of Domain Storytelling (Addison-Wesley, 2022), and the www.LeasingNinja.io as well as translator of “Domain-Driven Design kompakt” (dpunkt, 2017).

Пікірлер: 7
@gdargdar91
@gdargdar91 7 ай бұрын
They are a perfect couple if you do it right.
@JohnMcclaned
@JohnMcclaned 4 ай бұрын
Imagine standing on stage for an hour showing everyone you have skill issues. DDD has nothing to do with whether you use OO or FP lmao
@FatFuckRecherche
@FatFuckRecherche 7 ай бұрын
That was a great talk against FP for me 😁
@thebil
@thebil 7 ай бұрын
Love how stereotypically smug is the FP programmer.
@statebased
@statebased 7 ай бұрын
A bit too much emotional "junk" in this interplay. I have run both OO and FP domain modeling, what counts is the quality of the people. FP is however needed if the domain has multiple levels of interpretation.
@PierreThierryKPH
@PierreThierryKPH 3 ай бұрын
It's a shame to present them as opposed somehow. It's disappointing that this talk was making jokes about FP stereotypes instead of showing the reality and usefulness of FP. Like, Haskell is the best language to me when I want to to something I/O or mutation heavy, if only because I can cleanly separate where the side effects occur and where they never do.
Functional Domain Modelling - Marco Emrich and Ferdinand Ade - DDD Europe 2023
51:39
Domain-Driven Design Europe
Рет қаралды 2,1 М.
Living in your own bubble - Jacob Duijzer - DDD Europe 2023
55:20
Domain-Driven Design Europe
Рет қаралды 793
ВОДА В СОЛО
00:20
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 29 МЛН
路飞被小孩吓到了#海贼王#路飞
00:41
路飞与唐舞桐
Рет қаралды 83 МЛН
How your brain learns new (programming) languages - Simone de Gijt - DDD Europe 2023
50:40
DDD in large product portfolios - Andreas Pinhammer - DDD Europe
38:47
Domain-Driven Design Europe
Рет қаралды 2,8 М.
Architecting for Scale • David Leitner • CodeCrafts 2024
54:24
SQUER Solutions
Рет қаралды 538
Functional Programming with C# - Simon Painter - NDC London 2023
1:09:05
NDC Conferences
Рет қаралды 15 М.
Entropy in Software, DDD, and Constructor Theory - Wei (David) Wang - DDD Europe 2023
52:46
Java Is Better Than Rust
42:14
ThePrimeTime
Рет қаралды 159 М.
Zero-Downtime Projections Replay - Robert Baelde - DDD Europe 2023
35:05
Domain-Driven Design Europe
Рет қаралды 721
Domain Modeling Made Functional - Scott Wlaschin
49:02
DevTernity Conference
Рет қаралды 2 М.
The Escher School of Fish: Modelling with Functions - Einar Høst - DDD Europe 2023
49:18
Why Functional Programming Matters • John Hughes • YOW! 2017
58:18
GOTO Conferences
Рет қаралды 8 М.
iPhone socket cleaning #Fixit
0:30
Tamar DB (mt)
Рет қаралды 16 МЛН
Сколько реально стоит ПК Величайшего?
0:37
Looks very comfortable. #leddisplay #ledscreen #ledwall #eagerled
0:19
LED Screen Factory-EagerLED
Рет қаралды 3,3 МЛН
Telefonu Parçaladım!😱
0:16
Safak Novruz
Рет қаралды 26 МЛН
Kumanda İle Bilgisayarı Yönetmek #shorts
0:29
Osman Kabadayı
Рет қаралды 1,9 МЛН
Здесь упор в процессор
18:02
Рома, Просто Рома
Рет қаралды 416 М.