ソフトウェアアーキテクチャ博物館AtMuseum
マネジメントFAQ


main関数のみプログラムを改善

改善前

改善後

解説

 改善前のソースコードは、main関数に初期化、入力処理、判断処理、出力処理が全て実装された行数の長い関数でした。このままでは、特定箇所の修正が全てに影響してしまいます。例えば、出力処理でバグが発生しコードを修正すると、テストをやり直しますが、入力処理や判断処理までなぜかテストをし直さなければなりません。それは、初期化から出力までの処理が1つの関数になっているためです。関数は1行でも修正すれば、関数全体のテストをやり直さなければなりません。

 そこで、大きな処理の塊として、入力部、判断部、出力部を分割する改善作業を行いました。改善作業は2段階に分かれています。

 まず1段階目として、関数リファクタリングを行います。main関数1つだけだったプログラムを、if文やfor文などのプログラムブロック毎に小さな関数に分割します。そして2段階目として、ファイルリファクタリングを行います。1つのファイルに収まった多数の関数、変数をファイルごとに分けます。その際のポイントは、「変数中心にファイルを分割する」です。

 以上の改善活動だけでも、触らなくて良いファイルが増え、変更の影響範囲が局所化されます。機能追加や仕様変更に伴うコード修正で、想定外のバグやテスト漏れなどが発生しにくくなります。ソフトウェア開発を行っているすべての方に実践して頂きたい改善活動です。


設計図カテゴリー

課題・疲労カテゴリー