Skip to content.

Sections
Personal tools
You are here: Home » 技術文書 » リファクタリング » リファクタリングとは何か?

Document Actions

(株)永和システムマネジメント    梅田 政利
作成日:初出:ソフトバンク『C MAGAZINE 2003/6』

リファクタリングとは、ソフトウェアの外部的振る舞いを保ちつつ、理解や修正が簡単になるように、内部構造を改善することです。また、リファクタリングは非常に統制された方法でコードを洗練していくため、バグの入り込む余地が少なくなっています。 リファクタリングについて知るために、どうしてリファクタリングするんだろう?(目的)、いつ行なうんだろう?、どうやったら安全に変更できるんだろう?(テスト)、という点を見ていきましょう。



   リファクタリングの目的

リファクタリングは、色々な効果を私達にもたらします。この節では、代表的な効果について 見てみましょう。

  • ソフトウェア設計を向上させる

    設計のまずいコードには重複部分がたくさんあり、修正・拡張するのが大変になります。また コードの総量が相対的に増えるため、理解するのも大変です。リファクタリングによって重複 部分を排除することは、優れた設計へと変わる1つのポイントです。

  • ソフトウェア設計の劣化を防ぐ

    あなたが非常に読みにくいソフトを修正・拡張することを想像してください。全体を理解する ことなしに、なんとか動くものを作ろうとしませんか?また、そのとき出来上がるコードは、 将来の自分が読みたくない場合が多くありませんか?こうして読みにくいソフトウェアほど、 急速に設計の劣化が進んでいきます。読みやすいコードに手を入れるときには、設計の意図を 理解し、自分自身が満足できるコードを書きやすいものです。リファクタリングすることによ って、ソフトウェア設計の向上だけでなく、設計の劣化を防ぐ効果も表れます。

  • ソフトウェアを理解しやすくする

    他人の書いたコードの意図が読み取れない、さらには自分が書いたコードのはずなのに自分の 意図が読み取れない、そんな経験はありませんか?リファクタリングを行うことは、自分も含 めた将来の開発者の助けになります。また、リファクタリングはコードのわかりにくい部分を 理解するのにも使えます。あなたは自分の理解をより良い形で反映するようにコードを書き換 えることができます。そして、テスト結果が変更前と変わらないことで、自分の理解が間違っ ていなかったことを確認できます。

  • バグを見つけ出す

    リファクタリングしながらコードを読むことで、理解が進みます。そのため、バグ原因の推測 が容易になり、バグを無理なく発見できるようになります。

  • より早くプログラミングできる

    理解が早くなる、コードの修正部分が少なくなる、といった理由により、修正・追加が正確に 早く行えるようになります。そのため、リファクタリングに時間を費やしたとしても、結果的 に開発速度は上がります。


   いつリファクタリングすべきか

  • 3度目の法則

    3回同じことをしていることに気付いたらリファクタリングしましょうというガイドラインです。

  • 機能追加のとき

    機能を追加する前に、リファクタリングによってコードの理解を進めましょう。そこからさ らに、機能の追加を簡単に行なえるようにリファクタリングします。

  • バグフィックスのとき

    コードの理解を進めるためにリファクタリングしましょう。


   テスト

リファクタリングは、ソフトウェアの外部的振る舞いを保ちつつ、内部構造を改善することで す。自信を持ってリファクタリングを進めるには、外部的振る舞いを保っている、つまりバグ を生み出していないことに自信を持つ必要があります。そのため、JUnitなどのテストツール によって、簡単に何度でもテストを行なえる環境を整えることが、リファクタリングの事前条 件になります。


つづき




この記事への評価にご協力をお願いします。

良かった 普通 イマイチ