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

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

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

Featured image of post コードパペッティア【Dynamic Tool Selection】立て続けの用向きに重くなる工具だるま人形〜選びきれない手数と、呼ばれた分だけの道具棚〜

コードパペッティア【Dynamic Tool Selection】立て続けの用向きに重くなる工具だるま人形〜選びきれない手数と、呼ばれた分だけの道具棚〜

建物専属の万能修繕人形ハンフリーが、百に迫る道具の説明を一度に抱え込み、動きを重くして立ち尽くす。全部を渡すことは本当に親切なのか——クエリごとに関連ツールだけをベクトル検索で動的に抽出する設計をPythonで実装します。