Understanding Software

Recently I had the pleasure of reading Max Kanat-Alexander’s excellent Understanding Software. It is a follow up to his Code Simplicity. Max is Technical Lead for Code Health at Google. This post contains a few points extracted from the book. If you find these notes useful, I highly recommend you check out his book for […]

GRASP Patterns

These notes are taken from Craig Larman’s brilliant book “Applying UML And Patterns”. There is so much information in this book, you really need to work through it in its entirety. Still, it’s good to have a brief refresher of some key points. I hope you may find these notes useful. GRASP Patterns General Responsibility […]

Class Diagrams

Every now and then I’m tasked to do something which requires me to quickly jog my memory. This time it was a class diagram, and Martin Fowler’s UML Distilled was so helpful that I’ve decided to list here some of the important points it raises, for future reference. I’ve added a few of my own […]

Object-Oriented Design Heuristics

I took the following notes whilst studying Arthur J. Riel’s book on OOD best practices, I hope they may be useful to you. This is a good book, definitely worth a place on any developer’s bookshelf. It is a bit dated, but much of the advice is solid, and you can see the seeds of […]

Designing Object-Oriented Software

The following is a collection of notes taken from Designing Object-Oriented Software. This is a good book about OOD, but a bit dated. The follow up book is more interesting, Object Design, which goes more into object roles, responsibilities and collaborations. Still there is wisdom, in particular I liked the emphasis on objects as agents […]

The Hacker Way

Nowadays Agile is pervasive throughout the software development industry, yet many developers are not happy using it. And that includes developers in all shapes and sizes, from beginners to industry luminaries. Perhaps the first person to critically evaluate Agile, its pros and cons, was the legendary Bertrand Meyer, whose findings are in his book Agile!: […]

Recent C# Language Changes

A couple of years ago I began an XMPP Component Framework in C#, but after a few days I had to put it on hold. One thing led to another, and it’s been on hold ever since. I’m finally returning to it. C#, however, has had some significant improvements since then, I want to start again […]