|
|
|
|
|
by rosshemsley
2183 days ago
|
|
I think a common conflation is seeing "making something future proof" as "making it more generic". IMO, good future-proof design is about putting in place good components and system boundaries. Those components and boundaries can be highly specialised and have as few options as possible - it's much easier to make a system boundary more complex than to make it simpler. So start as simple as possible! Now, with those boundaries, you can easily write tests, and iterate on the different parts of the system. Bad code in one component doesn't "infect" bad code in another part of the system. Most "balls of mess" systems that I have seen came down to not having clear boundaries between components of the system, rather than being too generic or not generic enough. |
|
When you cannot predict the future, flexible is often more efficient than general.