株式会社エス・スリー・フォー

C++/C#/VB.NETによる リファクタリング – 最初の例

リファクタリング(Refactoring)’をご存知ですか? 「外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、ソフトウェアの内部構造を変化させること」です。

プログラムの改造や拡張に先立って適切なリファクタリングを行うことでその後の作業が楽になります。逆に’乱れた’状態のまま改造/拡張を繰り返すと次第にあちこちにほころびが目立ち始め、バグも出やすくなります。リファクタリングを行わずに改造/拡張を続けたソフトウェアは、さながら建て増しを繰り返して迷路と化した温泉旅館の様相を呈してきます。

このリファクタリングの様々なテクニックや定石を解説した本:

“リファクタリング – プログラム体質改善のテクニック”
マーチン・ファウラー 著
ピアソン・エデュケーション IDBN4-89471-228-8

は、変化に強く、単純で美しいコードを維持するための頼りになるガイドブックです。是非ご一読を。

この本は第一章:「リファクタリング-最初の例」から始まります。ビデオレンタルの料金計算を題材に、コード群にリファクタリングを施していく過程が詳しく解説されています。

「リファクタリング」では言語としてJavaが用いられています。C++/C#/VB.NETに翻訳するのはさほど苦労することはありませんが、やはり「C++/C#/VB.NET によるリファクタリング-最初の例」が欲しくなります。

また、この章ではリファクタリングによって最終的にどんなコードへと変貌を遂げたのか、その’生まれ変わったリスト’が示されていません。

そこで、本アーティクルでは’リファクタリング前’と’リファクタリング後’のそれぞれのコードを Java, C++, C#, および VB.NET で示します。あなたのコードを磨くサンプルとしてお役立てください。

リファクタリング前

リファクタリング後