リファクタリングとは「ソフトウェアの外部的振る舞いを保ったままで、内部の構造を改善していく作業」をいいます。と、こんな説明は世の中腐るほど出ています。僕のおすすめの「リファクタリング プログラミングの体質改善テクニック」という本もあります。

ここでは、プロジェクト中のちょっとしたときに、リファクタリングを行えるような覚書きをまとめておこうかと思います。すべてのリファクタリングに先立って自動テストを行うことがリファクタリングの最低条件である。

タイトル
Javaアルゴリズム+データ構造完全制覇
著者
オングス (著), 後藤 大地 (監修), 杉山 貴章
出版社
技術評論社
Amazonで購入する

本書は、2つの方法で読者にアルゴリズムとデータ構造を学ばせようとしている。1つは、良くあるアルゴリズムとデータ構造のみの解説

2つめは、Java言語による実装を基準としたデータ構造とアルゴリズムの解説

文書による解説である程度理解できたところで、実装の面から更なる知識をインプットする。これが本書の特徴です。

タイトル
UMLによるオブジェクト指向開発実践ガイド
著者
吉田 裕之 (著), 上原 忠弘 (著), 山本 里枝子 (著), 田中 達雄 (著)
出版社
技術評論社
Amazonで購入する

UML、Java、CORBA、COMなど、オブジェクト指向はソフトウェア開発にとってもはや当たり前の技術になっているが、実践に基づいた具体的なノウハウはいまだに少ない。本書の目的は、オブジェクト指向開発プロジェクト全体に標準的な体系を与え、またチーム全体がオブジェクト指向技術のスキルを蓄積しながら成長するテクニックを、現場で実践するう方々に提供することである。

本書表紙より
タイトル
Professionalゲームプログラミング
著者
坂本 千尋 (著)
出版社
ソフトバンクパブリッシング
Amazonで購入する

ゲームプログラミングというのは、一般業務で使うアプリケーションとは違った、もっとテクニック重視の技法を使う必要がでてきます。ゲーム会社などでは、ひとつのゲームを作る為だけに、専用のツール(マップを作成するものなど)をつくることもあるそうです。そんな、ある意味変わったゲームプログラミングを、本書を通じて体験してみてはいかがですか?

タイトル
独習Java
著者
ジョゼフ オニール (著), 武藤 健志 (監修), Joseph O’Neil (原著), トップスタジオ (翻訳)
出版社
翔泳社
Amazonで購入する

本書は、非常に人気のあるJavaの入門書です。が、人気のあるわりにわかりにくいというのが本音です。確かに、独習とあるだけあって、一人で読み進めればある程度理解できます。しかし、本書は専門用語を最初から使いすぎ!「対象読者がプログラミングを始めて間もない人から〜」とあるわりに、「これじゃあ誰もわからねーよ」と突っ込みたくなります。

タイトル
図解入門 よくわかるアルゴリズムの基本と仕組み
著者
杉浦 賢 (著)
出版社
秀和システム
Amazonで購入する

一人前のプログラマには、一朝一夕ではなれません。すばらしいコンピュータソフトは、優れたプログラマの集団から生まれます。将来、その集団の中にあなたの名前があるように、今日から努力を始めてください。本書は、そのための第一歩です。さあ、踏み出しましょう。

本書「はじめに」より

デザインパターンとは、システム設計におけるクラスやインターフェースの関係に名前をつけたものです。 GoFの23のパターンが有名です。デザインパターンというのは、どんなパターンなのか、パターンの目的は何かということを覚えることが非常に重要なのですが、これを実際に適用しようとした場合に、いつ適用していいかが見えてこないとお話になりません。

そこで、自分の勉強も兼ねつつ、パターンの実践時における使用場所や、パターンを適用するきっかけを見つけられるようにメモしておきます。

12番目は処理手順やアルゴリズムをスムーズに交換できるようにするStrategyパターンのメモです。

タイトル
Effective Java プログラミング言語ガイド
著者
ジョシュア・ブロック (著), 柴田 芳樹 (著)
出版社
ピアソン・エデュケーション
Amazonで購入する

Javaプログラマのための最も実用的な本のうちのひとつといってもいいと思います。それくらい実用性があり、優れたソースコードを書くための指南書として使える良書だと思います。

本書は、Javaの慣習と効果的な使用法を学べます。Javaの基本的使い方、文法をマスターした人向けの本です。次のステップへの最適な一冊だと思います。

タイトル
Javaの鉄則―エキスパートのプログラミングテクニック
著者
ピーター ハガー (著), Peter Haggar (原著), ドキュメントシステム (翻訳)
出版社
ピアソンエデュケーション
Amazonで購入する

Javaに限らず、初心者と達人プログラマとの違いはどれだけその言語の鉄則を守ってコーディングしているのかの違いだと思います。実際にコーディングを行ってつまずいて、解決した人にしかわからないTipsや設計原則を惜しげもなく解説してくれる、まさに聖書のような存在です。

タイトル
Java逆引き大全500の極意
著者
高橋 和也 (著), 井川 はるき (著), さとう ひでき (著), プロジェクトA (著)
出版社
秀和システム
Amazonで購入する

やりたいことから探せる、リファレンス的存在の本です。ただし、他のリファレンスと少し違うのが、項目それぞれに対して、サンプルソースが載っている点です。動くコードで実際の結果まで載っているので、ちょっと調べるときなどに重宝します。業務で使用するときにも使えるテクニックなど載っているので、初心者から経験者まで手元に置いておきたい一冊です。