I'm looking for a term that describes a design pattern (or anti-pattern) that describes when a system is organized by generalizations rather than the terms of the business.
For example consider the domain driven example of:
Customer.Load
Account.Load
Orders.Load
vs:
Load.LoadCustomers
Load.LoadAccounts
Load.LoadOrders
Another example could be seen here in mvc: ASP.NET MVC - putting controller & associated views in the same folder?
While more about organization vs design, the comment from pettys IMO is correct:
Realize that there are two dimensions of the system at odds here, the architectural and the business. The original poster wants to keep all parts that deal with a certain business concern in one place. The default ASP.NET MVC layout spreads a single business concern out quite a bit so that architecturally-similar classes can stay together. Between these two choices I'd rather have things grouped by business concern than by architectural concern
There is only one way to physically organize the project. The OP is asking to organize by domain and pettys describes the default organization as "architecturally" organized. But it is this "architectural" organization that I'm better trying to classify.
It seems to me that this is aspect-oriented design, ie design favoring a classification with respect to a general process instead of specific terms of the business. I do not intend to confuse this with aspect-oriented programming which can be complementary to DDD, but it IS confusing which is why I'm wondering if there is a better name.
Aucun commentaire:
Enregistrer un commentaire