[読書] 「実装パターン」

実装パターン 実装パターン
ケント・ベック Kent Beck 永田 渉

ピアソンエデュケーション 2008-12-22
売り上げランキング : 64931

Amazonで詳しく見る by G-Tools

他の人にとって少しでも理解しやすいコードを書けるようになるために読んでみました。

まだ読んでいない開発者の方は是非読んでみてください。

目次

  • 1章 はじめに
  • 2章 パターン
  • 3章 プログラミングの理論
  • 4章 動機
  • 5章 クラス
  • 6章 状態
  • 7章 振る舞い
  • 8章 メソッド
  • 9章 コレクション
  • 10章 フレームワークへの拡張
  • 付録A パフォーマンス測定

感想

全体的に

本書は、他の人が読んで理解しやすいコードの書き方・作成方法についてまとめられた本です。

著者はJUnitの開発者でもあるケント・ベック。他の人が読んで理解しやすいコードを書くための77のパターンが紹介されています。プログラミング言語としてはJavaを対象としていますが、他のオブジェクト指向言語でも十分に役立つ内容だと思います。

前半部分では主に、読んで理解しやすいコードを書くことの価値や、それぞれのパターンの背後にある哲学的な内容が、後半部分ではクラスやメソッド、コレクションといった概念に関連した具体的なパターンが紹介されています。

本書を読むことで、クラス・メソッド・変数の名前のつけ方や、可視性、インタフェースや抽象クラスの使いどころ、状態の管理の仕方など、Javaを使った開発経験がある人なら一度は悩んだ経験があるようなテーマに対応するパターンを学ぶことができます。それぞれのパターンがなぜ「良い」のか、明確な基準に従って書かれているのでとてもわかりやすいです。

最初は読み物として読むことで考え方や哲学を体に染みこませ、二度目以降はリファレンスとして必要な部分を調べる、といった使い方ができる内容なので、仕事机に常に置いておきたい「バイブル」本として、何度も目を通すことになりそうです。

読み手を意識しながらコーディングすることの重要性

ソフトウェア開発の工数の多くが既存のコードの解析に費やされていることを指摘し、自分が書いたコードを読む他の開発者が、コードの「意図」を理解しやすいように、常に意識しながらコーディングすることがとても重要だと書かれています。紹介されている各パターンも、「いかに意図を正しく伝えるか」ということを第一の基準に置いて考えられているように感じます。

非常に印象に残ったのが、以下の文章。

プログラマの仕事は,他のプログラマとの間でコミュニケーションを取ることである.マシンとではない.

本書で紹介されている全てのパターンの背景には、必ず上記の考え方が存在します。

どのようにして他の人に「意図」が伝わりやすいコードを書くか、そのことを常に頭の片隅に置いてこれからはコーディングしようと、自分自身の意識改革のきっかけになりました。

内容を詰め込みすぎかも?

本書は、200ページにも満たない、技術書としては比較的薄めの本なのですが、内容は盛りだくさんです。盛りだくさんなのはいい事なのですが、個人的にはちょっと内容が詰め込まれすぎていて、具体的なパターンの内容が記憶に残りにくい構成だったように感じました。

ページ数が増えてもいいので、各パターンの説明にもう少しスペースを設けて、サンプルコードなどを交えながら丁寧に説明されていると、より書いてある内容が頭に定着しやすくなったのかな、と思います。

まとめ

読む前と読んだ後では、コーディングに対する姿勢・考え方がガラリと変わる一冊だと思います。「きれいなコードを書きたい」という漠然とした目標に、明確な判断基準と方法を与えてくれる良書です。読み進めながら何度も目からウロコが落ちました。今まで不勉強だったことの裏付けかもしれませんが。

今回僕はこの本を図書館で借りて読んだのですが、きちんと自分で買って、何度も読みなおして、本書に書いてあることを一つずつ体に染み込ませていきたいな、と思います。

同じようなテーマを扱っている本があれば、それも読んでみようかな。もしご存知の方は是非教えてください!
それでは!

  • 一番王道な本はGoF本と呼ばれる「オブジェクト指向における再利用のためのデザインパターン」ですね.
    僕はGoF本はわりと読みづらかったので,結城浩著「Java言語で学ぶデザインパターン入門」で勉強しました.

  • ありがとうございます!「Java言語で学ぶデザインパターン入門」は以前僕も読みました!今回読んだ本は、デザインパターンと言語仕様のちょうど中間的な場所に位置する内容で、自分がいつも感じている「かゆい」ところに手が届いた感じで、読んでいて気持よかったです。