| ▲ | irishloop 3 hours ago | ||||||||||||||||||||||||||||
Too many abstractions are bad. Too many code duplication is bad. Part of being a good engineer is finding the right balance. I know engineers who would gladly duplicate code all over the code base to avoid creating a new abstraction. I know engineers who create polymorphic abstractions for a single caller with a very obvious set of parameters. So much of wisdom is in finding balance and not being dogmatic about rules. | |||||||||||||||||||||||||||||
| ▲ | lokar 3 hours ago | parent | next [-] | ||||||||||||||||||||||||||||
I feel like the balance has shifted over the last 30 years, and is speeding up. Semi-automatic and fully automatic re-factoring has made dealing with duplicated code much faster, cheaper and safer. Changing abstraction is still high risk. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | andix an hour ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Duplication is often less harmful than abstraction. Duplications can often be cleaned up over time, bad abstractions can quickly become a bottleneck, that severely slow down everyone working on the project. | |||||||||||||||||||||||||||||
| ▲ | baublet an hour ago | parent | prev [-] | ||||||||||||||||||||||||||||
The most difficult codebases are those with every little thing some bespoke abstraction that went through 3 rounds of committee reviews that results in having to click through 12 files to figure out what anything is doing. Factory factory factories each with their own little frankenframework to understand before using anything. | |||||||||||||||||||||||||||||