« 英語で読む「Linux Code of Conduct」 | Main | 英語で読む「AWS Well-Architected Framework」 »

2018.09.26

英語で読む「Refactoring」

Martin Fowlerによるリファクタリングの古典。最近、20年の時を経て第二版が出版されることが話題だ。

https://www.publickey1.jp/blog/18/_2nd_edition1122.html

いまでは開発者の間で広く知られているこのリファクタリングの意義や方法論をはじめて系統的に解説し、普及に大きな貢献を果たしたのが、マーチン・ファウラー氏が執筆し1999年に発行された書籍「Refactoring. Improving the Design of Existing Code.」(日本語版「新装版 リファクタリング 既存のコードを安全に改善する」) です。

ThoughtWorksのインタビューで、新版についてこのように答えている。

I hope it will help people in any legacy environment. While the examples are in Javascript, it's not a Javascript book. Just as the original book was not a Java book.

新版はサンプルをJavaScriptで書いている。初版はサンプルコードがJavaだったが、Javaの本というわけではなかったように、新版もJavaScriptの本ではなく、レガシーな環境で働く人の手助けになることを目指している。

新版が手に入るのは少し先になるので、まず初版を見てみよう。

The first time you do something, you just do it. The second time you do something similar, you wince at the duplication, but you do the duplicate thing anyway. The third time you do something similar, you refactor.

同じ内容も2度目まではいいが、3度目だったらリファクタリングしようと。

Extract Method is one of the most common refactorings I do. I look at a method that is too long or look at code that needs a comment to understand its purpose. I then turn that fragment of code into its own method.

Methodになりそうな塊をExtract(抽出)してMethodにするもの。繰り返し登場する処理は関数にしようと言われているあれだ。もうJavaが出てオブジェクト指向が一般的になっているので関数ではなくメソッドと呼んでますね。

Move Method: A method is, or will be, using or used by more features of another class than the class on which it is defined.

Move Methodはメソッドを別のクラスに移動させるというもの。

A telephone number may be represented as a string for a while, but later you realize that the telephone needs special behavior for formatting, extracting the area code, and the like. For one or two items you may put the methods in the owning object, but quickly the code smells of duplication and feature envy.

例えば電話番号のようなデータは最初は文字列として扱うが、市外局番などがあるので、オブジェクトにしましょう。

The key to avoiding this merry dance is naming the methods. Methods should be named in a way that communicates their intention. A good way to do this is to think what the comment for the method would be and turn that comment into the name of the method.

Merry danceは「時間の浪費」にたいな意味合い。これを避けるために、メソッドには適切な名前を付けましょうと。そのためのコツは、まずメソッドのコメントを考え、そのコメントをメソッドの名前にすればいい。

こんな感じで実に86パターン。発売が2ヶ月も先の洋書なのに、すでにAmazonでカテゴリー1位に上り詰めていて、期待の高さが感じられる。

|

« 英語で読む「Linux Code of Conduct」 | Main | 英語で読む「AWS Well-Architected Framework」 »

英語で読むITポリシー」カテゴリの記事