Archive for 'Design'
Working With Integration Points: Simulators
In my last post about working with integration points I described how I use anti-corruption layers (wrappers) to hide away any warts of the integration point. In this post, I will explain how I used these wrappers to help develop against an integration point which was also under development.
The problem with two systems being developed [...]
Posted: January 31st, 2010 under Design.
Comments: 1
Working With Integration Points: Anticorruption Layer
On my last few projects we had a requirement to integrate our application with another system. Adding to this complexity was the fact that these other systems where also still being developed. I learned a few tricks on the first of these types of projects which really helped the latter projects which I shall share [...]
Posted: January 31st, 2010 under Design.
Comments: 3
I don’t believe in NFRs
There is something about the phrase Non Functional Requirements that I don’t really like. It’s the Non bit which gets me – I think that word makes them feel unimportant and therefore there is no pressing need to explore how they will affect the system. I have seen on many projects teams procrastinating in defining [...]
Posted: January 31st, 2010 under Agile, Design.
Comments: 2
The Importance of Words
The english language is a very complex beast which can easily strike confusion in the most unsuspecting moment. Take, for example, the word “lollies”. Did your mind immediately jump to a bag of gummy bears, redskins, bananas or milk bottles that you get from the garage? Or instead did you start thinking of a frozen [...]
Posted: December 15th, 2009 under Design.
Comments: 3
How to Refactor like a Something star
Refactoring a piece of code can be such a thrilling experience when it’s finished, but at the same time can also act as the blackhole of time. Recently, I have been observing how other people refactor, watching their looks of happiness when they finish it and also their despaired faces when they have realized they [...]
Posted: September 27th, 2009 under Design.
Comments: 6
Coding Tip #42: turning enums into classes
In Coding Tip #27 I explained how I rarely like to use booleans to represent states, and prefer to use an enum. Now that I have all nice little enums everywhere, another pattern that I see emerge is that I want more from my enum than just a value: perhaps other values associated with it, [...]
Posted: June 29th, 2009 under Design.
Comments: 5
I don’t believe in ORM object as your domain model
I have been on a few projects now where we have used ORM libraries to help store our data (eg ActiveRecord for Rails, Hibernate (and it’s variants), Castle’s ActiveRecord for .Net). On these projects, we have used the domain models and the ORM models are the same.
The problem we faced with doing so is the [...]
Posted: June 2nd, 2009 under Design.
Comments: 9
Coding Tip #27: turning bools into enums
On my recent project, I have noticed a resurgence in a pattern that I have seen many times previously: where a field which is represented as a boolean needs to evolve to represent more than just two values (true and false). The number of times that I have encounted this makes me believe that you should always start [...]
Posted: May 25th, 2009 under Design.
Comments: 3
As a user I want to Log In
The classic log-in story is often the story that new-to-agile-ist assume you need to develop first. In fact, it is often the last story that should be developed.
The problem is that they see the order that stories should be developed in should mirror the process flow of the tasks that the customer needs to take; [...]
Posted: May 20th, 2009 under Agile, Design.
Comments: 2
Making C# IList Useable
Around my neck of the woods, I have been having a theoretical debate with my colleague Dan Bodart as to the best method signature when it comes to collections of data.
Dan’s point of view is that in order to be good citizens, our methods should form around interfaces and not rely on the concrete representation, [...]
Posted: May 11th, 2009 under Design.
Comments: 4