2007年4月28日

外に追い出す - 学校では教えてくれないバッドノウハウ英語 #12

学校では教えてくれないバッドノウハウ英語の12回は、factor out を取り上げたいと思います。

 
factor out はコードレビューの際によく使われる「外に追い出す」という意味の表現です。たとえば、長くなりすぎた関数の一部分を外に追い出すときに factor out といいます。

例)
Would it be too hard to factor out the inner loop into a separate function?
その内側のループを別の関数として外に追い出すのは難しい?

You should factor out the part common to foo() and bar().
foo() と bar()で共通している部分を外に出すべし。

たいていの場合、factor out はコードの読みやすさや保守性を改善するために行われますが、あまりやりすぎるのも考えものな場合もあります。

例)
Could you just change the code in two places rather than trying to factor this out by the hairy maco?
普通に2箇所、修正してもらえる?毛深いマクロで外に出そうとしないで。

ところで、factor out と関係の深い動詞に refactor があります。こちらは リファクタリングという書籍でおなじみの、「(プログラムの挙動を変えずに) プログラムの体質を改善する」という広い意味で使われる表現です。factor out は refactor のひとつの手段といえます。