夜間バッチ3本が骨格ごとコピペで動いていた。共通のエラー処理改修が一本だけ当てられず、接続断の朝、そのバッチだけ黙って正常終了——在庫が昨日のまま荷主に渡る。骨格を一本に固定し工程だけ差し込むTemplate Methodの整備記録。
1年前に長期保管した取引証跡が、いざ復元すると末尾が欠けて開かない。圧縮・暗号化・バッファを組み合わせごとの型で抱え、最も複雑な型の閉じ処理を落としたのが原因。同じio.Writerを一枚ずつ被せるDecoratorで、掛け算で増える型を積み重ねに解く整備記録。
通知を一本足しただけで、ポイント付与が止まった。注文確定の本体に反応が直書きされ、施策のたびに急所を開ける——散弾銃手術をObserverパターンで解き、発生側は「起きた」と知らせるだけにする整備記録。
寄付額の引数に支援者IDを渡しても、両方intでコンパイルが通り、桁違いの受領証明書が届いた。意味の違う値を別の型に分けて取り違えをコンパイルで止め、散らばったメール検証を生成の一点に集約する整備記録。
キャンセル済みの注文が、エラーも出さず発送されていた。状態を文字列で持ち遷移の判断を各所のswitchに散らしたのが原因。状態を型にして次に進める先を状態自身に持たせ、新しい状態の抜けをコンパイルで止める整備記録。
配送料の見積りにテストを書こうにも、関数の奥で本物のDBと運送業者APIを直接呼んでいて一行も書けない。依存を内部で作るのをやめ外から受け取り、mainで組み立てて、本物に繋がず試験台で回せるようにする整備記録。
共通サーバの引数を1つ足したら、同じ型の値を取り違えてもコンパイルもCIも緑のまま本番だけ停止。telescoping constructorをFunctional Optionsに組み直し、位置でなく名前で設定を渡す整備記録。
決済種別を一つ足すたび巨大なswitchを開けていた料金計算が、コンビニ後払いの追加で本番panic。型による分岐をStrategy(関数値とmap)に組み直し、本体を触らず種類を足せるようにするまでの整備記録。
本番サービスの通知改善PRが課金と設定同期を壊した。God Objectを責務ごとに切り出し、Facadeで入口を一本化するまでの整備記録。
Perl/MooによるInterpreterパターンの実装を徹底解説!アドホックな正規表現パースの限界を乗り越え、構文木(AST)を再帰評価する美しい解釈実行エンジンを構築します。「コード考古学者」シリーズ、バベル最深部の完結編!
Perl/MooにおけるVisitorパターンの実装を徹底解説!要素クラスを改変せずに新しい操作(セキュリティ監査やログ収集)を追加する「ダブルディスパッチ」の仕組みを、バベル第23層を巡るストーリーとBefore/Afterコードで分かりやすく解説します。開閉原則(OCP)を満たす設計を学びましょう。
バベル再起動後に発生した、千年前の壊れたログデータ走査。データ構造(配列/連結リスト)が呼び出し側に露出したアンチパターンを、Moo::Roleを用いたIteratorパターンで隠蔽・疎結合化する。
崩壊寸前のメインコア再起動。Perl/Mooにおけるカプセル化(情報の隠蔽)を維持しながら、ディープコピー(dclone)とDouble Dispatchで状態を安全に退避・復元するMementoパターンを適用する。
最深部のコントロールルームで発生した、モジュール間の複雑な相互依存と通信過負荷によるシステムフリーズ。調停者(Mediator)パターンをPerl/Mooで適用し、循環参照によるメモリリークを回避しつつ、ハブ&スポーク型の疎結合設計に修復します。
幾重にも連なる多層の権限チェックが呼出側(ゲート)に密結合しているバグ。要求を自律的にバトンパスするChain of ResponsibilityパターンをPerl/Mooで適用し、依存関係を排除して拡張性を高める設計に修復します。