We know we can eliminate controllers, services, factories, managers, helpers and other obscure technical "objects" which don't exist in the real world. Can we eliminate "collection objects" as well?…

Persistence is one of the most difficult and confusing problems in object oriented programming, which, it might seem, will never be solved. Databases are about individual rows of data, objects are about individual instances of behaviour. It is not obvious how they can be mapped. . . .…

If you read Elegant Objects, you probably know about vertical decorator pattern. However, there are right ways and wrong ways to do it. In this post I want to propose a few additional rules I haven't seen in the book, even though I think they are there implicitly…