「リファクタリング(Refactoring)」とは、外部から見た時の挙動は変えずに、プログラムの内部構造を整理することです。リファクタリングにより、システムを長く使い続けることや、トラブル時の対応を早めることが可能になります。
「リファクタリング(Refactoring)」とは ?
「リファクタリング(Refactoring)」とは何ですか?
「リファクタリング」とは、外部から見た時の挙動は変えずに、プログラムの内部構造を整理することです。
リファクタリングは、あくまで外部から見た時の挙動は変えないため、機能追加はリファクタリングでは当たりません。また、バグの修正もリファクタリングではありません。
リファクタリングをすることで、何か良いことはありますか?
リファクタリングにより、プログラムの内部構造を整理でき、システムを長く使い続けることや、トラブル時の対応を早めることが可能になります。
リファクタリングのメリット
リファクタリングを実施するメリットは、主に以下の3点があります。
- 設計の劣化を防ぐことができ、システムを長く使えることができる。
- コードを理解しやすくなり、引き継ぎ時の手間が減らせる。
- 修正、追加をより早く、正確に行えるため、トラブル時の対応が速くすることができる。
リファクタリングのデメリット
リファクタリングを実施するには、メリットはありますが、工数(コスト)と作業時間がかかるデメリットもあります。
リファクタリングを実施するには、追加の工数(コスト)と作業時間がかかります。リファクタリングの対象は、バグや追加機能ではなく、現行システムで問題なく動いているコードが対象になるため、それを追加コストかけて修正することは、無駄な作業として見られることがあります。
リファクタリングの方法・手法
リファクタリングにより読みやすいコードを実現するためには、主に以下の作業を行います。
- まとまった処理をメソッドとして重複部分を減らすこと。
- ネスト(入れ子)を浅くすること。
- 変数や関数の名称をシンプルにすること。
なお、リファクタリング作業を実施する際は、リファクタリング後には必ずテストし挙動が変わっていないことを確認する必要があります。(リファクタリングは前後でソフトウェアの挙動が変わってはいけないため。)そのため、リファクタリングの作業は細かく分割して行うことが推奨されています。広範囲にわたるコードを一気にリファクタリングすると、テスト時にエラーが出た際、どこに問題が生じたのか分かりづらいためです。
なお、リファクタリングの作業中にはこまめにバックアップを取ることが推奨されています。テストもこまめに行いますが、問題発生時の手戻り工数を極力減らすために、合わせてバックアップも取る必要があります。
リファクタリングに関する問題(令和5年問49)
リファクタリングの説明として,適切なものはどれか。
ア. ソフトウェアが提供する機能仕様を変えずに,内部構造を改善すること
イ. ソフトウェアの動作などを解析して,その仕様を明らかにすること
ウ. ソフトウェアの不具合を修正し,仕様どおりに動くようにすること
エ. 利用者の要望などを基に,ソフトウェアに新しい機能を加える修正をすること
出典:令和5年度 ITパスポート試験公開問題 問49
正しいと思う選択肢をクリックしてみてください!!
ア. ソフトウェアが提供する機能仕様を変えずに,内部構造を改善すること
正解です。
イ. ソフトウェアの動作などを解析して,その仕様を明らかにすること
不正解です。
ウ. ソフトウェアの不具合を修正し,仕様どおりに動くようにすること
不正解です。
エ. 利用者の要望などを基に,ソフトウェアに新しい機能を加える修正をすること
不正解です。
コメント