Hacker News new | past | comments | ask | show | jobs | submit login
Beautiful Programming Quote
5 points by palish on Oct 3, 2007 | hide | past | favorite | 2 comments
"If you're doing top-down design, you produce a specification that stops at some level of granularity. And you always risk discovering, come implementation time, that the module or class that was the lowest level of your specification hides untold worlds of complexity that will take as much development effort as you'd budgeted for the rest of the project combined. The only way to avoid that is to have your design go all the way down to specifying individual lines of code, in which case you aren't designing at all, you're just programming."

http://72.14.205.104/search?q=cache:ysongopFAqIJ:gamearchite...




Personally I kind of do it like an artist, not meaning to be pretentious, but like an artist 'dabs' the spatially-defining features of a painting first, I'll code or pseudo-code, first, parts that are the most 'interesting' or that I'm most uncertain about. Thus I hit the bottom places that change the design the most, early. At least that's the intent. I will still hit some unforeseen detail that knocks some larger organization out, but, I do find that defining the 'interesting' parts makes it that much easier to fill in the rest.


"The only way to avoid that..."

Uh, no. Another way:

top-down design + bottom-up programming

Roll it up to your target, allowing either to change as you go. Kinda like squeezing an orange to get the juice without breaking it.

Apologies to Einstein...

"Top-down design without bottom-up development is lame. Bottom-up development without top-down design is blind."




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: