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

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

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

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

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

 

Contents

 

Kindle Unlimited 1ヶ月無料

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


    

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

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

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

 

(2021/02/26 更新)
売筋
Rank
製品評価
1
(4.5)
総評価数 214件
2
増補改訂版Java言語で学ぶデザインパターン入門 大型本
発売日 2004/06/19
通常    4,180円
単行本   4,180円 (+237pt)
Kindle   3,762円 (+38pt)
(4.3)
総評価数 76件
3
レガシーコード改善ガイド (Object Oriented SELECTION)
発売日 2016/01/15
通常    4,620円
単行本   4,620円 (+46pt)
Kindle   4,158円 (+42pt)
(4.7)
総評価数 21件
4
Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gearシリーズ...
発売日 2015/09/24
通常    4,180円
単行本   4,180円 (+42pt)
Kindle   2,090円 (+21pt)
(4.5)
総評価数 15件
5
(4.1)
総評価数 69件
6
(4.2)
総評価数 47件
7
リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)...
発売日 2019/12/01
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,598円 (+84pt)
(4.4)
総評価数 16件
8
独習デザインパターンC++
発売日 2015/03/27
通常    5,575円
単行本   1,477円
Kindle   3,600円 (+36pt)
(3.5)
総評価数 4件
9
リファクタリング:Rubyエディション
発売日 2010/02/27
通常    7,737円
単行本   3,404円
(5)
総評価数 2件
10
リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)...
発売日 2019/12/06
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,356円 (+44pt)
(4.3)
総評価数 14件
11
Code Complete 第2版 上 完全なプログラミングを目指して
発売日 2005/03/26
通常    6,710円
単行本   6,710円 (+67pt)
Kindle   6,375円 (+64pt)
(4.5)
総評価数 41件
12
新装版 リファクタリング 既存のコードを安全に改善する...
発売日 2017/07/15
通常    4,190円
単行本   3,956円
Kindle   4,158円 (+42pt)
(4.1)
総評価数 15件
13
(4.4)
総評価数 13件
14
(3.4)
総評価数 32件
15
Java言語で学ぶリファクタリング入門 大型本
発売日 2007/01/27
通常    3,520円
単行本   132円
Kindle   3,520円 (+35pt)
(4.3)
総評価数 11件
16
(4)
総評価数 31件
17
(4.4)
総評価数 13件
18
(4)
総評価数 5件
19
(3.8)
総評価数 3件
20
(3.9)
総評価数 10件

 

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

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

 

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

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

(2021/02/26 更新)
売筋
Rank
製品評価
1
(4.5)
総評価数 214件
2
増補改訂版Java言語で学ぶデザインパターン入門 大型本
発売日 2004/06/19
通常    4,180円
単行本   4,180円 (+237pt)
Kindle   3,762円 (+38pt)
(4.3)
総評価数 76件
3
レガシーコード改善ガイド (Object Oriented SELECTION)
発売日 2016/01/15
通常    4,620円
単行本   4,620円 (+46pt)
Kindle   4,158円 (+42pt)
(4.7)
総評価数 21件
4
Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gearシリーズ...
発売日 2015/09/24
通常    4,180円
単行本   4,180円 (+42pt)
Kindle   2,090円 (+21pt)
(4.5)
総評価数 15件
5
(4.1)
総評価数 69件

 

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

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

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

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

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

(引用元Amazon)

 
Users Voice
このコードどうなの?と思い始めた人向けの本です。

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

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

↓全て表示 ↑少なく表示
コメントとコードの2つについて書かれています。

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

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

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

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

(引用元Amazon)

 
  

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

さらにわかりやすくなった! デザインパターン入門書の決定版!!

GoFの『デザインパターン』で紹介された23個のパターンを、オブジェクト指向の初心者にもわかるようにやさしく解説。
すべてのパターンについて、Javaのサンプルプログラムを掲載。「デザインパターンQ&A」を新たに加筆。


●第1部 デザインパターンに慣れる

第1章 Iterator--1つ1つ数え上げる
第2章 Adapter--一皮かぶせて再利用

●第2部 サブクラスにまかせる

第3章 Template Method--具体的な処理をサブクラスにまかせる
第4章 Factory Method--インスタンス作成をサブクラスにまかせる

●第3部 インスタンスを作る

第5章 Singleton--たった1つのインスタンス
第6章 Prototype--コピーしてインスタンスを作る
第7章 Builder--複雑なインスタンスを組み立てる
第8章 Abstract Factory--関連する部品を組み合わせて製品を作る

●第4部 分けて考える

第9章 Bridge--機能の階層と実装の階層を分ける
第10章 Strategy--アルゴリズムをごっそり切り替える

●第5部 同一視

第11章 Composite--容器の中身の同一視
第12章 Decorator--飾り枠と中身の同一視

●第6部 構造を渡り歩く

第13章 Visitor--構造を渡り歩きながら仕事をする
第14章 Chain of Responsibility--責任のたらい回し

●第7部 シンプルにする

第15章 Facade--シンプルな窓口
第16章 Mediator 相手は相談役一人だけ

●第8部 状態を管理する

第17章 Observer--状態の変化を通知する
第18章 Memento--状態を保存する
第19章 State--状態をクラスとして表現する

●第9部 無駄をなくす

第20章 Flyweight--同じものを共用して無駄をなくす
第21章 Proxy--必要になってから作る

●第10部 クラスで表現する

第22章 Command--命令をクラスにする
第23章 Interpreter--文法規制をクラスで表現する

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

(引用元Amazon)

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

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

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

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

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

↓全て表示 ↑少なく表示
 
増補改訂版Java言語で学ぶデザインパターン入門 大型本
発売日 2004/06/19
通常 4,180円
現在 4,180円

  

「レガシーコード改善ガイド (Object Oriented SELECTION)」

保守開発のためのリファクタリング!

本書は、システム保守の現場でありがちな、構造が複雑で理解できないようなコードに対する分析手法・対処手法について解説します。つまり、「コードを理解し、テストできるようにし、リファクタリングを可能にし、機能を追加できるテクニックを紹介している書籍です。

本書には、以下のことが記載されています。
●仕様が分からないコードの分析方法
●仕様が分からないコードの修正方法、またテストコードの追加方法
●コードの修正で、疎結合な設計に部分的に改善する方法

また、本書には、以下のことは記載されていません。
●COBOLなどで記述されているメインフレーム上のアプリケーションの改修方法

【 対象読者】
●現行のシステムが仕様が分からず保守作業に悩む、保守担当者
●現行のシステムの修正作業は可能であるもののデグレーションに悩む、保守担当者
●疎結合な設計手法を知りたい技術者

本書はJava、C、C++でサンプルを記述していますが、記載されているテクニックは言語依存するものではないため、他の言語(Delphi、Visual Basic、COBOL、FORTRAN)でも使えます。

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


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

(引用元Amazon)

 
Users Voice
レガシーコードと聞いてイメージしたのは「仕様書も無く、設計やコーディングもメチャクチャ、おまけに当時の開発者はすでにいない。しかし重要なシステムであるためトラブル対応や改造は続けなければいけないこの上なく保守しにくい、担当者泣かせのソースコード」というものでした。しかし、本の帯にもあるように、ここでは自動化テストのないコードを「レガシーコード」と定義しています。

私がイメージしていたような「レガシーコード」には私自身、実際に泣かされることも多いため、「銀の弾丸」的なテクニックが載っていないかと期待していましたが、残念ながらこの本からはそのようなテクニックは見つかりませんでした。
この本が主にターゲットとしているのは、「ある程度オブジェクト指向設計に基づいたソースコード」です。オブジェクト指向ではコーディングされにくいVB/VBAや、JavaやC#なのに活用されている言語機能はC言語止まり、といったコードにはあまり向いていないかもしれません。
こういうケースはやはり地道に解析するしかないんですかね・・・。

とはいえ、星は5つです。
改めて自動化テストの重要性を確認する事ができましたし、テストを優先してメソッドの可視性をあえて上げる、といった発想が新鮮でした。
この本で書かれているリファクタリング技法はマーティンファウラーの「リファクタリング」と重なる部分も多いですが、それでも「テストのためのリファクタリング」という視点が新しいと思います。
そして何より「既存のコード」への対処方法をメインに扱った書籍というのは前例がないと思います。この本を読めば間違いなく、これまでにはなかったプログラムに対する新しい視点を持つ事が出来るようになるでしょう。

P.S.
保守開発に苦労している方はこちらの本も参考になるかもしれません。
=>  (参考:Amazon)

↓全て表示 ↑少なく表示
レガシーシステムとはテストの無いコードである。
→テストが無ければ安心してコードが変更できない。
→しかしテストで保護するには、多くの変更が必要になる。
→どうコードを変更し、いかにしてテスト可能にするか?

というストーリーで、テストを導入する方法を豊富な事例と共に紹介しています。
責務が多すぎるクラス、数百行に渡るモンスターメソッド、分岐だらけのロジックなど、現場では当たり前のように出てくる「残念なコード」に対し、解決策を提示しています。

サンプルコードはJavaとC++が大半ですが、私はPHPで実践しました。
オブジェクト指向言語ならこの考え方は汎用的に使えます。

特に役に立ったのは以下の考え方です。

* コードの保護が最優先。保護されたコードは後でいくらでも修正・改善できる。
* 保護するために一時的にコードが醜くなっても構わない。
* 既存のひどいコードを直すよりテストで保護されたパーツで置き換える方が、結局早いし、後々も楽である。
* 仕様が全く不明なコードでも、仕様を把握するためだけのテストを書けば理解が進む。

私は全くテストが無く、「不吉な匂い」で満たされたシステムを担当させられましたが、この本のやり方を知ることで自信を持ってエンハンスができるようになりました。

なお、この本の内容はTDD(テスト駆動開発)を未体験の人にはピンと来ないことが多いと思われます。
「テストを先に書いて後からコードを直す」という手法が当たり前のように使われるからです。
TDDのやり方を習得していないと、この本だけではどう実践していいかわからないかもしれません。
そのため、まずはTDDを習得してから読むことをお勧めします。 (参考:Amazon)

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

(引用元Amazon)

 
レガシーコード改善ガイド (Object Oriented SELECTION)
発売日 2016/01/15
通常 4,620円
現在 4,158円
462円(10%)OFF!!

  

「Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gear...」

開発経験に基づくパターン実践の極意!
パターン誕生の背景/エッセンス/適用条件/サンプルを解説。

ゲームプログラミングを含むソフトウェア開発の現場で、デザインパターンをより的確に利用するための解説書。著者は、米国大手ゲーム会社エレクトロニック・アーツでゲーム開発に従事。その経験に基づき、GoFや著者独自のパターンについて考察。より容易に変更できる洗練されたアーキテクチャ、ゲームに求められる実行速度といった視点を重視しつつ、幅広く応用できるパターンやゲーム必須のパターンを取り上げています。本書は、『Game Programming Patterns』の翻訳書です。米国アマゾンで60以上のレビューを集め、その9割が星5つと評価されています(2015年8月)。

【以下、本書イントロダクションより抜粋】
私がこの本で提供したいのは、解決策のメニューのようなものです。この本の各々の章では、単独でコードに適応可能なアイデアを解説しています。役立つものをメニューから選んで組み合わせることができます。

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

(引用元Amazon)

 
Users Voice
デザインパターン(設計パターン)の本です。
これを読んだからといって、ゲームを作れなかった人が作れるようになる本ではありません。
すでに作れる人が、より良い設計(拡張性が高いとか、不具合が出にくいとか、実行効率が良いとか)にするための本です。
内容は広く浅くという感じです。
学生や若手プログラマーの人におすすめです。

元祖デザインパターンで定番のコマンドパターン、オブザーバパターン、シングルトンパターン、ステートパターンなども載っていますし、ゲーム独自の設計パターンも載っています。
この本の良いところは、サンプルコードや説明がゲームに特化していることです。
よくあるデザインパターンの本は「概要はわかった。でも何が嬉しいのかわからない。実際にいつ使えば良いのかわからない。」という例・解説が多い気がするんですが、この本はゲームに特化してるので、例も具体的で使用方法やメリットがすぐ理解できます。

また、「デザインパターン最高!これを使えば万事解決!」みたいな押しつけはなくて、デメリットを詳しく併記している点も好感が持てます。

「データ局所化(データ指向)」など、わりと高度なトピックも載っていて、このあたりを読むと最近UnityがEntity Component Systemを推し進めようとしている理由がわかります。

翻訳も良好で読みやすかったです。

サンプルコードはすべてC++なので、C++がわからないと厳しいです(といっても、クラスとポインタさえわかっていれば大丈夫です)。 (参考:Amazon)

↓全て表示 ↑少なく表示
デザインパターンの本といえば結城浩さんのデザインパターン入門が有名ですが、わかりやすいものの面白くなく、デザインパターン自体つまらないものなのかなと思っていました。

しかしこの本はゲーム開発歴が長い作者が実際のゲーム開発で遭遇する問題をデザインパターンで解決していくというスタイルで、すべて例がゲームなのでゲームプログラミング好きにはめちゃくちゃ面白いです。
ステートパターンの章は自分が経験したことのある問題を扱っていた章なので、忘れようがないぐらい吸収できました。
パターンのデメリットや限界、実装上の注意やパターンの変形などについても詳しく扱っていて、実際に実装しようと思った時にかなり役立ちそうな感じです。

設計一般の話も載っており、第一章にあったこの文などがためになりました。
「あるゲームのアイデアが使い物になるかどうか知りたい段階で、アーキテクチャの整ったコードを書くのは、一種の賭けになってしまいます。そのアイデアが実際に画面に展開されて評価を受けるまでに時間がかかるだけでなく、もしもそのアイデアが使い物にならないと結論されたら、そのコードを構造化するためにかけた時間はまったくの無駄になってしまうのです。」

言語はC++ですが、オブジェクト指向言語が一つわかってれば読めるように書かれています。
話題自体が若干高度なのである程度プログラミング経験ある人向けですが、基本的に解説に不親切なところはなく、名著と言っていい本だと思いました。 (参考:Amazon)

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

(引用元Amazon)

 
  

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

「不確実性」を下げるための方法がわかります!

「コミュニケーションにおける不確実性を減らすには?」
「技術的負債を解消する方法とは?」
「経営陣とエンジニア間の認識のずれを解消するには?」

エンジニアリングにおける課題を解決する思考の整理方法やメンタリング手法を、
さまざまな企業の技術組織アドバイザリーを務めている著者が解説。
若手を戦力として育て上げ、成長する組織を設計・運営するためにおすすめの1冊です。

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

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

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

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

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

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

↓全て表示 ↑少なく表示
 
  

 

   

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

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

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

 

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

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

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

(引用元Amazon)

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

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

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

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

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

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

↓全て表示 ↑少なく表示
コードを書くうえでなんとなく汚い、綺麗でない、もっとよく書けるのでは?と疑問を持った時に読むととても参考になる本だと思います。2版になり現在の主流ともいえるJavascriptで書き直されている点も高評価の要因です。 (参考:Amazon)

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

(引用元Amazon)

 
  

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

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

↓全て表示↑少なく表示
 
  

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

※この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)

↓全て表示 ↑少なく表示
コードを書くうえでなんとなく汚い、綺麗でない、もっとよく書けるのでは?と疑問を持った時に読むととても参考になる本だと思います。2版になり現在の主流ともいえるJavascriptで書き直されている点も高評価の要因です。 (参考:Amazon)

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

(引用元Amazon)

 
  

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

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

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

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

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

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

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

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

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

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

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

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

↓全て表示 ↑少なく表示
 
  

 

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

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

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

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

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

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

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

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

(2021/02/26 更新)
売筋
Rank
製品評価
1
(4.2)
総評価数 4件
2
(1)
総評価数 1件

 

   

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

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

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

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

 

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

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

いじょうでっす。

コメント

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