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

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

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

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

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

 

Contents

 

Kindle Unlimited 1ヶ月無料

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


    

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

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

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

 

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

 

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

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

 

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

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

(2020/12/01 更新)
売筋
Rank
製品評価
1
(4.5)
総評価数 214件
2
Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gearシリーズ...
発売日 2015/09/24
通常    4,180円
単行本   4,180円 (+42pt)
Kindle   2,090円 (+21pt)
(4.5)
総評価数 13件
3
(4)
総評価数 67件
4
増補改訂版Java言語で学ぶデザインパターン入門 大型本
発売日 2004/06/19
通常    4,180円
単行本   4,180円 (+81pt)
Kindle   3,762円 (+38pt)
(4.3)
総評価数 76件
5
リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)...
発売日 2019/12/06
通常    4,840円
単行本   4,840円 (+48pt)
Kindle   4,356円 (+44pt)
(4.3)
総評価数 13件

 

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

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

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

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

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

(引用元Amazon)

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

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

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

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

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

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

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

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

(引用元Amazon)

 
  

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

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

ゲームプログラミングを含むソフトウェア開発の現場において、デザインパターンをより的確に利用するための解説書。

著者は、米国大手ゲーム会社エレクトロニック・アーツでゲーム開発に従事。
その経験に基づき、GoFや著者独自のパターンについて考察。

より容易に変更できる洗練されたアーキテクチャ、
ゲームに求められる実行速度といった視点を重視しつつ、
幅広く応用できるパターンやゲーム必須のパターンを取り上げています。

本書は、米国アマゾンで60以上のレビューを集め、その9割が星5つ。
『Game Programming Patterns』の翻訳書です。

プログラムの構成・構造を転換!
良いパターンはフレームワークや方法論を超える。


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

題名に「パターン」という言葉の入った本はどれも、「四人組」と呼ばれた
エリック・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシディーズの
『オブジェクト指向における再利用のためのデザインパターン』とはっきりした関連を持っています。

この本の題名を『ゲーム プログラミング パターンズ』としたからといって、
四人組の本がゲームの世界では役に立たないと言うつもりはありません。まったく逆です。
Part IIでは『・・・ためのデザインパターン』で解説されているパターンを数多く取り上げます。
ただし、ゲームプログラミングにどうすれば応用可能かに力点を置いています。

その一方で、私はこの本がゲーム以外のソフトウェアにも応用可能だと思っています。
本の題名を『続・デザインパターン』としてもよかったのですが、
ゲームを扱ったほうが魅力のある例が示せると考えました。
社員台帳や銀行口座についての本を書いても面白くありませんから。

そのようなわけで、この本で説明するパターンはどんなソフトウェアにも有用ですが、
とりわけゲームプログラミングで突き当たる難問を解決するのに役立つと思います。

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

(引用元Amazon)

 
内容サンプル

(引用元Amazon)

 
  

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

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

↓全て表示 ↑少なく表示
 
  

「増補改訂版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円

  

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

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

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

(引用元Amazon)

 
内容サンプル

(引用元Amazon)

 
  

 

   

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

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

(2020/12/01 更新)
売筋
Rank
製品評価
1
レガシーコード改善ガイド (Object Oriented SELECTION)
発売日 2016/01/15
通常    4,620円
単行本   4,620円 (+46pt)
Kindle   4,158円 (+42pt)
(4.7)
総評価数 21件
2
(4.5)
総評価数 214件
3
Code Complete 第2版 上 完全なプログラミングを目指して
発売日 2005/03/26
通常    6,710円
単行本   6,710円 (+67pt)
Kindle   6,375円 (+64pt)
(4.5)
総評価数 41件
4
増補改訂版Java言語で学ぶデザインパターン入門 大型本
発売日 2004/06/19
通常    4,180円
単行本   4,180円 (+81pt)
Kindle   3,762円 (+38pt)
(4.3)
総評価数 76件
5
(4.3)
総評価数 43件

 

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

レガシーコード改善ガイド (Object Oriented SELECTION)
(著)マイケル・C・フェザーズ
発売日 2016/01/15
(4.7)

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

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

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

また、本書には、以下のことは記載されていません。
●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!!

  

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

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

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

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

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

(引用元Amazon)

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

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

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

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

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

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

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

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

(引用元Amazon)

 
  

「Code Complete 第2版 上 完全なプログラミングを目指して」

 
内容サンプル

(引用元Amazon)

 
Users Voice
よりよいプログラミングを目指して書かれた書籍。分厚い。大量の文献が引用されており,読み応えが十分。
上下巻に分かれており,この上巻では主にプログラミングでの名前について解説されているのが印象的だった。

関数(ルーチン)の名前はどうすればいいか?変数名はどう書けばいいか?データ型やステートメントはどう使い分けるのがいいかなど,実際のプログラミングで誰しも一度は悩むような項目を扱っている。
たとえば,TotalDataとするか,DataTotalとしたほうがいいのか。

クリーンコードやリーダブルコードなど他のコーディングに関する本でもこうした項目に言及しているが,この本ほど網羅的で徹底的に議論されてはいない。おそらく,この本以上にコーディングについて徹底的に考察された本はないのではないかと思える内容だった。

p. 317の「11章 変数名の力」の冒頭の以下の言葉がこの本の本気度を伺わさせる。
「効果的なプログラミングにとって、よい名前というテーマは重要であるにもかかわらず、よい名前の作り方を10項目以上にわたって取り上げた本を読んだことはない。プログラミングに関する文献の多くは、省略形の選択に段落をいくつか割き、決まり文句でお茶を濁し、読者が自力で何とかやっていくことを期待する。本書はこれに真っ向から対抗し、良い名前に関する情報を使い切れないほど提供しようと考えている。」

値段は少々高いが,大量の文献,考察が書かれており,2005年出版とやや古いが,今でも通用するかなり有益な本だった。是非手元においておきたいと思える本だった。プログラミングするなら読んで損はしないと思う。 (参考:Amazon)

↓全て表示 ↑少なく表示
題名の通り、完璧なプログラミングコードを書くための指針をまとめたシリーズの上巻。
良いコードを書くために守るべき習慣(プラクティス)が次々と述べられており、自分で実践したくなることはもちろん、開発者仲間にも教えたくなるような事柄が満載である。
プログラミング言語は特に指定されておらず、例外は多少あるものの、基本的にどのプログラミング言語を使うときにでも共通に使用できるテクニックが中心に述べられている。
例として上げられている言語はVisual BasicとC/C++、それにJAVAが多いが、コードは簡単かつ明瞭に書かれているため、これらのプログラミング言語を使ったことがなくても、問題なく理解できるだろう。
非常にボリュームが豊富なため、読み切るのに苦労するかもしれない。
しかし、多くの内容が理路整然とわかりやすくまとめられているため、量が多くて苦痛になるという感覚はあまり感じなかった。
また、経験豊富な開発者なら、既に知っている内容も多く含まれているかもしれない。
だが、既知のテクニックを再確認できるという点で、読む価値は十分あるだろう。
完全な初心者には向かないかもしれないが、もっときれいで読みやすいコードを書きたい全ての開発者、プログラマの方々に是非手にとって欲しい1冊である。 (参考:Amazon)

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

(引用元Amazon)

 
Code Complete 第2版 上 完全なプログラミングを目指して
発売日 2005/03/26
通常 6,710円
現在 6,710円

  

「増補改訂版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円

  

「レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める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対応のリファクタリング関係の本人気ランキングです。

(2020/12/01 更新)
売筋
Rank
製品評価
1
(4.2)
総評価数 4件
2
(1)
総評価数 1件

 

   

関連:オブジェクト指向プログラミング(クラス設計技法)を学ぶ

コードの品質を上げるリファクタリングも重要ですが、そもそもの適切なクラス設計による保守性や再利用性の高さも重要。

以下ではオブジェクト指向に関する書籍を紹介しています、合わせてのぞいて見てください。

 

関連:アプリ・サービス開発で活かす

リファクタリング・コーディング技術は知識だけでなく、実用してこそ定着度があがるもの。しっかり実用していきましょう。

以下では実用となる、ゲーム開発、スマホアプリ開発、Web開発に関する書籍も紹介しています。合わせてのぞいて見てください。

 

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

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

いじょうでっす。

コメント

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