CS DIY

open source computer science DIY

Book: A philosophy of software design, John Ousterhout, 2018

How to design software systems to minimize their complexity.

  • When developing a module, look for opportunities to take a little bit of extra suffering upon yourself in order to reduce the suffering of your users.

  • it’s more important for a module to have simple interface than a simple implementation

  • The best way to eliminate exception handling complexity is to define your APIs so that there are no exceptions to handle: define errors out of existence

  • Overall the best way to reduce bugs is to make software simpler.