今年の7月に第二版が出た"A Philosophy of Software Design"を読んだ。 A Philosophy of Software Design, 2nd Edition (English Edition) 作者:Ousterhout, JohnAmazon 本書では、ソフトウェアシステムの複雑性を最小化するための設計について、モジュール/クラス設計、インターフェイス設計、レイヤー設計、エラーハンドリングから、コードの書き方まで様々な側面から具体なコード例をあげつつ解説している。 ソフトウェア開発において、システムをシンプルに保ち複雑性が上がることを避ける原則は、KISS (Keep it Simple, Stupid), DRY (Do not Repeat Yourself)やYAGNI (You Ain't Gonna Need It)などが昔から言われている。こ