単にコードを書くのではなく、「保守性」や「拡張性」を意識した設計を学べる入門書。良いコードと悪いコードの対比を通じて、「なぜこのコードは良い(/悪い)のか」が具体的に理解できる。