ケント・ベックさんの頭の中
★★★★★
いわずもがなの達人プログラマー(著書ではありませんが)であるケント・ベックさんが、日常のプログラミング中の小さな決定に至る思考回路をたくさん書いてくれた本です。コードを何十キロって書いて慣れていても小さな迷いってたくさんあると思いますが、そんな『こういうとき皆どうしてるんだろう(わざわざ聞くのも…でもプログラミングには常について回るような話なんだよね)』という質問を先回りして答えてくれる、贅沢な一品です。ベタープラクティスの宝庫。
プログラミングにおける一番の価値とは?
★★★★★
プログラミングにおける無数の個々の決定が、大きな価値に基づき、そこから原則が導かれ、その原則を通じて実装のためのパターンが整理される、という分かりやすい構造でケント・ベックの思想の一端が示されている。とくに、誰もが価値として認めているコードの「簡潔さ」や「柔軟性」以上に、「コミュニケーション」のほうを上位に置いてみようというのが独特であり、この本の真骨頂といえる。読んでみて「なるほど」と思うことが、数多くあった。たとえばクラスの名付け方など、基本的には誰もがなんとなく気づいている正論が展開されているわけだが、その自分の中のルールの根拠と意味がなんだったのかをあらためて説明されたようで、非常に面白かった。もちろん、他のレビュアーが言うようにもう少し実例が多ければ、もっと分かりやすのもしれないが、著者は、それを読者各自が自分で発見するように促しているところも、心憎いと思う。
Javaの中級者から上級者向けにGood
★★★★★
Javaでプログラムを書いたり、システムの設計をしたりする上で、どのように実装すると良いかのヒントが多数書かれている良書です。
例えば、クラスやインタフェイスの定義方法(文法)は初心者向けの書籍で習得できますが、第5章を読むと、どのようにクラスを命名し、どのように抽象クラス、インタフェイス、内部クラスを利用すれば(使い分ければ)良いのかがわかります。
ある程度のプログラミングや設計の経験があると、腑に落ちるというか、すうっと身に沁みていくような内容ばかりです。逆に経験が少ない方にはちょっと敷居が高いかも知れません。
本に書きたい項目を簡単にまとめた「下書き」としか見えません
★☆☆☆☆
参考文献にある本(Code Complete、GoF、Effective Java、Pragmatic Programmerなど)の抜粋を”パターン、価値、原則、動機”という分類を無視して列挙しただけといった感じの本。
技法や適用方法の解説も薄く、入門者向けとしても甚だ不親切。
参照先との紐付けも明確でないため、目録的な意味も薄い。
コンテキストやトレードオフに関する情報も少ないため、決して実務的でもない。
ページ数も少ないことを考えれば、むしろ「コミュニケーションを強化するためのプログラミング技法」を主張することに焦点を絞ったほうがよかったのではないか?
しかしその場合「実装パターン」という”名前”は不適切と思われるが。
いずれにせよ、このままではいったい誰を読者として想定して、何を訴えるためにこの本を書いたのか分からない。
「良いソースコードとは?」への具体的な回答
★★★★★
ソフトウェアのソースコードの価値は、読みやすさ、保守(変更)のしやすさである、という筆者 Kent Beck の価値観が印象的な本です。
抽象論でなく、具体論・実践論で、サンプルが豊富なのがうれしい。
クラス・メソッド・変数などの、名前の付け方、分割や統合のやり方、条件分岐やループ、Collection の各クラスの使い分けなどの、より良い書き方が、その理由を含めて、わかりやすく書かれています。
全体で200ページ弱と、コンパクトなのに、実践的なコーディングパターンが盛りだくさんのガイドです。
原文は、とても読みやすく書かれていた印象でした。ソースコードを分かりやすく書くことと、文書をわかりやすく書くことは、同じスキルなんだと、実感しました。
翻訳のほうは「について」「すること」など冗長な表現が目に付いてちょっぴり残念。
原文だと、受動態の多さはあまり気になりませんでしたが、日本語だと「れる」「られる」が多いとちょっと読みにくい印象でした。