Translate

2016年12月30日金曜日

[書評]プリンシプルオブプログラミング

大学3年生になってようやく本を読むことの大切さに気づき始めたので,最近は積極的に読書をするようにしています.ただ読みっぱなしにするのも勿体無いので,書評という形でブログに書き残していきたいと思います.

書評を書くのは初めてなので何をどう書けば良いのかいまいちわからないのですが,精一杯頑張ります.統一感を出すために見出しなどは全ての本で共通にするつもりですが,まだ試行錯誤の段階なので変わるかもしれません.

さて,第1冊目は「プリンシプルオブプログラミング」です.


この本を買った理由

大学に入ってはじめてプログラミングにふれてから、C、Java、Pythonなど、数種類の言語を使ってきました。そしてプログラミングというものがどういうものなのか分かり始めてきた今、各言語の文法だけではなく、すべての言語に共通している「抽象的な概念」を知りたいと思い始めました。

どの言語を学ぶ時も、最初は初心者向けの書籍(あるいはウェブページ)をみて勉強すると思います。しかし初心者向けのものの多くは文法の説明がほとんどであり、各言語の特徴的な機能を理解するためには中級者向け以上のものを読まなければなりません。

しかし、中級者向けのものを読んでみても、プログラムコードが複雑で何をしようとしているのか理解するのは容易ではありません。さらに、なぜそのようなコードを書くに至ったのかを理解するのは至難の業でしょう。

そこで、いったん具体的な言語仕様に依存しない抽象的な概念をまなぶことで、プログラム全体を俯瞰的にみる力を手に入れたいと思いました。この力を手に入れれば、難しいコードに出会っても「道筋」がわかるので理解しやすくなるはずだと考えたのです。

そして、このような目的に適した本を探した結果、「プリンシプルオブプログラミング」に出会いました。似たような本で「リーダブルコード」という有名な本がありますが、この本では「リーダブルコード」とは異なり、プログラムコードが一切出てきません。なので、よりさらに抽象度が高い知識を手に入れることができます。

本の概要

この本は「プリンシプル」という短い標語と、その解説という構成になっています。解説は What, Why, How に分類されており、わかりやすいです。特に Why を解説する本はなかなかないので貴重です。

本の帯に書かれた「脱・初心者」という言葉の通り、いままで小規模な開発しか行ったことのない初心者が意識すべきことが書かれています。現役プログラマの方から見ると当たり前のことしか書かれていないらしいのですが、僕のようなプログラミング初心者には「常識」を手っ取り早く身に着けられる良い本だと思います。

この本から学んだこと

この本の内容を一言でいうと

シンプルなコードを書け!

です。本全体を通して「シンプル」とはなにか、そしてなぜ重要なのかを説明しています。

たとえば「シンプル」という言葉には、コードが短い、余計な機能を実装していない、テクニカルではなくだれでもわかる、プログラムを構成している各モジュールの依存関係がほとんどない、など、いろいろな意味を持っています。

そして、なぜこの「シンプルさ」が必要かというと、プログラムコードは書いたらそれで終わりではなく、ほかの人が書いたコードと組み合わせ、完成した後はそれを保守管理する必要があるからです。「シンプルさ」を維持することで、いつだれがみてもわかりやすいコードになり、また機能の拡張や置き換えが容易になります。

考察

この本はシンプルということを様々な角度からとらえて解説しています。読み進めていくと繰り返しが多いように感じますが、そのぶん読む側にとっては復習になり理解の助けになります。大規模な開発を始める前に、一度は読んでおいたほうがよい本だと思います。

0 件のコメント:

コメントを投稿