ほんとの出会い系ブログ

今まで出会った本をご紹介します。人気の作品や良書と呼ばれる本が多いと思いますので、出会いのきっかけになれば幸いです。

リファクタリング

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

リファクタリングとは、ソフトウェアの外部から見た動作を変えずに、内部の構造を改善していく作業です。これはしばしばソースコードを「きれい」にすることと言い表されますが、「きれい」な状態とは人によって差があり、複雑なソースコードを目の当たりにすると、「汚い」状態から「きれい」な状態にするには、何から手を付けてよいかわからないという声もよく聞きます。そこで、リファクタリングのガイドブックとして本書をおすすめします。

本書の構成は、第1~2章でリファクタリングの概要と必要性を説明し、「2つの帽子」をかぶり直すという表現で機能追加とリファクタリングを区別することを強調します。第3章では「コードの不吉な匂い」という表現でどこをリファクタリングすべきかというヒントを様々な視点で説明します。第4章ではリファクタリングの際のテストの重要性を説明します。第5章以降はリファクタリングのカタログとなっており、各リファクタリング方法の要約、動機、手順、例を説明します。ごく一部ですが、次のようなリファクタリング方法が紹介されています。

  • メソッドの抽出
  • 問い合わせによる一時変数の置き換え
  • シンボリック定数によるマジックナンバーの置き換え
  • 条件記述の統合
  • 重複した条件記述の断片の統合
  • ガード節による入れ子条件記述の置き換え

サンプルコードにはJavaが使用されており、オブジェクト指向を前提とした例やリファクタリング方法が多く見られますが、オブジェクト指向で書かれていないレガシーなソースコードリファクタリングにも十分役立つ内容が含まれています。長期運用サービスを保守する開発者にはぜひ一読をおすすめします。