August 2007 - Posts

Optimizing the Web Stack

We recently hired a DBA here at Geonetric to fill a much needed niche.  While we have several better than average developers in terms of SQL, I'm excited to see what very SQL specific optimizations (ie indexes, normalization, filegroups) that Jason (DBA) can bring to the table.  Thinking about the optimizations that will be handled at the database level, I stopped to think of the "stack" to deliver a web application.  Here's my first-pass list:
  • HTML
  • Javascript
  • CSS
  • Presentational Logic
  • Business Logic
  • Data Acess Logic
  • Data Access
Looking at the list above.  Optimizing a single layer in no way gets you great performance across the entire application, however a poorly built/optimized layer can ruin the entire application.  What's the saying?  A bad apple spoils the bunch?

We can optimize to make all queries fast and performant but negate that optimization by serving up CSS in a style block (rather than externalizing into a CSS file).  We can use Ajax to avoid fullpage postback, but if backed by a slow web method the performance gain sought by using Ajax is nullified. The point is that if performance is a goal you have to pay attention to the whole stack.  Paying attention to just one piece while disregarding the others will ultimately not produce the performance you desire.

with 0 Comments

Code Review like the Mafia

Sopranos.jpgWe're a growing software development company.  As we're growing in numbers we're finding that we have to implement a more formal process for code reviews.  In the past we could just look over each other's shoulders and give a nod.  It's just not feasible to do that anymore given the growth we've had. 

The code review process can be tricky in that you have to be clear with everyone going in that a review of code is simply in the best interest of the company and that anything said shouldn't be said or taken personally.  Being one who places a lot of pride in my work, I fight the urge to defend my code/design.  I'm trying to live by the following summation of how to code review:

"Code Review like the Mafia"

In the television drama The Sopranos there are frequent arguments between characters.  No matter how much arguing, fighting, or threats, the characters almost always are friends right after.  Business is business, nothing that is said during an argument sticks or lasts too long.

Maybe it's a bit utopian to think that we could code review like that, not having to fear/worry about people's feelings during the review and knowing that no matter what was said we could go grab lunch together afterwards.  Again, pointing the finger squarely at myself, is it reasonable to be pummeled in a meeting about your work and not take it personally or get worked up?  For me that's a tough one that I'm going to have to work on, I mean let's face it, I'm not part of the mafia.
with 0 Comments