本記事は、 ギルドワークスAdventCalendar 17日目の記事です。
とうとうリファクタリング第二版が発売です!
先月末に、とうとうリファクタリングの第二版が、原著にて発売されました!もともと1999年に発売された本ですから、およそ20年ぶりの改版となります。
日本でも Amazonで買えます!
現状刊行されているのは英語ですが、シンプルな表現が多いのと、コード例も多いので素直に読めるのではないのでしょうか。また、おそらく2019年のはじめには、日本語訳版もでるのではないでしょうか。
というわけで、中身をちょっとだけ先取りしてみましょう。
第二版で増えた「不吉な臭い」
気になるのは皆さん、第一版との差分ですよね。そのなかでも、本書の根幹をなすのが、「コードの不吉な臭い(Code Smells)」です。そこでここでは、「臭い」に着目して、差分を見てみたいと思います。

追加された不吉な臭い①: 不可思議な名前(Mysterious Name)
まず最初に追加されたのは、「不可思議な名前」です。つかされたばかりか、これは全ての不吉な臭いに先立つものとして追加されています。
そう、名前付けは「 コンピューター科学での二大難問 」のひとつなのです。
追加された不吉な臭い②: グローバルデータ
グローバルデータとは、プログラムのどこからでもアクセスでき、変えられるものです。グローバル変数はもちろんそうですが、リファクタリングではシングルトンやクラス変数もグローバルデータとして挙げられています。
追加された不吉な臭い③: 変更可能なデータ
データの変更は基本的にはさけるべきこととして明示されるようになりました。データが変更できるということは、それ変更を知らずにのほほんと生きているオブジェクトがある、ということになります。これは非常に危険な兆候、ということですね。
追加された不吉な臭い④: ループ
第二版での大きな変更のポイントが個々ではないでしょうか。ループというのはfor文だけではなく、 Range Based For や foreach のような、安全性の高いループも対象になっています。長い間、プログラムの中心を担ってきたループ構文ですが、関数オブジェクトがほとんどの言語で簡単に使えるようになった今、その役目を終えようとしているのでしょう。
このように、モダンな言語向けにアップデートされたリファクタリングの第二版、冬休みのお供にぜひ読んでみてはいかがでしょうか。
この記事もどうですか?
-
「雪山」には一人では登れない、だからリアルなチームが必要②
前半 で市谷が語ったギルドワークスのスタンス。それを実現するためには一人では難しい。ではどんなチームで実現していくのか。ひきつづき市谷がインタビューに答えます。 クライアントとひとつのチームに -前半で伺った仕事のスタンス、仕事ができる人に…
- いきなり最強チーム
-
情報をうまく共有(Share)するための3つのコツ
ギルドワークスの原則の1つに「 行動指針としての共有(Share)・表明(Assert)・ふりかえり(Reflet) 」があります。 この3つの頭文字を取り「sar」の行動指針と呼んでいます。 行動指針「sar」 共有(Share):状況を…
- 仕事のやり方
-
状況判断で駆動する「機略型のアジャイル開発」
見積もりができない。どうする? 見積もりって大事ですよね。見積もりは何のために行なうものでしょうか?開発が終わるかどうかの見立てを立てたい。そうですね、たいてい使えるお金と時間には制約があるので、やろうとしていることが本当に完了できるのか、…
- DRR
- 正しいものを正しく作る
- アジャイル開発
- OODA