|
|
|
|
|
by paulddraper
27 days ago
|
|
The #1 problem of most clean code, or microservices, or other architectural patterns is taking a correct observation to a logical extreme. Decomposition is good. Too much decomposition recreates complexity in the interactions. Immutability is good. Immutability everywhere creates gymnastics with more mental load. Extensibility is good. Extensible-everything is reduces usability. Program isolation is good. Too much isolation melts your laptop into a Docker-shaped puddle. Having the restraint to not apply your pet idea to everything under the sun is the mark of a mature programmer and indeed a mature person. |
|
You can reduce to a Single Responsibility, but try not to step beyond that into Zero Responsibility.
Do Interface Segregation, not Interface Apartheid.
And only invert your dependencies an odd number of times, otherwise you're back to where you started.