| ▲ | fizzynut a day ago | |
Every decision has trade-offs. The best design is often the simplest, which can mean combining layers/responsibility in small or throw away projects. The step above that is to make the simplest design that is extendable. Often newbies doing "Best practice" results in more code that is overly complex, it splits understanding across too many functions and tries to create too many "reusable" functions that often mean the architecture is often extendable in useless ways but harder to extend when you actually need to do it. You can usually notice when interacting with these battle scarred pieces of code, if the author is still there there is usually a story for why things are the way they are. | ||