Featured image of post コードメカニック シリーズ目次【困りごとから探す案内板】

コードメカニック シリーズ目次【困りごとから探す案内板】

出張整備士の親方が、Go のコードに潜む不具合をデザインパターンで直していく全12話の目次。困りごと別の一覧から、読みたい話を選べます。

本番で動いているコードは、直したつもりが別の所を壊します。通知を直したら課金が止まる、決済を足したら料金計算が落ちる、キャンセルしたはずの注文が発送される。出張整備士が Go のコードに潜む不具合の原因を追い、デザインパターンで整備し直していく全12話の連載です。

どの話からでも読めます。壊れた現場のコードがなぜ壊れたかを追い、整備後の形と見比べれば十分です。

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

まず読むなら

  • God Object — 通知を直したら課金まで壊れる回。1つの塊に何でも持たせた作りが、なぜ直すたびに別の所を壊すのかが分かる。以降の全話の出発点になる
  • Strategy — 決済方法を足すたびに巨大な switch を開ける回。分岐を関数値と map で差し替えられる形にする、パターンの基本の型が押さえられる
  • Dependency Injection — テストが1行も書けない回。部品を内部で作る癖が、テストのしにくさにどう直結するかを手を動かして確かめられる

困りごとから探す

機能を足すたび、本体を開けて壊してしまう

  • God Object — 1つの塊に何でも持たせ、直すと別の所が壊れる
  • Strategy — 決済方法を足すたびに switch を開ける
  • Observer — 通知を足すと、ポイント付与が止まる
  • Template Method — バッチの骨格をコピペして、直しが1本だけ漏れる

テストが書けない、取り違えをコンパイルで止めたい

  • Dependency Injection — 本物のDBやAPIを内部で呼んでいて、テストが書けない
  • Functional Options — 同じ型の引数を取り違えても、コンパイルもCIも通る
  • Value Object — 支援者IDが寄付額として処理される

状態や処理の組み合わせが増えて、分岐や型が爆発する

  • State — 状態の判断が各所の switch に散り、キャンセル済みの注文が発送される
  • Decorator — 圧縮・暗号化・バッファの組み合わせごとに型が増える

共通の処理や部品同士のつなぎが、あちこちに散らばる

  • Command — ハンドラーに作り付けた処理が、HTTP の外から呼べない
  • Middleware — ログや認証の前置きが30個のハンドラーにコピペされている
  • Mediator — 部品を分けたのに、つなぎ方が直結のN対Nで絡む

全話一覧

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