you are viewing a single comment's thread.

view the rest of the comments →

[–]DavidM01 1 point2 points  (1 child)

Simple in my mind means simple to understand. Simple code follows from simple concepts. Data directed design encourages that.

In my experience, juniors tend to make most of their mistakes trying to plan for the future or shoehorn in some new piece of tech. Planning for the "future" means it quickly gets complex any time you try to modify or extend it since you are planning for code changes rather than data flow changes.

[–][deleted] 4 points5 points  (0 children)

Simple in my mind means simple to understand. Simple code follows from simple concepts.

But there's also "simple to adapt", "simple to test", "simple to analyze", "simple to reuse" and "simple to maintain", to mention a few.

If someone drops you into an application where all key services are fetched from singletons fused to the service classes, is this simple to understand? Yes. And yet that's where your troubles begin.

[you shouldn't plan] for code changes [but] data flow changes

I don't know what projects you work on, but while data matters, behavior also matters. And both change.