3 ms·
"The user-facing design needs to drive the API interface, not the other way around." I don't see how this need would nullify the ability to modularize code.
by fsloth 10y ago
"The user-facing design needs to drive the API interface, not the other way around."
I don't see how this need would nullify the ability to modularize code.
- lmm 10y agoModularize by functionality, not by layer. Start with a simple end-to-end path and grow outwards, rather than trying to go top-down or bottom-up, and don't split into distinct layers until you're actually deriving value from doing so. Writing code when you don't have the use case yet is always a bad idea.
- Udik 10y agoYep. And then at the third sprint into this path you realize that the way the backend has been built during the first two sprints makes it impossible to deliver some essential or just very desirable feature that nobody took in consideration because it was outside the scope of the first two sprints. Seen it happen multiple times.
- lmm 10y agoThat's the opposite of my experience. It's always the extra layer that was added for some planned feature that we never actually implemented in the end that gets in the way.
- goalieca 10y agoI disagree. This is how you end up with messy code that needs constant refactoring. Making time to come up with a composable design shouldn't be that difficult. It usually isn't.
- abritinthebay 10y agoAll code should be constantly refactored. This way your code gets refactored as the design changes (which... it will) rather than having to shoehorn an architecture that worked great originally into a set or requirements that have moved on.