『プログラミング作法』新人エンジニアにオススメする技術書
2020年07月01日 水曜日
IIJの大原です。クラウド基盤システムの開発をしています。
今回はこちらの技術書を紹介します。
- 著者:Brian W. Kernighan / Rob Pike 福崎俊博 訳
- アスキードワンゴ
ちなみにこの本、私が入手した頃とは装丁がガラッと変わっていて、いまの表紙はこんな感じになっています。
犬がカワイイですね。これから購入する方はご注意ください。
普段プログラミングをしていると、大なり小なりさまざまな判断を行うべき局面が出てきます。
変数やメソッドにはどんな名前を付けるべきか?ロジックは明快になっているか?ここにコメントは必要か?必要としたらどう書くか?ライブラリのインターフェイスは適切にデザインされているか?ライブラリ関数の粒度は適当か?与えられた問題に対してデータ構造やアルゴリズムは適切なものを選択しているか?もっと良いものがあるのではないか?計算量は妥当な範囲に収まるか?処理が複雑になっても性能が良くなる方を取るか?あるいは多少性能を犠牲にしてもわかりやすさの方を取るか?コンパイラによる最適化に任せても良いかもしれない?リソースの確保と解放はどのレイヤーで行えば良いか?エラーが発生したらどうしよう?早々に諦めてすぐ終了するか?失敗しても続行すべきか?その場で何とかするか?呼び出し元に任せるか?デバッグしやすくするにはどうすれば良いか?バグってるけど手掛かりがまったくなくてどうしよう?バグが少なくなるようにするには?テストはどう書けばいい?
などなど……。
プログラミング中には、意識的にしろ無意識的にしろ、こういった意思決定を一日に何百回となく行うことになります。
プログラミングの経験を積んでいけば、このような問題に対して自分なりの答えがある程度はパッと出せるようになってくるとは思います。
ですが、それでもどうしても決断できずに悩んでしまうことがあります。
『プログラミング作法』は、そのような悩みに光を当ててくれる本だと思います。
本書の著者らはUNIX, C, AWK, Plan9, Goなどといった著名なソフトウェアを開発してきたエンジニアです。この本には、プログラミングの様々な局面におけるベストプラクティスが書かれています。プログラミングする上での優れた「型」がぎっしり詰まっているという感じです。そして、それらはみな著者らの豊富な経験に裏打ちされたもので、とても納得感がありますし、先人たちが悩み考え抜いて通ってきた轍の上を通るような安心感もあります。
私は、この本が出版されてから割とすぐに書店で見かけて購入したので手に入れたのはもう十何年も前になりますが、一読したあともずっと自席の手元に置いてあり、プログラミングでハマったらことあるごとにこの本を開いています。そして、そのたびにそこに書かれたプラクティスによって何度も助けられています。
この本の想定読者ですが、もしかするとプログラミングがまったくの初心者だと読んでも刺さるところは少ないかもしれません。ですが、ある程度プログラムが書けるようになり、自分が良いプログラムを書けているかどうか迷いが出てきたら、本書は必ず役に立つことと思います。
ぜひ手に取ってみることをオススメします。