CUPID—for joyful coding

CUPID—for joyful coding.
What started as lighthearted iconoclasm, poking at the bear of SOLID, has developed into something more concrete and tangible. If I do not think the SOLID principles are useful these days, then what would I replace them with? Can any set of principles hold for all software? What do we even mean by principles?

Read in full here:

This thread was posted by one of our members via one of our news source trackers.


Corresponding tweet for this thread:

Share link for this tweet.


I immediately jumped to and agree with the part on Domain-based structure:

We still need artefacts like models, views, and controllers, whichever way we lay out the code, but grouping them by [MVC] type should not form the primary structure. Instead, the top level of the codebase should show the primary use cases of hospital management; maybe patient_history, appointments, staffing, and compliance.

Taking a domain-based approach to the code structure makes it easy to understand what the code is there for, and easy to navigate to wherever you need to be for anything more complicated than “make that button light blue”.

1 Like

Also mentions “Domain-based boundaries”. Probably similar to DDD, but without going into the tactical design patterns.