こんにちは、ITエンジニア限定転職サービスHITOBITOのカトウです。
今回は「リファクタリング」についてです。
あなたが作成したプログラムが何年くらい使われるのか、考えたことはありますか?
プロジェクトが終了すれば、あなたはまた別のプロジェクトに行くかもしれません。
しかし、あなたの作ったプログラムは、あなたの手から離れた後も、何人ものひとびとの手によって10年以上も生き続けることだってあります。
ほとんどの場合、プログラムを書く時間よりも、メンテナンスする時間の方が圧倒的に長いのです。
だから、別の人にも読みやすい、処理内容を誤解しにくいコードを書くということがとても大事になります。
反対に、誰かが作ったプログラムを、自分が引き継ぐこともあります。
良いコードで書かれていればいいのですが、そうとも限りません。
そこで必要になるのが「リファクタリング/refactoring」です。
リファクタリングとは?
リファクタリングは、ソフトウェア開発において、プログラムの動作を保ったままソースコードを改善する作業のことです。
ソフトウェアに新たな機能を追加する作業や、問題点を解決するバグ修正とは異なり、リファクタリングでは外から見た挙動は変わりません。
リファクタリングの目的は、プログラムを理解しやすい状態に維持し,拡張性や再利用性を高めることです。
こまめに手入れをしてプログラムを長持ちさせるテクニックとも言えますね。
しかし「リファクタリングをしたら、プログラムがまともに動かなくなってしまった」なんてことがあったら困ります。
そこで、この記事では、リファクタリグの基本をご紹介します。
リファクタリングの基本
●Rename 名前の変更
良い名前をつけることは、コードの理解しやすさと変更のしやすさを向上させます。
曖昧な名前よりも、多少冗長でも誤解のない名前をつける方が良いです。
文脈に沿った名前をつけることで、余計な修飾語を削減でき、コードの見通しが良くなります。
●Extract 抽出
変数、メソッド、関数、クラスを抽出することで、コードの文脈や全体像をわかりやすくします。
特に複雑なコードを理解する際に有効で、リファクタリングをしながらコードを読み解くことで、潜在的なバグや不整合を発見することができます。
●Inline インライン化
Extractで抽出した部分を元に戻すことです。
これにより、コードのバランスを取りながら、柔軟に形を変えることが可能になります。
Inlineを使用しないと、コードが過度に複雑になり、修正が困難になることがあります。
リファクタリングの基本原則
●自動チェックの活用
リファクタリングの際は、コードの変更を自動的に検知してユニットテストを実行する仕組みを導入することで、ミスを減らすことができます。
●ツールの活用
IDEのリファクタリング機能や静的解析ツール(Formatter、Linterなど)を利用することで、人間のミスを防ぎ、リファクタリングの品質を向上させます。
さらに、SonarQubeやCodeGuru、CodeSceneなどの自動コードレビューツールを使用することも推奨されます。
リファクタリングは、コードの質を向上させるために重要な技術です。
特に、Rename、Extract、Inlineの基本テクニックをマスターすることで、リファクタリングを効率的に進めることができます。また、自動チェックやツールを活用することで、リファクタリングのリスクを軽減し、成功率を高めることができます。
この記事で紹介した内容は基本的な事だけですが、これをきっかけにリファクタリングを学習してみるのも良いと思います。
ではまた(*'▽')