Justin du Coeur (jducoeur) wrote,
Justin du Coeur
jducoeur

  • Music:

Discipline to Habit

One of the less obvious reasons to be disciplined about good programming is precisely that, if you do so, it becomes steadily easier.

Consider: if you only refactor and clean up your code occasionally, then it's a painstaking project each time you do so. You have to remind yourself what it *feels* like to clean up your code. It's an intellectual exercise that takes a bunch of effort, examining it and trying to figure out which refactoring pattern to apply. As a result, it's not so much fun.

By contrast, if you do so *regularly*, it becomes a little easier each time -- no longer so much a matter of effort as of habit. The result is a virtuous spiral, producing better code every day simply because it's easier to do so than to produce bad code. The refactoring literature uses the metaphor of smell on code: Fowler's classic book on the subject is mostly an encyclopedia of "bad smells" to learn. Once you've done it long enough, the metaphor becomes more and more apt -- recognizing and replacing the bad smells gets downright instinctive.

I am reminded of this today, when I'm pretty braindead and attacking a new feature that didn't fit in with the grungy IM stack very well; as things would have stood, it would have required a bunch of duplicate code paths. But since I'm so used to refactoring the code (and have good enough test suites for it), I didn't even *think* about it before refactoring to clean up those paths. It was intuitively obvious that it had to be done, so even with my morning Clover buzz wearing off I could just shove code around until adding the new feature was just a one-line enhancement. Very satisfying, especially on a day where I'm not up for hard thinking...
Tags: programming
Subscribe

  • The Third Way: Beyond Fun and Authenticity

    I just came across this marvelous essay on the SCA fun/authenticity false dichotomy, and a different way of looking at it. It was written some…

  • How I Spent My Birthday

    (Warning: diary ramble ahead.) Intercon was scheduled a couple of weeks earlier than usual this year -- our experimental hotel last year wasn't…

  • Hamilton Sing-Along

    Almost done with a *very* long weekend at Arisia. Generally been a great time -- worked hard, got to spend lots of time with friends, and have had a…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment