2 Comments
Jun 23, 2022Liked by Kevin Rutherford

Hello Kevin, congratulations for the initiative.

My thoughts: I think that "explicitness" is really powerful concept, and a key one in software design.

The relation between "being explicit" and coupling, as you clearly showed, is very important, but when I think also to "intention revealing interfaces", "good names", "ubiquitous language" et cetera, I feel that concept could be further extended and explored. The simple hint "the code should be explicit in what it does" is able to bring you in favouring good names for classes/methods, immutability over mutability, avoiding side-effects, and so on. "To be explicit" looks to me a powerful driving principle.

There are currently, in my opinion, too much so called "principles" in software design (some of them being actually a re-formulation of others, ex.: the SRP is just a re-statement of 'separation of concerns and cohesion' for me), and I think they should be reduced to a small set of principles that are really "fundamentals".

I'm thinking that explicitness could be the base for such a principle, able to sum and encompass some others. I really like the idea. What do you think?

Expand full comment