Sunday, July 19, 2009

What's in a name

It is really important to call out the names of the big box patterns in a system and the responsibilities in each box. Even if it is immediately obvious to you how your application should hang together it may not be obvious to all the members of your team. As soon as there is uncertainty people will make guesses and a whole heap of code lands in the wrong place. This is refactoring you didn't need to incur.

Once you have identified the aspects of the code that you have names for get a picture on the wall so you can point or stare at it when you are having one of those "where should we put xyz?" conversations in your team.

Also be vigilant for code escaping it's box - and name the anti patterns related to each nefarious deed. My favourite is the Fat Controller anti pattern - where view/service/domain logic wheedles it's way into the controller leading to a spate of Thomas the Tank engine related jokes.

Also try to be super consistent with the naming conventions used for your core application structure - it makes a huge difference.