Feeds:
Posts
Comments

Archive for the ‘architecture’ Category

I had this eureka moment while reading an article on Kindergarten learning:

Instead of using whiteboards / Visio to draw our systems design, we instead used physical objects (made of cardboard or a similarly cheap material). Then, in design review, we could visually and interactively demonstrate the interactions between classes and n-tiers. It would be like a 3-D interactive jigsaw puzzle. We could then play out system behavior in more interesting ways and more easily identify issues in the design or confirm the design was correct. If we bound the visual objects to concrete implementations, we could simulate a routine and watch it play out as a 3D model.

This is similar to the way chemists model structures at a molecular level. Once you have visual modeling in place, you can more easily test different scenarios. It’s a paradigm for objective design and becomes completely testable.

Example

Imagine the process of initializing an application and leveraging a DI container to assemble the cross cutting dependencies – logger, security, views, database, configuration.

A design review would then be a game of role play. Each reviewer acting out an actor in the system. Just think how much easier (and fun) to assimilate a system in this way.

I’m left with the curiosity of what would a logger look like physically?

Read Full Post »

An OO allegory

I found this tale highly amusing and insightful.


http://aviationhumor.net/combat-kangaroos/

Read Full Post »

My 2Cents for the day as I work with a team to push code to production.

Forget the OO theory, junk the design patterns, hide continuous integration server. If there is one very persuasive reason that you’ll well written code is during “those times” when you and your team are deploying to production. This scene is all too common.

It’s 11 PM, you’re beat from working 14 hours, your boss is breathing down your neck to get “it” ( he really means I.T. :-) ) done and 100,000 customers will be blissfully leveraging your code minutes after you’ve pushed and there’s a BIG EGG waiting for you if you screw it up. Right when you are about to push, QA barks in stating they found a problem. So, what do you want to deal with right now? If you have unit tests handy, functional tests even, you can quickly determine a bug. If not a bug, you can quickly determine a file missing issue. The word I’m pushing is “quickly”. But there’s more, you don’t want or are even able to at that time to think.

You see, you spend the same amount of time either way, but you choose the quality of that time spent. Write it quickly, procedurally and spend x hours debugging later, OR spend the time you would debugging,  writing clean code that is unit and functional tested. The satisfaction of identifying bugs quickly makes for an excellent feeling, assuming you have bugs, after all, you unit and functional tested :-)

Read Full Post »

Running into a legacy application that has nested application.cfm file is usually an unpleasant discovery. I found 43 nested application.cfm files. Now I didn’t care until it started messing with my session scope. Then it was outright war, and I discovered a technique that I assumed wasn’t possible. <cfinclude the master application.cfm file in the child ones, remove duplication of code in child that is already present in master an off you go. It works like a charm and a good refactoring technique. Eventually you’ll replace all of those nested applications and move on with your life.

<cfinclude template=”/application.cfm” />

Read Full Post »

Follow

Get every new post delivered to your Inbox.