Re:Better Software Design with Clean Architecture
by UK-AL on Monday July 03, 2017 @07:16AM
(#14687410)
"students can be registered for course" - This is already implying an order.
[ Parent
| on HN ]
Re:Better Software Design with Clean Architecture
by mbrock on Monday July 03, 2017 @07:27AM
(#14687452)
If I say "students can be registered for courses in the school" then you might think the OO model should be
school.register(student, course)
which does actually seem reasonable to me. Here the school object would basically be the system's logic as a whole, and both the course and the student could just be IDs.I really think single dispatch OO is a huge distraction and I haven't seen any strong arguments for its use as a general paradigm.
Re:Better Software Design with Clean Architecture
by UK-AL on Monday July 03, 2017 @07:28AM
(#14687457)
Nothing about DDD says you can't use multi-dispatch. If this how you think about the problem. Then this is your solution if your language is capable of expressing it.
Re:Better Software Design with Clean Architecture
by mbrock on Monday July 03, 2017 @07:45AM
(#14687541)
Yeah, I'm quite a big fan of Eric Evans and DDD. Especially the more high level parts about ubiquitous language, bounded contexts, anti-corruption layers, and many of the other patterns. Yet I think that the focus on single-dispatch OO kind of dates the book and makes it less general and beautiful, much like how the GoF's "Design Patterns" book is more banal than Christopher Alexander's work on pattern languages because of the overemphasis on specific implementations of single dispatch OO patterns (the notorious visitor pattern, for example).
Re:Better Software Design with Clean Architecture
by konschubert on Monday July 03, 2017 @08:01AM
(#14687610)
If the pairings of courses and students are registered in the school object, then that's basically OO implementation of a many to many relationship of students and courses.
That's why I like Django. You just tell it that you want a many-to-many between students and courses and it does they for you, symmetrically, without forcing you to introduce a class such as "school".
Re:Better Software Design with Clean Architecture
by UK-AL on Monday July 03, 2017 @08:11AM
(#14687658)
Bi-directional models come with their own problems.