JP Boodhoo on TDD, Dependency Injection and The Data Access Layer

Finally I get see JP speak again. I love it when he busts Microsoft’s chops on their drag and drop demo methods. It’s even better when there are MS people in the room.

JP’s got his water bottle with him again at this presentation. I’ll let you know if he ever takes a drink from it.

Something that I didn’t pick up from his last talk is that JP believes that moving to TDD is a fundamental paradigm shift equivalent to the change from Procedural to OO.

Dependency Inversion is a principle. High level components should not depend on low level components. Instead both should depend on interfaces. Think “another layer of indirection will solve any problem”.

Hey JP if you’re reading this, what tool do you use to do the screen zooms during your presentations?

As with JP’s demo in Edmonton, he’s pushing the top down development principle whereby you only need to agree on the contracts (interfaces) that allow interaction between the layers. This allows for the development of one portion of the system without the other layers needing to be started or completed.

Dependancy Injection is about creating an object in a well know state that allows it to immediatly work. To do this you pass values into the constructor that will create the object in the desired well known state.

He’s picked up the water bottle……and he put it down.

I liked JPs point at the last talk about having people download the source code and being able to start working right away. One of his point today was to use references to nUnit and rhinoMocks based on relative paths rather than the GAC. Steve Rockarts just made a point that Rod Paddock’s topic on VS Project Templates would be great for creating the nTier and testing structure of a solution. Nice tie in between two presentations.

He picked up the bottle again! And he set it down.

Another great presentation by Jean Paul. Once again he had so many things to talk about that he was a little rushed as he didn’t want to miss out on any knowledge transfer.