あらすじ
※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。
※この電子書籍は紙版書籍のページデザインで制作した固定レイアウトです。
ソフトウェア開発の名著、第2版登場!
リファクタリングは、ソフトウェアの外部的な振る舞いを保ったままで、内部の構造を改善する作業を指します。本書はリファクタリングのガイドブックであり、リファクタリングとは何か、なぜリファクタリングをすべきか、どこを改善すべきか、実際の事例で構成され、ソフトウェア開発者にとって非常に役立つものとなっています。
本第2版では、約20年前のオリジナル原稿の構成は変わらないものの、大幅に書き換えられているほか、サンプルコードがJavaからJava Scriptになるなど、現代的にアレンジされています。
第2版翻訳にあたって
初版の「本書に寄せて」
はじめに
Chap.1 リファクタリング-最初の例
Chap.2 リファクタリングの原則
Chap.3 コードの不吉な臭い
Chap.4 テストの構築
Chap.5 カタログの紹介
Chap.6 リファクタリングはじめの一歩
Chap.7 カプセル化
Chap.8 特性の移動
Chap.9 データの再編成
Chap.10 条件記述の単純化
Chap.11 APIのリファクタリング
Chap.12 継承の取り扱い
文献リスト
訳者あとがき
索引
感情タグBEST3
Posted by ブクログ
この本の一番の価値は、多分、GoFの本がそうであったように、頻出するパターンに名前をつけてカタログ化したことにあるのではないかと思う。
一度で期待した通りに動作するプログラムが書けないのと同じように、一度で理想的なコードを書くことはできない。さらに、時間の経過による状況の変化もあり、最初のコードに手を入れることは必須になる。正しく動作させるためにデバッグが欠かせないのと同じように、リファクタリングも必ず必要だと考えたほうが良い。
もし、言語が最初からこのカタログにあるものを最初からサポートするように作られていたら、最初からありがちなケースを排除するように誘導してくれるようになっていたら、ずっと楽ができるのにと思うも、現実、決してバグを生み出さいない言語が存在できないのと同じように、リファクタリングが不要になることなどないのだろう。
Posted by ブクログ
読んでよかった。正直当たり前なことも書かれているけれどもいつも当たり前のことができているかというとそうではないので身が引き締まる思いだし、ステップバイステップでリファクタリング手法を解説してくれるので自信を持って安全に改善していくための土台になる。
Posted by ブクログ
第二版はJavaScript を使った説明になっており、よりモダンな言語仕様を踏まえた解説になっているのかなと思いました。クラスという言語仕様や基本的な言語仕様を理解して、いくらか実際のソフトウェア開発を経験したあとに本書を読むとより気づきが多いと思います。もちろんシニアなソフトウェアエンジニアにとっても手元においておく価値のある素晴らしい本です。
Posted by ブクログ
ITエンジニア歴6年目にしてようやく購入し、読破。今でも通用する有用なリファクタリング手法、「不吉な臭い」がよくまとまっており、書籍の文量・分厚さの割には読みやすい。
「コマンドによる関数の置き換え」と「サブクラスによるタイプコードの置き換え」が読破時点では勉強になった。
Posted by ブクログ
めちゃくちゃ実践的で大変役に立つ。半分以上がリファクタリングカタログ。
リファクタリングの本なので当然ではあるがある程度の実践経験がある職業プログラマじゃないと面白くないとは思う。
Posted by ブクログ
現場でなんかイマイチだなー、と思ったコードは、不吉な匂いという概念で表現されていた。見える世界が変わった気がする。一度に理解し切るのは難しいので、繰り返し読みたい。
途中比喩がわかりづらい部分あったので、Chat GPTに聞いて理解を深めた。
Posted by ブクログ
リファクタリング(第2版): 既存のコードを安全に改善する
マーチン・ファウラー氏の著書です。
リファクタリングに特化した書籍です。
リファクタリングのカタログと書かれている通り、良く使用するパターンを体系的にまとめ解説してあります。
この本を読むことで、リファクタリングした後の形を知ることができ、あらかじめ書くコードの質も上がります。
【本書で学べること・考えること】
- リファクタリングの必要性
- リファクタリングの準備
- リファクタリングの体系的なパターン
読んでみての感想です。
サンプルコードはJavaScriptで書かれており、理解しやすいです。
私の場合は、まとめながら例を自分の得意な言語に置き換えてみることで理解が進みました。
この本のメリットは、体系的にまとめられたリファクタリングのパターンを学べるとともに、リファクタリング後のコードのイメージを持つことができることだと思います。
それが持てると、最初から書くコードの質が上がると思います。
この本のように網羅的に体系的にまとめられているのが、書籍の大きな強みですね。
Posted by ブクログ
リファクタリングの手法について、それぞれ紹介されている内容は当然と感じる内容もあったりしますが、明確に言語化されて体系づけられている点や、具体的なコード例とともに説明されている点は良いなと思いました。後で参照する価値のある本だと思います。
少しづつ改善していくプロセスなどはTDD本と共通するところもあると感じました。
Posted by ブクログ
リファクタリングを実装に合わせて行うのは同感。
実行速度のチューニングはリファクタリングと相反していると考えがちだが、実は違う点はハッとした。基本に忠実にしっかり計測したい。
カタログは全体を通してざっくり読んだので、必要に応じて読み返したい。
データベースリファクタリングも少し気になった。