A Philosophy of Software Design

In a world full of Uncles Bob be John Ousterhout More of method length, comment and TDD discussion and A Philosophy of Software Design should be on every bookshelf. It has some critcism but so does everything.