Featured image of post コードナビゲーター シリーズ目次

コードナビゲーター シリーズ目次

航法士ミラが、機関士ダグの持ち込む Ruby コードの困りごとを設計パターンで引き直す全12話の目次。困りごと別の一覧から、読みたい話を選べます。

恒星間貨物船〈オリオール号〉の機関士ダグが持ち込む、Ruby コードの困りごとを、航法士のミラが設計パターンで引き直していく全12話の連載です。分岐が膨らむ、コピペが散らばる、nil を見張る場所が増える。現場でよく出会う形から始まります。

どの話からでも読めます。直す前のコードがどこで破綻するかを追い、直した後の構造と見比べれば十分です。Ruby の細かい機能は、出てきた所でその場で説明します。

このページは目次を兼ねた案内板です。初めてなら「まず読むなら」の3本から、手元に困っているコードがあるなら「困りごとから探す」から選んでください。

まず読むなら

  • Strategy — 航路の方針を足すたびに if/elsif が膨らみ、触っていない計算まで狂う回。条件分岐の膨張は多くの現場で出会う困りごとで、連載の型がいちばん素直に出る
  • Null Object — 欠測センサーの nil チェックが6か所に並ぶ回。パターン名を知らなくても、Ruby を書くなら明日のコードにそのまま使える
  • Observer — 通知先を直接呼んでいて、新設の区画にだけ警報が届かない回。通知先が増えるたびに送り手を開いているコードを抱えているなら、いちばん効く

困りごとから探す

条件分岐が増えて、足すたびにどこかが壊れる

  • Strategy — 航路の方針ごとに if/elsif が膨らみ、足すたびに既存の計算が狂う
  • State — 状態を文字列と case 文で回し、許されない遷移を通してしまう
  • Factory Method — 生成の case 文が2か所に散らばり、新型を足すたび修正が連鎖する

同じ手順がコピペされて、直し漏れが出る

  • Template Method — 港ごとに写した寄港手順に、規約改定の修正が行き渡らない
  • Facade — 同じ11手続きの呼び出しが7か所に散らばっている

変更が広がる、組み合わせが増える

  • Observer — 通知先を足すたび、送り手のコードを書き換えている
  • Decorator — オプションの組み合わせごとにクラスが増えていく

手を入れられないもの、戻せないものがある

  • Adapter — 相手の通信規格は変えられず、港が増えるたびに本体が膨らむ
  • Command — 実行済みの操作を戻す手段が、コードのどこにもない

nil・数値・入れ子で、値の扱いが危うい

  • Null Object — nil の見張りが6か所に並び、1か所忘れると落ちる
  • Value Object — 生の Float で持ち回った単位や座標系が、静かに混ざる
  • Composite — 入れ子の箱の重さを、型判定の再帰で数え落とす

全話一覧

comments powered by Disqus
システム開発・AIワークフローのご相談は Meetsource へ
Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。