David Heinemeier Hansson's review of Patterns of Enterprise Application Architecture