Software Design

Reconsidering the Repository Pattern

I have long considered the repository pattern to be a foundational design pattern for database connected systems. Recently, however, I've started to reconsider this opinion. Read on to find out why.

The Proposal Design Pattern

I've finally finished a write up on the Proposal Design Pattern. This design pattern was originally presented in the November 1997 issue of Object Magazine, and hasn't really been seen since. I've been intending on writing this for some time, but the words never seemed to flow - until now.

The essence of the pattern is that real world “changes of state” are almost always agreed upon by accepting a proposal of that change that has been prepared in advance.

Read more ...

Locality Counts

A friend of mine recently sent me a link to an interesting article "Not Your Father's Von Neumann Machine: A Crash Course in Modern Hardware".

One of the interesting elements discussed in this article is the relative cost of memory access. An access satisfied from L1 cache (closest to the processor) might take just 3 clock cycles, but an access requiring access to main memory might take 200 clock cycles.

That's a massive difference in performance.

Want to get more done, faster?

Situated Geekery
Several of the tips that I included in my recent user group presentation Towards Maintainability were oriented towards improving the quality of the code - making it easier to understand, safer to modify, and so on.

A recent post How TDD and Pairing Increase Production on the Situated Geekery Blog is making a similar point, though from a different perspective - that of increasing productivity now rather than maintainability later.

Defining Polymorphism

Saw an interesting question on StackOverflow today: Polymorphism - Define In Just Two Sentences

Reading the answers, it seemed to me that everyone was getting bogged down in the technical aspects, and was missing the essential point of the term.

Syndicate content