Saturday, February 21, 2009

What's In A Name?

One of the big issues for code clarity is determining the intent of a function from its name.  One of the tricks that I've taken to doing is to name the function such that when I read the code out loud, it sounds like I'm speaking normally, or nearly so.

For example, if I'm testing a file for various criteria, I'll have this:

if(fileIsRightSize() && fileIsNotWritable())

The cognitive benefit from this is immense.  It's not a new idea, but I'm not seeing it get traction in code today.

Technorati Tags --
, , ,

Friday, February 20, 2009

Ooooooh, Shiny!

What are the three primary symptoms of ADD?

1) lack of focus
2) easily distracted,
3) hey, look! a squirrel!

Jeff Atwood discusses the magpie tendencies of the industry.  Over a decade ago, I used "magpie" to describe a cow-orker who was too enamored of changing technology for its own sake.  Sometimes it seems that there's another new language every week, and a new web framework every month.  We spend too much time learning Yet Another New Language and not enough time mastering the ones we already know.

Sometimes it's the customer that has this trait.  I once heard a competitor's UI praised because it had oval buttons with drop shadows, while ours was vanilla Motif.  Their system lacked a number of features we had, but because they looked cooler, they were getting the good vibes; and this was not a mass-market system - it was for a specific industry, where the number of systems would be in the few hundreds.

Technorati Tags --
, , ,

Thursday, February 19, 2009

Deja Vu, All Over Again

Just over a month ago, this list was published, the top 25 errors made in software.  It's somewhat web-centric, given that most non-web software does not taken input from the great unwashed of the WWWeb.  However, it is a good one to review, to see if your stuff could use a brush up.

Like Alex Wolfe says, it's a little troubling that so many systems are still plagued with these errors, given that there are monthly incidents of the web-based issues (CSS, usually), and more so that some of them are positively ancient (running off the end of a buffer).  And like him, I'm somewhat inclined to blame the current disparagement of the industries' past.  Nobody looks to the pillars of the discipline to see what they are saying.

Now, to some extent this is the typical "youth ignores elders" schtick, but a lot of it is more malignant - it's the rejection of all the collected wisdom because it doesn't have the pizzazz of Ruby, or the Cloud.  And while there are a lot of new things necessary, like the new database features needed for massive scaling, having your server cracked because you let arbitrary SQL commands to be executed is epic fail.

Technorati Tags --
, , ,