🌟

コードと保守とリファクタリングと ~現場での思い出~

に公開

導入:

15年くらい前のこと。
当時の私は、Webサイトの保守運用案件を担当していることが多かった。
最近だとUiPathの改修とかもしていたけれど、その頃は手打ちでいろいろ触っていた。

そんな案件では、「他人のコードを見る」ことが、よくある。
そして、あれ、ときめくんですよね。技術者としては。いろんな意味で。

以下、私の声:

  • あら、こういう実装するんだ。
  • ん?この変数、さっきのと同じ? 組み換えてるのか。constとdimで分けた方が良くない?
  • いや待って。ネストが深すぎる。ネストの先に条件分岐が5個続いて、その先に50行コード。で、もとに戻る。・・ここにもどるの? ねえ、やめようよ。。

対応:

リファクタリングの前に、まずは設計書を書きたくなる。
といっても、大げさなものではなく、まずはコメントでの整理から。

コードは直接いじらず、メモ帳などにコピーして観察用にする。
もしくは、生成AIに整理を頼んでもいい(※セキュリティとミスのチェックは必須)。

例:

// ここまでは変数定義
// 変数Aの分岐処理
// 分岐の上に5段ネスト(関数化して外出し推奨)
// この条件式、前の条件に含めれば不要かも ← ここから改修提案フェーズ

次に、コメントだけを抜き出して、並べ替える。
この段階で、だいたいの修正工数が見えてくる(テスト工数は除く)。

合意形成:

そのうえで、上司に相談。

「保守性がちょっと厳しいので、設計メモをつくって、修正案と工数を出してみます。
それで検討しませんか?」

炎上していなければ、OKが出ることも多い。
あるいは「次の改修タイミングで混ぜてね」と言われるだけのこともある。

結論:

リファクタリングは、「どこまで」「いつ」「誰が」やるかを、
関係者と合意したうえで着手すること。

勝手に走るのは、ほんとうに危ない。

おまけのあとがき:

いまはもう、実際に手を動かして保守をする役割ではないけれど、かつて自分が保守していたコードや、そこに書き添えたコメントは、今でも、指先に残っているような気がする。
・・・まあ、技術者あるあるですね。

Discussion