Featured image of post コードナビゲーター【State】接舷シーケンスの飛び越し事故〜順番は、書き並べるものじゃなくて、渡っていくものよ〜

コードナビゲーター【State】接舷シーケンスの飛び越し事故〜順番は、書き並べるものじゃなくて、渡っていくものよ〜

接舷シーケンスの状態を文字列フラグと巨大case文で回した旧設計が、書き漏らしから「許されない遷移」を通してしまう。状態そのものをクラスに引き上げ、書けない場所を作って構造的に防ぐStateパターンを、Rubyのシンボルとダックタイピングで解説します。

Featured image of post コードナビゲーター【Decorator】保冷・防振・保険、掛け算で増えた積荷台帳〜一枚ずつ包んで重ねる航法術〜

コードナビゲーター【Decorator】保冷・防振・保険、掛け算で増えた積荷台帳〜一枚ずつ包んで重ねる航法術〜

積荷の保冷・防振・保険という3オプションを組み合わせごとのサブクラスで表現し、クラス数が指数的に増殖した旧設計を、Decoratorパターンで独立したラッパークラスの重ね掛けに引き直します。Rubyの継承と合成(is-a/has-a)の使い分けを解説します。

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

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

「コードナビゲーター」シリーズの全12回の目次です。密結合や条件分岐の膨張に苦しむRubyコードを、恒星間貨物船の航法士ミラが設計パターンで航路を引き直す連載です。