October 10, 2019

A Philosophy of Software Design

Speaker

John Ousterhout, Professor at Stanford

Thoughts

I already read this book two times and probably I will do many more, the idea of teaching design to people is very interesting. I like the idea that software development is in most aspects related to creative work like painting and music. Specially, the design phase is really difficult to master and probably to teach as well.

Quotes

Working code is not enough

Recommendations

  1. You need to practice! A lot!

  2. Define semantics to eliminate exceptions. Minimize the number of places to handle exceptions

  3. Try to find big abstraction! Depth is more important than length

  4. Classes should be deep! Information hiding is good

  5. Error that people make the most: too many, too small, too shallow classes

  6. You should make the common case, really really easy

Tags: design software