スキップしてメイン コンテンツに移動

Implements imply

実装パターン『実装パターン』を読んだ。

なかなか説明が難しい。そこで、この本が「何であり」、「何でないか」を引用する。その差分が何か言えればいいのだけれど、自分はうまく言えない。

まず、この本が何なのか。
『デザインパターン』とJava言語マニュアルの間に位置する内容を,この本では扱っている.
この本の大部分は,一般的なプログラマであれば,1日に何度も行うような小さな決定について書かれている.
次に、何でないか。
コード設計の本ではない.
パターンの記述形式は独特で,その場限りなので(中略),パターン本ではない.
言語の本でもない.
この境界領域を何と呼べば良いのか、良い名前を知らない。そもそも良い名前を付けるのが難しそう。曖昧な領域を対象にしているし、おそらくそのせいで各実装パターンの粒度がまちまちになっている。

一方で、目指しているところは明確。『リーダブルコード』とほぼ同じ。著者は最後にこの本の最大の教訓として、こう言っている。
「プログラマの仕事は,他のプログラマとの間でコミュニケーションを取ることである.マシンとではない」
『リーダブルコード』との違いは『10章 フレームワークへの拡張』。フレームワークを開発する場合、そのフレームワークを使っているコードへの影響を小さくすることを、リーダビリティを上げることより優先することがある。

この目標をもう少し具体的にしたのが、次の3つの「価値」。自分の発想は「柔軟性」を重視するあまり「シンプル」さに欠けていると自覚できた。YAGNIの原則を思い出さないと、無駄に時間をかけたコードを、時間をかけて修正することになってしまう。
  • コミュニケーション
  • シンプル
  • 柔軟性
これを実現するために、実装パターンは次の6つの「原則」に貫かれている。今まであまり意識してこなかったのが、原則の「対称性」と「変更頻度」。「対称性」は『リーダブルコード』の「10章 無関係の下位問題を抽出する」に近い。上位・下位の階層が異なる処理を1つメソッドで行うのは止めよう、という原則。「変更速度」は『オブジェクト指向設計原則』の「安定度・抽象度等価の原則」の安定度のこと。安定度が異なるコードは分けておこう、という原則。
  • 結果の局所化
  • 繰り返しの最小化
  • ロジックとデータの一体化
  • 対称性
  • 宣言型の表現
  • 変更頻度
実装パターンに関しては、それぞれ数ページの説明しかない。ある程度分かっているなら、ざっと眺めるにはこの本くらいの薄さの方が適しているのかもしれない。今の自分には、読み進めている途中の"Effective Java 2nd Edition"の方が、説明が丁寧かつ具体的で嬉しい。

最後に、読みながら考えたことをTogetterにまとめたので、備忘のためにリンクしておく。

このブログの人気の投稿

北へ - ゴールデンカムイ 16

『ゴールデンカムイ 15』、『〃 16』を読んだ。16巻を読み始めてから、15巻を買ったものの読んでいなかったことに気がつく。Kindle版の予約注文ではままあること。 15巻は「スチェンカ・ナ・スチェンク」、「バーニャ(ロシア式蒸し風呂)」と男臭いことこのうえなし。軽くWebで調べてみたところ、スチェンカ・ナ・スチェンク (Стенка на стенку) はロシアの祭事マースレニツァで行われる行事のようだ[1]。それなりになじみ深いものらしく、この行事をタイトルに据えたフォークメタルStenka Na StenkuのMVが見つかった。 16巻では杉元一行は巡業中のサーカスに参加することになる。杉元と鯉登の維持の張り合いが、見ていて微笑ましい。鯉登は目的を見失っているようだが、杉元もスチェンカで我を失っていたので、どっこいどっこいか。なお、サーカス/大道芸を通じた日露のつながりは、実際にもこのような形だったようだ[2]。 個々のエピソードから視線を上げて、全体の構図を眺めてみると、各勢力がすっかり入り乱れている。アシㇼパは尾形、キロランケ、白石とともにアチャの足跡を辿り、そのあとを鶴見のもとで家永の治療を受けた杉元が鯉登、月島を追っている。今更だけれど、杉元やアシㇼパは、第七師団と完全に利害が衝突していると考えていないはずだった。一方で、土方一味も入墨人皮を継続。むしろ彼らの方が第七師団との対立が深刻だろう。さらに北上するキロランケはまた別の目的で動いているようだけれど、なんで尾形も一緒なんだっけ? 『進撃の巨人』に引き続き、これもそろそろ読み返す時期か。 [1] 5つの暴力的な伝統:スラヴ戦士のようにマースレニツァを祝おう - ロシア・ビヨンド [2] ボリショイサーカスの源流は、ロシアに渡った幕末日本の大道芸人たちにあった 脈々と息づく「クールジャパン」 | ハフポスト

戦う泡沫 - 終末なにしてますか? もう一度だけ、会えますか? #06, #07

『終末なにしてますか? もう一度だけ、会えますか?』の#06, #07を読んだ。 『終末なにしてますか? もう一度だけ、会えますか?』の#06と#07を読んだ。#06でフェオドールの物語がひとまずは決着して、#07から第二部開始といったところ。 これまでの彼の戦いが通過点のように見えてしまったのがちょっと悲しい。もしも#07がシリーズ3作目の#01になっていたら、もう少し違って見えたかもしれない。物語の外にある枠組みが与える影響は、決して小さくない。 一方で純粋に物語に抱く感情なんてあるんだろうか? とも思う。浮かび上がる感情には周辺情報が引き起こす雑念が内包されていて、やがて損なわれてしまうことになっているのかもしれない。黄金妖精 (レプラカーン) の人格が前世のそれに侵食されていくように。

リアル・シリアル・ソシアル - アイム・ノット・シリアルキラー

『アイム・ノット・シリアルキラー』(原題 "I Am Not a Serial Killer")を見た。 いい意味で期待を裏切ってくれて、悪くなかった。最初はちょっと反応に困るったけれど、それも含めて嫌いじゃない。傑作・良作の類いではないだろうけれど、主人公ジョンに味がある。 この期待の裏切り方に腹を立てる人もいるだろう。でも、万人受けするつもりがない作品が出てくるのって、豊かでいいよね(受け付けないときは本当に受け付けないけれど)。何が出てくるかわからない楽しみがある。