2 ms·
> TLD focuses on ping-ponging between test and code. I like this same concept for top-down and bottom-up design. Top down advocates might say if you focus on
by adrianmonk 4y ago
> TLD focuses on ping-ponging between test and code.
I like this same concept for top-down and bottom-up design.
Top down advocates might say if you focus on implementation concerns, you risk building what's easy to build instead of what's needed.
Bottom up advocates might say if you focus on what you'd like to have, you risk building something that just can't be implemented well when something else (that can) might have been fine instead.
I think, instead, you should ping pong between both. Start at the top, think about the high-level design you want, then work downward and see if it makes sense. Maybe even write some code to try out some ideas. (Like, if I use this design, I'm going to end up needing this database query. Can I make that run efficiently?) Then percolate those lower-level concerns and the results of that research upward and see what adjustments you can make at a top level. Then repeat until you find something that works well at all levels.