リファクタリング(第2版)
既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)
Martin Fowler 著, 児玉 公信, 友野 晶夫, 平澤 章, 梅澤 真史オーム社434ページISBN 9784274224546
リファクタリングタグで3位(14冊中)。Zenn・Qiitaなどの42記事で紹介され、全期間では同率9位(言及のある1,753冊中、時点)。
- 紹介記事
- 42件
- 媒体別
- Zenn 13・Qiita 19・企業テックブログ 10
- 初めての紹介
- 最新の紹介
この本を選ぶ前に
- 対象読者
- リファクタリングの目的が分からない人、実践したいが方法が分からない人 根拠: 新人エンジニアの自分がおすすめする技術書ランキング 2022春
- 出版年
- ・第2版(約7年前)
- タグ内の順位
- リファクタリングタグで3位(14冊中・紹介記事数の順)
- 注意点
- 分厚く読み切るには体力を要する。第1、2章を読み、残りは実践時に目次から参照する使い方を提案する記事がある 根拠: 新人エンジニアの自分がおすすめする技術書ランキング 2022春
- 1年目の通読では後半の手法集が消化不良だったとする記事がある 根拠: SE 1年目で読んだ技術書68冊+α
- 文章の理解に苦しむ部分がある一方、サンプルコードはJavaScriptとする記事がある 根拠: エンジニア転職して一年経つので自宅学習で使った技術書&Udemyをジャンル別に評価してみた
- 代わりの本
リファクタリングタグで、この本より新しく紹介記事の多い本
対象読者・難易度・注意点は、紹介記事の内容をもとにAIがまとめたものです(根拠記事へのリンクつき)。出版年・順位・代わりの本は書誌と集計データから出しています。
別の版
紹介記事の件数・順位は、すべての版の紹介をまとめて数えています(同じ記事が複数の版を紹介していても1件)。
旧版との違い(紹介記事より)
紹介記事2件が書いた、旧版との違いです。記事の記述を短く言い換えたもので、改訂内容のすべてではありません。 書誌では、この版(2019年・456ページ)は1つ前の版(2014年)の5年後に出ています。
-
- サンプルコードの言語・環境の変更 サンプルコードがJavaからJavaScriptに変更
- 構成・説明の見直し 大幅に書き換えられ現代的にアレンジ
-
- サンプルコードの言語・環境の変更 第2版はサンプルコードがJavaScriptに変更
紹介の推移
2017年上期から2026年上期までの19期のうち14期で紹介されています。直近の2026年上期は3%(93記事中3記事)でした。
数値を表で見る
| 期間 | この本 | 全体 | 割合 |
|---|---|---|---|
| 2026年上期 | 3記事 | 93記事 | 3% |
| 2025年下期 | 4記事 | 137記事 | 3% |
| 2025年上期 | 2記事 | 127記事 | 2% |
| 2024年下期 | 6記事 | 160記事 | 4% |
| 2024年上期 | 2記事 | 120記事 | 2% |
| 2023年下期 | 3記事 | 132記事 | 2% |
| 2023年上期 | 2記事 | 93記事 | 2% |
| 2022年下期 | 0記事 | 95記事 | 0% |
| 2022年上期 | 6記事 | 71記事 | 8% |
| 2021年下期 | 6記事 | 68記事 | 9% |
| 2021年上期 | 1記事 | 47記事 | 2% |
| 2020年下期 | 2記事 | 67記事 | 3% |
| 2020年上期 | 1記事 | 37記事 | 3% |
| 2019年下期 | 2記事 | 40記事 | 5% |
| 2019年上期 | 0記事 | 27記事 | 0% |
| 2018年下期 | 0記事 | 14記事 | 0% |
| 2018年上期 | 0記事 | 9記事 | 0% |
| 2017年下期 | 0記事 | 14記事 | 0% |
| 2017年上期 | 1記事 | 9記事 | 11% |
「全体」は、その期に公開され、いずれかの本を紹介した記事の数(ZennとQiitaへの同時投稿は1本と数える)。
紹介記事から読み取れること
42件の紹介記事の内容をもとにAIがまとめたものです(根拠記事 13件・生成日 )。各項目に根拠記事へのリンクがあります。
読んで得られた成果
- 複雑化したコードを一歩ずつ改善する手引きとなり、改善に役立った。
- 既存コードの機能改修で何をどう進めるか分からなかった状況から、リファクタリングの方法を学んだ。
- 大きめのリファクタリング業務で、実施時期や必要性の判断と具体的な進め方の参考にした。
- コードレビューで改善の指摘を言語化する手掛かりにした。
この本の特徴
- 不吉な臭いを改善箇所の手掛かりとし、実施方法を具体例とともに説明している。
- JavaScriptで書かれた事例があるとの言及がある。
- 小さな変更とテストで振る舞いを保ちながら進める考え方が紹介されている。
- 必要な方法を辞書のように参照する使い方が挙げられている。
言及記事から読み取れる傾向
第一部で不吉なにおいを覚え、必要に応じて該当するリファクタリングのカタログをたどる使い方が示されている。
全編を通読せず、理由を扱う章を先に読み、必要な手法を目次やカタログから参照する読み方が提案されている。
根拠: 新人エンジニアの自分がおすすめする技術書ランキング 2022春、自身のITエンジニアとしての技術力(特に判断力)を身につけるときに影響を受けた技術書
分厚さへの言及や、実コードで手法を使うには実践が必要との見方がある。
根拠: SE 1年目で読んだ技術書68冊+α、リファクタリング 既存のコードを安全に改善する(第2版)の個人的まとめ、新人エンジニアの自分がおすすめする技術書ランキング 2022春
テストで動作や振る舞いを確かめ、小さな段階に分けて進める重要性が述べられている。記事19はRubyエディションについての記述である。
根拠: 書籍「リファクタリング」から僕が履修漏れしてた部分を伝えたい、リファクタリング 既存のコードを安全に改善する(第2版)の個人的まとめ、ソフトウェア設計の本質: 5冊の名著から学ぶ「変更容易性(ETC原則)」
こんな人におすすめ
前提知識:
- オブジェクト指向の理解が前提との記述がある。
こんな目標を持つ人に:
- 既存コードの改善箇所を見つけ、リファクタリングの方法を学ぶ。
※ この情報は42件の技術記事からAIが分析・生成したものです。表示している分析項目には根拠記事へのリンクがあります。読者の逐語引用ではありません。 実際の内容は書籍でご確認ください。
紹介している記事
いいね数順 · 42件記事ごとの説明は、記事本文のうちこの本に触れた部分をAIが要約したもので、筆者の原文ではありません。
- 【Webエンジニアど素人から3年生ぐらいになるまでに読むと良い本】を段階的にまとめた Qiita · JunyaShibato · · いいね 2,559
- Webエンジニア1年目の自分に捧げたい本・記事を超まとめ Qiita · 仮想サーファー · · いいね 2,262
紹介された版: 新装版(2014年)
オブジェクト指向の考え方や利点を理解した後、業務で書くコードにどう生かすかという疑問に応える本として紹介している。「このコードをオブジェクト指向で書くには」という実装例が豊富に載り、仕事に直結する知識になると評価している。オブジェクト指向の概念を実務のコードに結び付けたい読者に勧めている。
- エンジニアのインターンが技術書を30冊くらい読んでみたので、ゆるくまとめてみた Qiita · Shiruba · · いいね 463
TypeScript開発でクラスによる抽象化を進める際、シングルトンなどの用語が分からず困った経験から、オブジェクト指向の基本を押さえるため評判の良い本を数冊読むことにした。その中で本書は現在進行形で読んでおり、4月までに読み終えられるだろうかと記している。
- SE 1年目で読んだ技術書68冊+α Qiita · BinomialSheep · · いいね 260
10〜11月に読み、現代の開発にリファクタリングは不可欠と捉え、本書の重要性を認めている。一方、1年目で通読してすぐ実務に生かせるかは疑問として、評価は★6にとどめた。後半の手法集は消化不良だったため、数年後に読み直すつもりである。前半だけでもとても良いと評価している。
- ドメイン駆動設計からオブジェクト指向、そしてアジャイル開発まで。関連書籍練り歩きのススメ Zenn · abekoh · · いいね 260
オブジェクト指向関連の本を読み進める中で、設計の実践に関わるテスト駆動開発やリファクタリングを学ぶために本書を読んでいる。コードの不吉な臭いを察知し、一歩ずつ少しずつ改善していく手引きとして紹介し、複雑化したコードの改善に役立ったと述べている。また、テストのないコードの改善を扱う『レガシーコード改善ガイド』とあわせて、設計を実現するスキルの重要性を考えるきっかけとしている。
- エンジニア転職して一年経つので自宅学習で使った技術書&Udemyをジャンル別に評価してみた Qiita · すずき · · いいね 173
転職後の自宅学習で使った技術書や講座をジャンル別に振り返る記事の「クリーンアーキテクチャ」の項目で本書を紹介している。コードレビューの際に参考にする本として挙げており、文章の理解に苦しむ部分がある一方、サンプルコードがJavaScriptで書かれている点は助かるとしている。レビューで参照する用途と、文章の読み進めにくさ、コード例への評価を述べている。
- エンジニア1年目の自分に薦めたい技術書13選 Zenn · むぎ · · いいね 167
最初に関わった案件で機能改修や追加を担当した際、既存コードに約1000行の関数や各所に散らばる類似コードがあり、改善すべき点は多いものの、何をどう進めればよいか分からなかったと振り返っている。その状況で先輩から紹介され、リファクタリングの方法を学ぶことができたとしている。
- 【読書の夏?】各分野のおすすめ技術書を75冊まとめてみた Qiita · miruky · · いいね 125
動作を変えずに内部構造を改善するリファクタリングについて、コードの問題の見分け方や安全な修正のためのテスト、関数の抽出・条件分岐の単純化などの手順をまとめた本として紹介している。最初の例を一緒に直しながら全体像をつかむ構成で、サンプルはJavaScriptで書かれているため、同言語に馴染みがある人は読み進めやすいと評価する。既存コードの直し方を一つずつ身につけたい人には、手を動かしながら読むことを勧めている。
- 技術書をPDFでも購入できる出版社とサイト Zenn · 柾樹 · · いいね 110
- 技術書知識を即戦力化!Sub Agent化から設計支援・レビューまでの最短フロー Zenn · ふれ · · いいね 69
- 書籍「リファクタリング」から僕が履修漏れしてた部分を伝えたい Qiita · kaaaichi_i · · いいね 57
エンジニアの基礎を学ぶために本書を読み、知識としては当然と思える内容の中にも、実践できていなかった考えがあったと述べている。リファクタリングの目的は経済的な利点にあり、機能追加中は二つの帽子を使い分け、テストで動作を確かめてから行うと説明する。変更予定のない稼働コードはそのままにし、作り直す方が早ければ書き直す。コード理解や機能追加の前、醜いコードを見た時、同じコードを三度見た時を実施の機会に挙げ、全11章中7章のパターンカタログで語彙を増やせるとしている。
- リファクタリング 既存のコードを安全に改善する(第2版)の個人的まとめ Zenn · Miki · · いいね 38
各章の概要と所感を後で見返すためにまとめ、読む時間がない人や全体像を先に知りたい人にも向けている。第1〜4章で、振る舞いを保つ小さな変更とテストの重要性を学び、第6〜12章のカタログではカプセル化や条件分岐、継承などの手法を紹介している。コード例は難しくないが、オブジェクト指向の理解が前提で、手法の使いどころや実コードでの手順は実践を通じて身につける必要があるとし、必要時に参照する本として評価している。
- 新人エンジニアの自分がおすすめする技術書ランキング 2022春 Qiita · Yporon · · いいね 21
本書をリファクタリングのガイドブックであり、何をするのか、なぜ行うのか、どこを改善するのかを実例で説明していると紹介している。事例の説明にはJavaScriptが使われており、目的が分からない人や、実践したいが方法が分からない人に勧めている。一方、分厚く、読み切るには体力と精神力を要すると評価し、まず理由を扱う第1、2章を読み、残りは実践時に目次から必要な箇所を参照する使い方を提案している。
- 【全50冊】読んだことある技術書、自己啓発本についてひとこと書きながらひたすら挙げていく。 Zenn · hiroms · · いいね 21
本書をリファクタリングの教科書と捉え、リファクタリング関連の本を読むならまず勧めるとしている。リファクタリングを避けられるコードを書くための学びにもなり、改善後のコードを知っていればそこから書き始められると述べる。コード改善の本で参考文献としてよく挙がることから、多く参照されている本だと評価している。紹介した版のコードはJavaで、第2版はJavaScriptで書かれているため、好きな言語を選べる点にも触れている。
- 新人エンジニアのためのブックリスト Qiita · 4door · · いいね 21
新人エンジニア向けブックリストの「リファクタリング」の項目で本書を紹介し、安全なリファクタリング方法がよくまとめられていると述べている。内容を非常に実践的だと評価し、必要な方法を確認するときに辞書のように使うことも挙げている。また、オブジェクト指向の応用的な内容を扱う書籍として位置づけている。
- 自身のITエンジニアとしての技術力(特に判断力)を身につけるときに影響を受けた技術書 Qiita · まめ · · いいね 14
技術力、とくに判断力を身につけるための参考書として、全編を読む必要はないとしている。まず第一部に目を通し、「不吉なにおい」の種類をいくつか覚えておき、必要に応じてそのにおいから該当するリファクタリングのカタログをたどる使い方を挙げる。また、重複コードを解消するリファクタリングについては、具体的な手順を確認しておくよう述べている。
- これから現場に出る新米エンジニアのあなたへ。TechTrainメンターから贈るメッセージと読んでほしいおすすめの本 Zenn · TechTrain公式 · · いいね 11
- 駆け出しエンジニア学習ロードマップ1 Qiita · 石川 聖 · · いいね 10
- 【2024年度版】エンジニア1年目で読んでよかった技術書籍まとめ Zenn · aya · · いいね 10
リファクタリングとは何かという視点から、どのような箇所をリファクタリングすべきかを「不吉な臭い」という言葉にたとえて解説していると紹介している。また、実施すべきリファクタリングについても具体例を交えて説明されているとし、必要なときに辞書のように見返すため、手元に置いておきたい本として評価している。
- 【読書会】「リファクタリング(第2版): 既存のコードを安全に改善する」 Zenn · yamazaki · · いいね 5
筆者の社内読書会で6ヶ月かけて読まれ、参加者がリファクタリングの定義やスモールステップ、テスト先行、機能追加とリファクタリングを分ける考え方を学んだと述べている。筆者は第3章の不吉なにおいが自分のコードに当てはまると感じ、チームで軽いリファクタリングをタスク内で行うルールに見直した。チームから安心できるとの声も出たという。
- 駆け出しエンジニア学習ロードマップ2 Qiita · 石川 聖 · · いいね 4
- エンジニアチームの成長を目指した、輪読会の取り組み ~どんな形式で、どんな書籍を読んできたか?~ Zenn · ぐんそう · · いいね 4
チームでリファクタリングを進める中、バグの発生や共通見解の不足を感じ、原著を輪読会の本に選んだとしている。分厚いため読了を目標にせず、認識を揃えたい第4章までを全員で読む方針で進行中である。第2章で定義が明確にされている点を評価し、メンバーが本を読んでいることが技術的な自信につながり、開発時にリファクタリングを行いやすくなっているようだと述べている。
- Tidy First?を読んだ感想 Zenn · kazuki takahashi · · いいね 2
整頓をリファクタリングのサブセットである小さなリファクタリングとして説明している。ガード節など整頓の具体例や結合・凝集の解説は『Tidy First?』ではさらっとしているため、細部を知るにはMartin Fowlerの本を読んだ方がよいとしている。同書は3部作の第2部で取り上げられる予定だとも記している。
- 30歳まで1冊も技術書を読んだことのなかった自分が転職後1年間で読んだものとその所感 Qiita · Y_Kishi · · いいね 2
大きめのリファクタリング業務に取り組むために本書を購入した。実際の業務でリファクタリングを検討・実施する際、いつ行うのか、なぜ必要なのかという判断の面と、具体的にどう進めるのかという方法の面で参考になったと述べている。大規模な作業を控えて手に取り、必要性から実践の進め方までを確認できた点を評価している。
- 学生エンジニアの読書記録 Qiita · t38miwa · · いいね 1
本書を読んでテストコードの重要性を強く認識したと述べている。また、リファクタリングの具体的な手法も記載されている点を挙げ、テストの大切さを実感できることと、実際の手法が紹介されていることの両面から評価している。テストコードの重要性とリファクタリングの具体的方法が印象に残ったとしている。
- ソフトウェア設計の本質: 5冊の名著から学ぶ「変更容易性(ETC原則)」 Qiita · Negikey · · いいね 1
実際に読んだのはRubyエディションで、第2版もエッセンスは変わらないだろうと留保し、引用頁も同版に基づくとしている。コードの臭いと対処例はETC原則の裏返しと捉え、他人のコードをレビューする際、指摘を言語化する手掛かりとしている。また、TDDはあまり実践できていないとしつつ、ユニットテストで振る舞いを確認しながら進める重要性を強調する。性能面では、リファクタリングで最適化しやすくなり、速度低下もありうると紹介する。
- ソフトウェア開発おすすめの書籍(2024) Qiita · junetoken · · いいね 1
すべてのプログラミング言語に共通するプラクティス集として紹介し、本書が「リファクタリング」の概念と実践方法の普及につながったと言われていると述べている。第1章から第4章で概念と導入を扱い、第5章以降は実践方法を重視したプラクティス集で、サンプルコードを実際にリファクタリングする流れだと説明する。概念や導入より実践部分に多くの分量が割かれており、一気に読むのではなく少しずつ読むのがよいとしている。
- レビューの指摘を8割減らしてくれた書籍 Zenn · さいたま · · いいね 1
改修業務にあたるエンジニアや、ケーススタディを通じて実装の完成度を上げたい人を対象に挙げる。リファクタリングが必要なケースと改善手法を、豊富な具体例で解説し、改善前後のコードを比べられるため直感的に理解できるとしている。例はJavaScriptで書かれ、Clean Codeでは触れられていない例も学べる点を評価。学習を通じ、リファクタリングが必要なコードの見分け方や手法、テストのやり方を身につけたと述べている。
- 現役エンジニアが選ぶ、エンジニアを目指す上でとりあえず読むべき本3選 Qiita · ken · · いいね 1
未経験からエンジニアに転職し一人前になりつつある時点で、エンジニアになりたての頃の自分に勧める本を選んだという。学習内容に迷う人や、プログラミング学習中に不安を感じる人に向け、各言語の学習書ではなく、エンジニアに共通して大切な内容を扱う本として、可能であれば本書も読んでおくよう勧めている。より良いコードを書くためのポイントが非常に体系立って紹介されていると評価している。
- 読書所感メモー「リファクタリング(新装版)」 Qiita · keketon · · いいね 1
個人的な読書メモとして、概論やコードの不吉な臭い、リファクタリングカタログなどを読み、オブジェクト指向のリファクタリングへの理解を深めたとしている。クラス化だけでなくクラスを統合する選択肢も学び、JavaのCollectionを委譲するだけのクラス化案がレビューで退けられた経験と重ねている。GoFのState/Strategyパターンの知識は理解を助けた一方、実際に行うのは難しそうだと述べる。テストの重要性や、コードが壊れそうなら無理に続けず止めること、簡単な変更はIDEのツールで素早く行えることにも触れている。
- AI時代でも活躍できるエンジニアになるためのおすすめブックリスト Zenn · しゅんでぃ ·
- ワンキャリアエンジニアに聞いた。新卒エンジニアに進めたい!オライリーで学びになった書籍紹介 企業テックブログ · ワンキャリア ·
菅野さんが一番の推し本として挙げた1冊で、オライリーのサブスクでは読めないが紹介されている。リファクタリングとは何かに始まり、進め方の全体像、小さな改善の原則、それらの組み合わせ方まで段階的に学べるという。リファクタリングは勘違いされやすいため体系立てて学ぶ価値があり、誰にでも必要なスキルを身につける定番として勧めている。
- 変化の波を乗り越えろ!予測不能な時代を生き抜く「考え直す力」とは - 書籍「Think Again」 企業テックブログ · 豆蔵デベロッパーサイト ·
設計の良し悪しを学ぶ目的で、他の設計書とともにこの本を最近読んだと述べている。変更に強いシステムには、手続き型ではなくドメインモデルを設計してオブジェクト指向で書くことが重要だと感じたという。一方で、書籍の内容に納得するほど矛盾する知識を排除しかねないと懸念している。
- 「リファクタリング(第2版): 既存のコードを安全に改善する」を読んで 企業テックブログ · iimon ·
新メンバーが増えて可読性を意識するようになり、社内勉強会のテーマとして本書を取り上げた。リファクタリングの意義や、事前にテストを書くこと、判断は経済的な基準で行うことを整理し、本書を元に練習問題を3つ作成している。気になった部分のつまみ食いにとどまったため、実務を通じて読み直したいとしている。
- 結局「質とスピード」、大事なのはどっちやねん? 企業テックブログ · iimon ·
社内勉強会で、保守性のうち理解容易性を高めるための本として挙げている。理解しやすいコードを書くために読む本と位置づけ、リーダブルコードと並べて紹介している。紹介した本はすべて社内にあるとしている。
- リファクタリングの道しるべ:依存関係を理解して効率的に学ぶ 企業テックブログ · ホワイトプラス ·
- リーダブルコードの感想などまとめ Qiita · 矢島 達朗 ·
- 社内輪読会のススメ 企業テックブログ · ラクス ·
筆者のチームが輪読会の第2回で読んだ本。1回の範囲を15〜20ページに減らし、事前準備なしで本だけ持って参加できる形にしたため、開催期間は伸びたが参加しやすくなったという。アンケートでは、本の内容が開発に生きた、基礎的な内容の復習になったという声があったとしている。
- 【2021年】 技術書好きプロエンジニア達が紹介する40選 企業テックブログ · ラクス ·
LT会の発表者は、約20年前の原稿の構成を保ちつつ現代的に書き直された第2版として紹介している。リファクタリングの基礎を学びたい人や実践中のエンジニアに向くとし、関数命名のセオリーが学べること、イマイチなコードに気づく知識と良いコードを書く知識が身につくことを挙げている。
- 開発メンバーが選ぶ、おすすめの技術書【2020年度】 企業テックブログ · ラクス ·
アンケートで同率12位の本。回答者は、リファクタリングの仕方だけでなく、可読性や変更しやすいコードを書く方針を学べると述べる。洗練されたコードは内部品質を継続的に改善して生まれると知り、具体的なサンプルで様々な型を学べた、コアロジックの大改修で参考にしたという声もある。
- 『リファクタリング第2版』を読んだ感想 企業テックブログ · 虎の穴 ·
より良いプログラムを書きたい、レビューでの指摘に説得力のある基準がほしいと考えて読んだ。特に重要なのは第1〜4章で、第1章の具体例と第3章のコードスメルが有益だったという。第5章以降はパターン集なので、必要なときに参照すればよいとしている。コメントについての記述で考えを改めたとも述べている。
- 現役エンジニアが「4月入社の新人エンジニア」におすすめする書籍17冊 企業テックブログ · paiza ·
紹介された版: 新装版(2014年)
筆者らは、リーダブルコードと合わせた2冊が、メンテナンスしやすいコードを維持するための大切な考え方を扱っていると述べている。新人のうちに読めば読みやすいコードを書く良い習慣を早く身につけられ、美しいコードは尊いという考えを身につけるためにも手元に置きたい書籍だとしている。
この本について
本書は、外部から見たソフトウェアの振る舞いを変えずに内部構造を改善するリファクタリングの原則と手法を、実例とカタログを通じて解説する。冒頭の例から始まり、実施の原則、コードの不吉な臭い、テストの構築を経て、カプセル化、特性の移動、データの再編成、条件記述の単純化、APIや継承の変更へと進む。作業では機能追加とリファクタリングの段階を分け、テストで振る舞いを確かめながら変更を進める。実施するかどうかは経済的な利点を基準に判断し、変更の必要がないコードや、作り直す方が早い場合は対象から外す考え方も扱う。第2版では構成を保ちながら内容を改訂し、サンプルコードをJavaからJavaScriptに変更している。ソフトウェア開発者向けのガイドである。
出版社の内容紹介・目次と紹介記事をもとにAIが要約したものです。原文の転載ではありません。