|Think about Loose Coupling|
Re^2: How do you code?by DarkLord1 (Novice)
|on Jan 16, 2008 at 05:13 UTC||Need Help??|
Wow! I know what you mean with your words:
"I'm the type that tends to what-if things to death. What if this oddball condition happens and I don't handle it in a clever enough way. What if someone wants to use this function in a curious way. What if someone else might know a better way to do this... what if what if what if... And of course the worst one... What if someone looks at my code..."
"For me at least, this becomes a death spiral of utter lack of productivity. It's a conscious effort for me to strangle that voice in my head and just write some code to get the job done, even if I know it's crap."
I recently finished a project to analyze and determine a variety of statistics on the formation and growth of "warm pixels" on a focal plane to a sensor that we have had on-orbit for a while.
The analysis results were, of course, the important point...but the analysis code took me a couple of months of hard work to complete and was the victim of an almost endless string of "oh that's great! Is the growth occuring in clusters or individual pixels", "are the pixels getting warmer, colder or stable?", "...yada,yada, yada."
The total code ended up being about 700 lines of Perl code (voluminous...but unfortantely more the result of endless adding, adding, and adding new "features" rather than a meaningful design). Towards the end I had some time to sort of look back over the work and the code and realized just how much of a toll the total process of trying to code for maintainability, and for worrying about "what if some of our other folks wanted to use this and chose to this or that." Such endless worries, and worries about trying to guess and account for all the possible wierd use scenarios tend to make my code overly complex and often far more serpantine that I'd like.
DarkLord1 Looking for Redemption in the Monastery