Re:Why Domain Driven Design?
by Scarblac on Friday November 25, 2022 @05:18AM
(#33741002)
It's as I've always said, every function ("unit") should be responsible for a single thing, and it must be developed by an independent company with no knowledge of the other companies involved. Otherwise you just can't do software engineering right.
[ Parent
| on HN ]
Re:Why Domain Driven Design?
by still_grokking on Friday November 25, 2022 @05:53AM
(#33741187)
This sounds brilliant!
What's the marketing name for that?
Re:Why Domain Driven Design?
by withinboredom on Friday November 25, 2022 @06:16AM
(#33741326)
I’ve called it Model-T development[1]. The Model-T brought standardization to building cars where companies only built to a very specific spec. It didn’t matter that some companies would be better than others, or cheaper/expensive. The point was choice, competition, and interchangeable parts. Granted, I don’t actually know about that, but that’s the end result.
[1]: I apparently deleted the post so I’ll have to undelete it and come update this comment.
"Lose coupling"
It’s called separating interface from implementation. When using an interface, only make assumptions on what the interface specifies, and not on how it may happen to be implemented. When implementing an interface, only make assumptions on what the interface specifies, and not on how it may happen to be used.
Re:Why Domain Driven Design?
by gadflyinyoureye on Friday November 25, 2022 @02:05PM
(#33745707)
Even this confuses people. Often the name of the interface is something like S3Client. No, the name should be something like PolicyWriter.
Re:Why Domain Driven Design?
by cutemonster on Friday November 25, 2022 @07:07PM
(#33748377)
It's called Microcompanies.
>> Otherwise [without microcompanies] you just can't do software engineering right.
So true
Re:Why Domain Driven Design?
by mannykannot on Friday November 25, 2022 @09:45AM
(#33742806)
For that to work, there has to be, somewhere, a clear understanding of how the units all work together to achieve the higher-level goals without violating the higher-level constraints which, in practice, increase in number and scope the higher up the pyramid of abstraction you go. Pace Robert Martin, divide-and-conquer cannot be used to reduce systems-level thinking to doing just one thing, even in an abstract sense.
> For that to work, there has to be, somewhere, a clear understanding of how the units all work together to achieve the higher-level goals without violating the higher-level constraints which, in practice, increase in number and scope the higher up the pyramid of abstraction you go.
Oh, that's an implementation detail. The market will sort it out.
This only works if you have a blockchain to keep track of it all. ;)
I'm not decided on that. On the one hand, sure, blockchain should be involved! But the single thing per company requirement would mean that the company could do nothing else but a blockchain with nothing on it.
But it does sound enticingly pure, a conglomerate of blockchain companies without further function.
Re:Why Domain Driven Design?
by nuancebydefault on Friday November 25, 2022 @03:22PM
(#33746362)
I believe that never works in practice. The thing that binds units together is also code. Only while designing / implementing that code, you encounter the flaws in the interfaces of those units, and conclude that half of the units need to be replaced or their specifications need change.
Re:Why Domain Driven Design?
by cutemonster on Friday November 25, 2022 @07:24PM
(#33748506)
Sure, that's how things used to be.
But this approach, Microcompanies as it is called (units developed by independent companies), is also partly no-code, in that the specifications and different functional units are glued together using lawyers.