hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

脳に収まるコードの書き方

アーキテクチャを理解可能にするために、同時に見るべき関心事は最大7個にしよう、という話がよかった。
よくわからない難しいコンポーネントの話をしてると、「これってこういうこと?」「それは〇〇という概念があって…」というのが延々と続いて、話が全然進まない、ということがある。
そういうときは、抽象を見つけるのに失敗していて、フラットに様々な概念を並べてしまっている、と言える。
適切に意味をまとめていって、中心概念と、それの付随する概念が最大6個となるように、六角形の花、ヘックスフラワーにプロットしよう、というアイデア。で、そのフラワーの1セルを拡大すると、さらに、中心概念と付随する概念6個、というかたちで、入れ子にしていく。

ソフトウェアの分割統治っていうと新しい話ではないけど、フラットな20個の概念に分割されても、覚えてられない。
この本では人間が一度に覚えていられるマジカルナンバーを参照して、ヘックスフラワーに収まる形に矯正したらどうか、というヒューリスティックが提案されている、ということだと思う。

表紙のこの絵にも、そのことがあらわれている。

原著だと、フラクタルなヘックスフラワーが表紙になっていて、その書き方のコードも以下のブログに掲載されていた。
blog.ploeh.dk

設計のレビューとか、コードレビューなどしていて、仕上がりがごちゃごちゃしてるなあと感じたときに、ヘックスフラワーになるよう整理しましょう、って声かけるのに使えて便利だ、と感じた。今の実装だと花弁が13個あるので、これとこれはまとめたらどうか?みたいな。
まずオブジェクト指向入門上下巻を読んでから、このPull Requestを書き直してもらえませんか?って言うと最悪のマウンティングだけど、この本の表紙の絵みたいな感じに一緒に調整しませんか、と言うとカジュアルな感じでお願いできそう。