Good Design is Additive, not Subtractive

time to read 2 min | 201 words

Wendy has a very good point here. Good practices, good design, are not there in order to facilitate some fad-of-the-day. The case she is giving is DI, SRP and SoC with regards to testing, and then taking the nuclear approach to testing, and deciding that since you can do just fake on the fly anything you need, you  can test without DI, SRP and SoC, therefor, you don't need them any more.

That is a problem.

Consider for a moment the guide lines for writing good C programs. Short methods, clear naming, guard clauses, etc. Those still holds today. In fact, pretty much all of the good design rules are not tied down to a technology or a language, and I have very rarely seen a case where it was beneficial to ignore design guidelines.

I am extremely suspicious of anything that asserts that "because you are using XYZ, then the following guidelines no longer applies." Dependency Injection is a good tool, which I can live without if other methods are provided, but ignoring basic guide lines such as the Single Responsibility Principal or Separation of Concerns is going to bite you in the end, each and every time.