A Philosophy Of Software Design
By John Ousterhout
This is a book that every person building software should read. It talks about how to Design Software and how important this phase is. Why is it important? Because it's the way to reduce the complexity of a system, specially, when the system is big or there are a lot of people working with it.
This book has been written by a professor who teaches Software Design in the Standford University. A person who sees more than 90 solutions every year to the same problem. This is something that it's not happening in the corporate world.
Some of the highlights of book:
- Tactical vs strategic coding:
- Deep vs shallow modules:
- Designing things twice: An interesting approach for finding the best design possible is to compare more than one solution.
About John Ousterhout
John is professor of Computer Science in Standford University since 2008.