【2021年】リファクタリング・コーディング技術の本「人気・おすすめの10冊」

コードには守るべき原則やアンチパターンなどがあります。それらを認識した上でプログラムを書くことで、保守性、再利用性、可読性などが高く運用しやすいコードとすることができます。

長く使えるコード、未来の自分やチームメンバーにとっても良いコード、を書けるよう、リファクタリング、コーディング作法を身に着けましょう。

こちらでは、リファクタリング、コーディング技術に関する書籍を人気とともに紹介していきます。

 
Kindle Paperwhite
発売日 2018/11/07
通常 13,980円
現在 13,980円

 

Contents

 

Kindle Unlimited 1ヶ月無料

kindle_unlimited_sale
 
  • 1ヶ月無料で読み放題
  • 1ヶ月以内でも解約可能
  • 解約後も1ヶ月まで利用可


    

リファクタリング・コーディング技術の参考書「人気ランキング 20冊」

リファクタリングの今売れ筋本を人気ランキングで一覧したのが以下。

ランキングは日々更新されていますので、最新の人気が反映されています。

 

(2021/05/18 更新)
Rank製品評価
1
(4.5)
総評価数 274件
2
増補改訂版 Java言語で学ぶデザインパターン入門
発売日 2014/03/12
通常    4,180円
単行本   4,180円 (+42pt)
Kindle   4,180円 (+2090pt)
(4.3)
総評価数 76件
3
(4)
総評価数 67件
4
独習デザインパターンC++
発売日 2015/03/27
通常    4,114円
単行本   4,114円
Kindle   3,600円 (+36pt)
(3.4)
総評価数 5件
5
リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)...
発売日 2019/12/01
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,598円 (+84pt)
(4.6)
総評価数 23件
6
(4.3)
総評価数 51件
7
レガシーコード改善ガイド (Object Oriented SELECTION)
発売日 2009/07/14
通常    4,620円
単行本   4,620円 (+46pt)
Kindle   4,158円 (+42pt)
(4.7)
総評価数 21件
8
Game Programming Patterns ソフトウェア開発の問題解決メニュー (impress top gear)...
発売日 2015/09/24
通常    4,180円
単行本   4,180円 (+42pt)
Kindle   3,762円 (+38pt)
(4.6)
総評価数 17件
9
リファクタリング 既存のコードを安全に改善する(第2版)...
発売日 2019/12/06
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,356円 (+44pt)
(4.6)
総評価数 22件
10
新装版 リファクタリング 既存のコードを安全に改善する...
発売日 2017/07/15
通常    6,070円
単行本   4,980円
Kindle   4,158円 (+42pt)
(4.1)
総評価数 15件
11
Java言語で学ぶリファクタリング入門
発売日 2014/03/12
通常    4,980円
単行本   3,980円
Kindle   1,760円 (+18pt)
(4.2)
総評価数 13件
12
(4.3)
総評価数 18件
13
リファクタリング:Rubyエディション
発売日 2020/03/21
通常    8,800円
単行本   8,800円 (+88pt)
(4.2)
総評価数 4件
14
(4)
総評価数 5件
15
Code Complete 第2版 上 完全なプログラミングを目指して
発売日 2014/04/02
通常    6,710円
単行本   6,710円 (+67pt)
Kindle   6,375円 (+64pt)
(4.5)
総評価数 46件
16
(3.8)
総評価数 3件
17
(3.6)
総評価数 34件
18
(3.5)
総評価数 5件
19
(4)
総評価数 34件
20
(3.5)
総評価数 16件

 

以降でおすすめ・注目の本をピックアップしていきまっす。

ちなみに、Kindle版のある本ならサンプル送信で試し読み可能。大概目次まで見れるので、内容の概要もつかめるので、サンプル試読おすすめです。

 

リファクタリング・コーディング技術の本 人気の参考書 5冊

以下が今人気(売れ筋)のリファクタリング関連の本の5冊の詳細です。

(2021/05/18 更新)
Rank製品評価
1
(4.5)
総評価数 274件
2
増補改訂版 Java言語で学ぶデザインパターン入門
発売日 2014/03/12
通常    4,180円
単行本   4,180円 (+42pt)
Kindle   4,180円 (+2090pt)
(4.3)
総評価数 76件
3
(4)
総評価数 67件
4
独習デザインパターンC++
発売日 2015/03/27
通常    4,114円
単行本   4,114円
Kindle   3,600円 (+36pt)
(3.4)
総評価数 5件
5
リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)...
発売日 2019/12/01
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,598円 (+84pt)
(4.6)
総評価数 23件

 

「リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)」

「美しいコードを見ると感動する。優れたコードは見た瞬間に何をしているかが伝わってくる。そういうコードは使うのが楽しいし、
自分のコードもそうあるべきだと思わせてくれる。本書の目的は、君のコードを良くすることだ」(本書「はじめに」より)。

コードは理解しやすくなければならない。本書はこの原則を日々のコーディングの様々な場面に当てはめる方法を紹介します。
名前の付け方、コメントの書き方など表面上の改善について。コードを動かすための制御フロー、論理式、変数などループとロジックについて。
またコードを再構成するための方法。さらにテストの書き方などについて、楽しいイラストと共に説明しています。

日本語版ではRubyやgroongaのコミッタとしても著名な須藤功平氏による解説を収録。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
コメントとコードの2つについて書かれています。

コメントについては、必要・不必要の分類があって、必要なものについてそれぞれ解説がついています。例えば、頭の中で考えたことを書きなさいね!とか。
コードは、表記のルールつくれよ、とか、リファクタリングなど。

自分は、コードは我流でやってきたところがあるので結構勉強になりました。
特に、
・関数とか変数の名前は意味がわかるようにつける
・コメントにtodoを書く
・頭の中で考えたことはどんどんメモする
とか。

上に列挙したものについて「そんなの当たり前だよ。」っていう人は読む必要ないかもしれないすね。 (参考:Amazon)

↓全て表示 ↑少なく表示
このコードどうなの?と思い始めた人向けの本です。

業務で、他人が作ったコードを読め、動作するコードも書けています。
しかし、他人のコードは読みにくかったりしませんか?
また、自分のコードは見直して理解しやすいでしょうか?
そんな悩みの解決につながる内容になっています。
例えば以下の内容等があります。
・誤解されない変数名のつけ方
・コードを論理的な段落に分ける書き方
・returnを早めるガード節の考え方

どこかで聞いたことがあるかもしれません。それらの体系的な理解に役立ちます。
相手に伝わるコードが書けているかな?と悩みのある人にお薦めの本です。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
  

「増補改訂版 Java言語で学ぶデザインパターン入門」

歴史を変えた1冊、待望の改訂版誕生。

※この電子書籍は、「固定レイアウト型」で配信されております。説明文の最後の「固定レイアウト型に関する注意事項」を必ずお読みください。

※この電子書籍には付録DVDのデータは含んでおりません。電子書籍に記載のURLからPCでダウンロードしてお使い下さい。

「この本で初めてデザインパターンが理解できた」「UMLとイラストを交えた解説がとてもわかりやすい」と、多くの読者から絶賛された大ロングセラーの増補改訂版。原典『デザインパターン』で紹介された全23のパターンを、Javaによる実装を含めて解説。

2001年6月の初版刊行以来、「最もわかりやすいデザインパターン解説書」と、多くの読者から支持されてきた前著の増補改訂版です。改訂にあたっては、前著の内容を全面的に見直して、文章や表記をより適切な表現に改めています。また、デザインパターンについて、読者が誤解しやすい点、間違いやすい点を、「Q&A」として追加しています。デザインパターンについて学び、実践で利用したいプログラマはもちろん、オブジェクト指向の本質を理解したい人に最適の1冊です。

●目次
はじめに
UMLについて
デザインパターンを学ぶ前に
デザインパターンに慣れる
第1章 Iterator ― 1つ1つ数え上げる
第2章 Adapter ― 一皮かぶせて再利用
サブクラスにまかせる
第3章 Template Method ― 具体的な処理をサブクラスにまかせる
第4章 FactoryMethod ― インスタンス作成をサブクラスにまかせる
インスタンスを作る
第5章 Singleton ― たった1つのインスタンス
第6章 Prototype ― コピーしてインスタンスを作る
第7章 Builder ― 複雑なインスタンスを組み立てる
第8章 Abstract Factory ― 関連する部品を組み合わせて製品を作る
分けて考える
第9章 Bridge ― 機能の階層と実装の階層を分ける
第10章 Strategy ― アルゴリズムをごっそり切り替える
 ほか

固定レイアウト型に関する注意事項(必ずお読みください)
この電子書籍は、全ページ画像の「固定レイアウト型」で配信されております。以下の点にご注意し、購入前にプレビュー表示をご確認の上、ご購入ください。

■使用できない機能
・文字拡大(ピンチイン・ピンチアウトは可能ですが、画面におさまらない場合は画面をスワイプ)/文字のコピー/マーク/ハイライト/文字列検索/辞書の参照/Web検索/引用

■推奨環境
・タブレットなど大きいディスプレイを備えた端末
・Wi-Fiネットワーク経由でのダウンロード(Kindle端末の場合)

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
拙者プログラミング初心者、
デザインパターンのデの字しか知らないのに、
友人たちがシングルトンが好きだのファクトリーだというから悔しくなって
デザインパターン本を買ってみた

古めの本にもかかわらず、
ランキングで高い位置に居るだけ合って内容はとてもわかりやすく、
サクサク読み進めることができた。

卍デザインパターン完全に理解した卍

とてもおすすめです。 (参考:Amazon)

↓全て表示 ↑少なく表示
Javaを仕事で使用していて、それなりの規模のプログラムを開発するとき、デザインパターンの知識は必須です。
特に、既存のプログラムの保守や拡張をするとき、既存のプログラムがデザインパターンを利用しているかどうか見分けて、そのパターンの意図を理解できないといけません。
逆に、パターンを知っていると、コード内にパターンを示す命名や使われていたり、コメントが残されていると、それだけで何をしているコードなのか理解も推測もしやすいです。
この本はまずパターンを利用するプログラム例を解説し、その後で抽象的な説明となっています。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
増補改訂版 Java言語で学ぶデザインパターン入門
発売日 2014/03/12
通常 4,180円
現在 4,180円

  

「エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング」

(概要)
「コミュニケーションにおける不確実性を減らすには?」
「技術的負債を解消する方法とは?」
「経営陣とエンジニア間の認識のずれを解消するには?」
エンジニアリングにおける課題を解決する思考の整理方法やメンタリング手法を,さまざまな企業の技術組織アドバイザリーを務めている著者が解説。若手を戦力として育て上げ,成長する組織を設計・運営するためにおすすめの1冊です。

(こんな方におすすめ)
・開発チームの生産性を上げたいエンジニア
・社内組織を改善したい経営者

(目次)
Chapter 1 思考のリファクタリング

1-1 すべてのバグは,思考の中にある
1-2 不確実性とエンジニアリング
1-3 情報を生み出す考え方
1-4 論理的思考の盲点
1-5 経験主義と仮説思考
1-6 全体論とシステム思考
1-7 人間の不完全さを受け入れる
Chapter 2 メンタリングの技術

2-1 メンタリングで相手の思考をリファクタリング
2-2 傾聴・可視化・リフレーミング
2-3 心理的安全性の作り方
2-4 内心でなく行動に注目する
Chapter 3 アジャイルなチームの原理

3-1 アジャイルはチームをメンタリングする技術
3-2 アジャイルの歴史
3-3 アジャイルをめぐる誤解
3-4 アジャイルの格率
Chapter 4 学習するチームと不確実性マネジメント

4-1 いかにして不確実性を管理するか
4-2 スケジュール予測と不確実性
4-3 要求の作り方とマーケット不安
4-4 スクラムと不安に向き合う振り返り
Chapter 5 技術組織の力学とアーキテクチャ

5-1 何が技術組織の“生産性”を下げるのか
5-2 権限委譲とアカウンタビリティ
5-3 技術的負債の正体
5-4 取引コストと技術組織
5-5 目標管理と透明性
5-6 組織設計とアーキテクチャ

↓全て表示↑少なく表示
 
Users Voice
システム思考という物の考え方がある。
この本はソフトウェア開発の文脈でシステム思考を獲得するための本であり、
そのような前提が無いとこの本は何も語っていないように見えるかもしれない。

システム思考とは、組織のような複数の要素が絡み合う場における問題解決の際に
その原因を特定の要素(誰それが悪い、仕様の品質が低いなど)に見出すのではなく
「システム」全体の構造に見出すことによって全体最適化を達成するという考え方である。
優秀なマネージャはほぼこの考え方を持っているといえると思う。

しかしシステム思考をうまく稼働させるためには
今現場で起きていることを高い解像度で認識することが必須となる。
表面的に見えている問題(プロジェクトの遅延、品質の低下など)の裏で起きている
本当の問題を透視するための言わば解剖図や骨格標本のような知識が必要になるのだ。

本書はそのようなソフトウェア開発の現場で起きる問題を理解するための
骨格を様々な角度から見事に言語化してくれた。
これは過去他のどの書籍も行っていないことだと思う。

何か即効性のあるアクションを求めているのならこの本を読んでも期待はずれに終わると思う。
問題を深く正しく理解するためのツールを求めているであればこの本は最適だろう。 (参考:Amazon)

↓全て表示 ↑少なく表示
組織の成長のため、仕組みの作り方とメンバーのメンタリングについて書いている。実践方法よりも考え方を変えるためのインプットとしてよさそう。
読む前は、職制とか命令指揮系統、ソフトウェア開発手法、のような内容が書いてあると思ってた。それよりも概念的というか考え方を知りたいときに読むのがよいと思う。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
  

「独習デザインパターンC++」

独習デザインパターンC++
(著)株式会社テクノロジックアート
発売日 2015/03/27
(3.4)

【本電子書籍は固定レイアウトのため7インチ以上の端末での利用を推奨しております。文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。ご購入前に、無料サンプルにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください】

実践的なプログラミング技法の基礎から実装まで!

デザインパターンを「使うことができる」ためには、デザインパターンの構造や仕組みを知っているだけでは充分ではありません。「どのような状況」で「どんなふう」に使うのが効果的なのかを充分に理解している必要があります。そこで本書では、パターンの使いどころと効果をわかりやすく示すことで、どのようなときにどんなふうにデザインパターンを使えばよいのかを理解できるようにしています。

※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。


↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
デザインパターンの名著といえば、 (参考:Amazon)

↓全て表示 ↑少なく表示
本書ですが,C++ベースでのデザインパターンの入門書レベルの内容で,
C++を使う者にとっては大変有難いのですが,残念ながら以下の理由から
初版の内容ではお勧めし辛いです。

まず最初に UMLの表記に関する簡単な解説と,オブジェクト指向の概念についての
説明があり, その後,デザインパターンの使用頻度別(高・中・低)に分けて,
各パターンが以下の構成で紹介されています。

・パターン適用前のソースコード
・パターン適用後のソースコード(大半は複数)
・パターン適用後のクラス図

各パターンの紹介で使用しているプログラムは,実処理が無い簡単なコードですが,
それにも拘らず,メソッド名やクラス名の平凡な間違いが非常に多く,コンパイルが
通らないことが多々あります。★-1

また,パターン適用後のコードが各ページに部分ごとに散在しており見辛いです。
当然,実際に動作させてみる場合も,読者が自分で散在したコードをまとめ上げる
必要があり,結構労力を要します。巻末もしくはせめてWeb上に,コード一覧を
早急に用意して欲しいです。★ -1

なお,「パターン適用後のクラス図」の説明についても一部誤植がありましたが,
こちらは初版のため仕方ないか…というレベルでした。

本書に掲載されているプログラム自体は,「独習C++」で勉強したことがある読者
であれば読みこなせる内容で,C++ベースのデザインパターンの入門レベルとしては
良いと思いますので,早期の訂正とコード一覧の掲載を強く望みます。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
独習デザインパターンC++
発売日 2015/03/27
通常 4,114円
現在 3,600円
514円(12%)OFF!!

  

「リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)」

ソフトウェア開発の名著、第2版登場!
リファクタリングは、ソフトウェアの外部的な振る舞いを保ったままで、内部の構造を改善する作業を指します。本書はリファクタリングのガイドブックであり、リファクタリングとは何か、なぜリファクタリングをすべきか、どこを改善すべきか、実際の事例で構成され、ソフトウェア開発者にとって非常に役立つものとなっています。
本第2版では、約20年前のオリジナル原稿の構成は変わらないものの、大幅に書き換えられているほか、サンプルコードがJavaからJava Scriptになるなど、現代的にアレンジされています。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
1版、Java版は蔵書としてあるのですが。所属している会社ではフロントエンド寄りの業務が多く、プログラムというとwebでJavaScriptのみ(たまにPHP)で完結することが多い環境にいる人です。

JSで1ファンクションが長くても100行、200行程度、ランディングページとかで継続的メンテナンスは求められない。
なのでどうしても「ベタ書き、とりあえず動けばいい、なるはやで」というコーディングが重宝される。
そんな環境です。(でした?かな。それだけではやっていけなくなっているので)

はい。”ブラックボックス”だらけです。大半のコードを書いた人たちはもう社内にいません、よくある話です。
・長大なファンクションを、入れ子ファンクションできりわける
・一時変数の特定、いらないやつは撲滅
・異常系の検出がおろそかだったので、オブジェクト自身に異常検出機能をつけてみた
などを、「夏休みの宿題・工作」みたいな感じでメンバといっしょに取り組んでいます。

本書について。
文章の言い回しは固くはないのですが、あつかっている処理ちょっと難しい話なので、誰でもがさらっとよめる本ではないようです。しかしサンプルがJavaScriptなので、とりあえず「記載されているコードの意味」はわかってもらえているようです。

最後に。
本書に盲従する必要はないとは思います。いろんなスタイルの一例です。
ただ、本書を通じることで、ある程度の共通認識を持ったうえで、コーディング職人の間での意見交換や価値観論争などは良いことかな、と思いました。

最後の最後に。
急激な変化を嫌う人もいるので、「押し売り」にならないように気を付けて。 (参考:Amazon)

↓全て表示 ↑少なく表示
自分はすでに数年開発経験があったので、ほとんど既知だったり常識だったりという内容でしたが、
コードの問題点とその解決法が具体的かつ豊富に載っているので、プログラミング経験数ヶ月から半年ぐらいの初心者はこの本を写経すると結構実力が付くんじゃないかな、と思いました。
もし自分が記憶を消してもう一度プログラミングを学ぶとしたら、間違いなく早い段階での必読書として選びます。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
  

 

   

リファクタリング・コーディング技術の本 高評価のおすすめの5冊

以下が高評価のおすすめのリファクタリング関連の本の5冊の詳細です。

(2021/05/18 更新)
Rank製品評価
1
リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)...
発売日 2019/12/01
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,598円 (+84pt)
(4.6)
総評価数 23件
2
リファクタリング 既存のコードを安全に改善する(第2版)...
発売日 2019/12/06
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,356円 (+44pt)
(4.6)
総評価数 22件
3
(4.3)
総評価数 51件
4
(4.3)
総評価数 18件

 

「リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)」

ソフトウェア開発の名著、第2版登場!
リファクタリングは、ソフトウェアの外部的な振る舞いを保ったままで、内部の構造を改善する作業を指します。本書はリファクタリングのガイドブックであり、リファクタリングとは何か、なぜリファクタリングをすべきか、どこを改善すべきか、実際の事例で構成され、ソフトウェア開発者にとって非常に役立つものとなっています。
本第2版では、約20年前のオリジナル原稿の構成は変わらないものの、大幅に書き換えられているほか、サンプルコードがJavaからJava Scriptになるなど、現代的にアレンジされています。

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
1版、Java版は蔵書としてあるのですが。所属している会社ではフロントエンド寄りの業務が多く、プログラムというとwebでJavaScriptのみ(たまにPHP)で完結することが多い環境にいる人です。

JSで1ファンクションが長くても100行、200行程度、ランディングページとかで継続的メンテナンスは求められない。
なのでどうしても「ベタ書き、とりあえず動けばいい、なるはやで」というコーディングが重宝される。
そんな環境です。(でした?かな。それだけではやっていけなくなっているので)

はい。”ブラックボックス”だらけです。大半のコードを書いた人たちはもう社内にいません、よくある話です。
・長大なファンクションを、入れ子ファンクションできりわける
・一時変数の特定、いらないやつは撲滅
・異常系の検出がおろそかだったので、オブジェクト自身に異常検出機能をつけてみた
などを、「夏休みの宿題・工作」みたいな感じでメンバといっしょに取り組んでいます。

本書について。
文章の言い回しは固くはないのですが、あつかっている処理ちょっと難しい話なので、誰でもがさらっとよめる本ではないようです。しかしサンプルがJavaScriptなので、とりあえず「記載されているコードの意味」はわかってもらえているようです。

最後に。
本書に盲従する必要はないとは思います。いろんなスタイルの一例です。
ただ、本書を通じることで、ある程度の共通認識を持ったうえで、コーディング職人の間での意見交換や価値観論争などは良いことかな、と思いました。

最後の最後に。
急激な変化を嫌う人もいるので、「押し売り」にならないように気を付けて。 (参考:Amazon)

↓全て表示 ↑少なく表示
自分はすでに数年開発経験があったので、ほとんど既知だったり常識だったりという内容でしたが、
コードの問題点とその解決法が具体的かつ豊富に載っているので、プログラミング経験数ヶ月から半年ぐらいの初心者はこの本を写経すると結構実力が付くんじゃないかな、と思いました。
もし自分が記憶を消してもう一度プログラミングを学ぶとしたら、間違いなく早い段階での必読書として選びます。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
  

「リファクタリング 既存のコードを安全に改善する(第2版)」

※このKindle本はプリント・レプリカ形式で、Kindle Paperwhiteなどの電子書籍リーダーおよびKindle Cloud Readerではご利用いただけません。Fireなどの大きいディスプレイを備えたタブレット端末や、Kindle無料アプリ (Kindle for iOS、Kindle for Android、Kindle for PC、Kindle for Mac) でのみご利用可能です。また、文字列のハイライト、検索、辞書の参照、引用については、一部機能しない場合があります。文字だけを拡大することはできません。
※プリント・レプリカ形式は見開き表示ができません。
※この電子書籍は紙版書籍のページデザインで制作した固定レイアウトです。

ソフトウェア開発の名著、第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 継承の取り扱い
文献リスト 
訳者あとがき
索引

↓全て表示↑少なく表示
 
内容サンプル

(引用元Amazon)

 
Users Voice
1版、Java版は蔵書としてあるのですが。所属している会社ではフロントエンド寄りの業務が多く、プログラムというとwebでJavaScriptのみ(たまにPHP)で完結することが多い環境にいる人です。

JSで1ファンクションが長くても100行、200行程度、ランディングページとかで継続的メンテナンスは求められない。
なのでどうしても「ベタ書き、とりあえず動けばいい、なるはやで」というコーディングが重宝される。
そんな環境です。(でした?かな。それだけではやっていけなくなっているので)

はい。”ブラックボックス”だらけです。大半のコードを書いた人たちはもう社内にいません、よくある話です。
・長大なファンクションを、入れ子ファンクションできりわける
・一時変数の特定、いらないやつは撲滅
・異常系の検出がおろそかだったので、オブジェクト自身に異常検出機能をつけてみた
などを、「夏休みの宿題・工作」みたいな感じでメンバといっしょに取り組んでいます。

本書について。
文章の言い回しは固くはないのですが、あつかっている処理ちょっと難しい話なので、誰でもがさらっとよめる本ではないようです。しかしサンプルがJavaScriptなので、とりあえず「記載されているコードの意味」はわかってもらえているようです。

最後に。
本書に盲従する必要はないとは思います。いろんなスタイルの一例です。
ただ、本書を通じることで、ある程度の共通認識を持ったうえで、コーディング職人の間での意見交換や価値観論争などは良いことかな、と思いました。

最後の最後に。
急激な変化を嫌う人もいるので、「押し売り」にならないように気を付けて。 (参考:Amazon)

↓全て表示 ↑少なく表示
自分はすでに数年開発経験があったので、ほとんど既知だったり常識だったりという内容でしたが、
コードの問題点とその解決法が具体的かつ豊富に載っているので、プログラミング経験数ヶ月から半年ぐらいの初心者はこの本を写経すると結構実力が付くんじゃないかな、と思いました。
もし自分が記憶を消してもう一度プログラミングを学ぶとしたら、間違いなく早い段階での必読書として選びます。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
リファクタリング 既存のコードを安全に改善する(第2版)
発売日 2019/12/06
通常 4,840円
現在 4,356円
484円(10%)OFF!!

  

「レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス」

■「ITエンジニア本大賞 2020」技術書部門大賞受賞!

レガシーコードとは、バグを多く含み、壊れやすく拡張が難しいコードを指します。
このようなコードの保守と管理には多大な労力がつぎ込まれることになります。
しかも一度作ってしまったレガシーコードの質を上げるには、初めから質の高いコードを作るよりも膨大なコストがかかります。

本書では、ソフトウェア開発において、初めからレガシーコードを作りださないためのプラクティスを9つ挙げて解説します。
プロダクトオーナーは目的を語り、やり方は開発者に任せること、小さなバッチで開発を進めること、継続的に統合すること、チームメンバーで協力することなど、日々の開発に取り入れる考え方と具体的な実践について各章で分かりやすく解説します。
信頼性や拡張性が高いソフトウェアをリリースしたい開発者、運用管理者、マネージャに必携の一冊です。

↓全て表示↑少なく表示
 
Users Voice
ベストセラーになってますし、すでに読まれた方も多いと思います。間違いなく定番本の一つです。
著者がXP(エクストリームプログラミング)のコーチらしく、述べられているプラクティスの多くはXP由来となっています。
ただ、アジャイル開発手法に変わりはありませんので、スクラムでも適用できる内容です。ウォータフォール?そんな開発手法は存在しませんよ?
副題の9つのプラクティスは以下の通りです。

- やり方より先に目的、理由、誰のためかを伝える
- 小さなバッチで作る
- 継続的に統合する
- 協力しあう
- 「CLEAN」コードを作る
- まずテストを書く
- テストでふるまいを明示する
- 設計は最後に行う
- レガシーコードをリファクタリングする

自分のプロジェクトでも、これらのプラクティスは(ややアレンジはあるものの)実施しており、適切なシステム開発を行うためのミニマムセットになっています。
逆に、できてないものがある場合は、そのシステム開発は何らかの問題を抱えているということになります。
プロジェクト管理者はもちろん、システム開発に関わる全ての人が知っておくべき内容が詰まっています。
システム開発プロジェクトの新規参画者に対しては、オンボーディングで最初に読んでもらうのがいいと思います。 (参考:Amazon)

↓全て表示 ↑少なく表示
C言語やBASIC言語は学校の座学で知っている程度、営業職などを経て、ここ最近、実務でjQueryありきのJavaScriptコードを数年ほど扱っている末端コーディング人です。

読んだ後の感想。
「自社の財産」とされているコードの大半(率直にいうとほとんど全部)が、この本で言われている「レガシーコード」だと気づくことができました。
オーダーされて旧コードに「機能拡張」などもしているのですが、それがハック的に割り込みしているだけだと自覚できました。

雑談などでもしゃべりやすい同僚から先に、本書を布教しています。わりと共感してもらえて、半年後が楽しみです。

目先の目標としては
・マネージメントの人にも読んでもらう
・本書から共通認識として取り入れられそうなことを、チームとして共有してとりくむ
・会社の経費でオライリー本を買ってもらう

というところです。
今の私にとっては、得るものが多すぎる、とても良い本です。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
  

「モダンC言語プログラミング 統合開発環境、デザインパターン、エクストリーム・プログラミング、テスト駆動開発、リファクタリ...」

C言語開発をモダンにしよう!

本書は、統合開発環境、デザインパターン、エクストリーム・プログラミング、テスト駆動開発、リファクタリング、継続的インテグレーションなどのモダンな開発スタイルを組込み開発に適用する方法を解説します。

↓全て表示↑少なく表示
 
Users Voice
組込み系開発では、このご時世になってもC言語が主流です。
そのため、C言語に関する書籍は数多く出版されていますが、着目する箇所が他の書籍と異なります。
特に、以下の点です。
・環境構築法の記載
・オブジェクト指向的な実装方法
・ツールを活用した開発方法

・環境構築法の記載
環境構築の方法がしっかり記述されていることに驚きました。
書籍によって、各自で構築というケースも少なくないため、手間取ることも多かったと思います
本書では、様々なツールの導入方法がキャプチャ画像付きでしっかり記述されていました。
非常に助かりました。

・オブジェクト指向的な実装方法
エンプラ系では、オブジェクト指向が主流のご時世ですが、C言語でうまく実装できないか悩んでいました。
本書では、多態性や継承、デザインパターンなどをC言語で記述する方法がしっかり記述されています。
特に、C言語を極めたいエンジニアには良いと感じました。

・ツールを活用した開発方法
一番勉強になった点は、ツールの活用方法がしっかりかかれている点でした。
特に、googletest、カバレッジ測定、Valgrindの使い方は、組み込み系エンジニアなら役に立つはずです。
著者の目の付け所がすごいです。

一通り読んでみて、C言語を使いつづけるエンジニアには、読むべき書籍です。
著者の10年分の知識が、一瞬で身に付きます。

なお、対象はC言語中級レベルだとスラスラ読めます。 (参考:Amazon)

↓全て表示 ↑少なく表示
2回通して読みました。自分には大当たりの技術書です。

C言語、という書名ですが、C言語に固有の本ではありません。
ソフト設計に共通して当てはめられる本質的な考え方やノウハウが、
Cを例に使って説明されてる、というのが正しいです。(実際この著者はJavaの本も書いてるようです)

恐らく、10年以上 真剣に設計に向き合ったソフト屋しか知り得ないようなノウハウが
惜しげもなく詰め込まれています。
いくつかは、世のベテランも独自に会得して、いざという時の秘策や切り札にしているような知識まであるのでは…。

理論倒れでなく、開発の現場で地に足を着けて苦労の末に気づく本質、
あるいは余程のことがなければ他人には教えないような秘訣も、書いてしまっているようです。

年寄りと見なされつつ、経験とノウハウで必死に若い理解力や柔軟性に負けじと踏ん張る身としては
こんなことまで教えてしまったら困る、という思いさえ心をよぎらずには居れません。
数千円で、誰でも買えてしまって良いものか。

そう言う自分自身も、今まで洞察しえなかった知識を多く得て、何というか、
著者には感謝のような思いも感じます

良書、と言ってよいと思います。 (参考:Amazon)

↓全て表示 ↑少なく表示
 
  

 

リファクタリング本「Kindle Unlmited 読み放題 人気ランキング」

「Kindle Unlimited」は、Amazonの定額本読み放題サービス。

実はそこにリファクタリングの本もそこそこあるんです。すなわち、定額で何冊も学習することも可能

Kindle Unlimitedの主な特徴としては、おおよそ以下の通り。

  • 雑誌がかなり充実
  • 豊富なKindle個人出版本がほとんど読み放題
  • 最近は出版社単行本も対応増加

個人的には雑誌が、IT系(CG WORLD等)、ガジェット系(Get Navi等)、ゲーム(ファミ通等)、など見たい雑誌が幅広く読めるのが大きな魅力。2冊以上読みたいものがあるだけで確実にお得です。

また、30日無料体験も可能なので、体験期間を利用して無料で学習してみるのもお得な学習法です。

以下がKindle Unlimited対応のリファクタリング関係の本人気ランキングです。

(2021/05/18 更新)
Rank製品評価
1
(4.2)
総評価数 4件
2
(3.8)
総評価数 3件

 

   

関連:オブジェクト指向プログラミング・デザインパターンを学ぶ

コードの品質を上げるリファクタリング知識とともに重要なのが、プログラム設計に関する知識です。

安全・堅牢・再利用性の高い設計ができることで、プログラムの保守や拡張性高く運用していくことが可能。

以下では、設計の重要な要素となる「オブジェクト指向プログラミング(OOP)」「デザインパターン」に関する書籍を紹介しています、合わせてのぞいて見てください。

 

関連:最新おすすめのKindle端末

以下では最新のKindle端末について比較、おすすめ紹介しています、合わせてのぞいて見てください。

いじょうでっす。

コメント

タイトルとURLをコピーしました