by shigemk2

当面は技術的なことしか書かない

アジャイルサムライ リファクタリング:技術的負債の返済

アプリケーションには技術的負債というものが存在する

技術的負債 - Wikipedia
技術的負債
Technical debt
開発の中で、先送りされるもの

  • 文書化
  • テストコードの記述
  • ソースコード中の積み残し
  • (TODO)項目の解決
  • コンパイラの警告
  • 静的コード解析ツールの解析結果への対応
  • 組織で共有されない知識
  • 複雑すぎて変更が難しいコード

手元で変更したコードをプロジェクトに送らないことは技術的負債であり
プロジェクト全体での他のユーザーがメンテナンスに追われることを「利息の支払い」と呼ぶ。

そしてこれらは、時間が経つほど修正するのが難しくなる。
というわけで、これらの負債をこまめに返していくシステムを構築する必要がある。
それが、リファクタリングという手法である。

具体的には

  • 変数やメソッドの名前変更
  • 変数のインライン化
  • メソッドの抽出

たったこれだけでもコードの可読性メンテナンス性が飛躍的に上がる。

ただ、1週間以上かかるようなリファクタリングを実行しないといけないときは、
別個にユーザーストーリーを作成するほうがいい。
ただし、リファクタリング自体はコードの実行結果を変えずにコードを修正する作業なので
知らない人からしたら何もしてない風に思われる。だからリファクタリングに1ヶ月とか
かかると先方からものすごいクレームが来るだろう。
しかもプロジェクトの終盤にリファクタリングをするのは時間的にも好ましくない。

そういう事態を回避するために、リファクタリング

  • 少しずつ
  • すぐに

やるべきである。

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (304件) を見る