[重箱の隅] Factor out

「外に出す」というより「括り出す」の方が正確かと思います。元の意味も「共通因数を (括弧で) 括り出す」なので。与えられた整数や整式が複数通り因数分解できる*1ように、program も module 境界や関数と言う形で何通りにも分解できる、ということから program の部品を factor (因数) のように扱う言い回しが使われているということだと思います。すると refactor というのは責任の分担範囲を区切り直す、という意味で、refactor =「(プログラムの挙動を変えずに) プログラムの体質を改善する」というのはちょっと広すぎるような…。例えば bubble sort してたところを heap sort に変えるのは semantics を保ちつつ改善していることになると思いますが、これは refactoring とは言わないでしょう。戻り値を buffer に入れて返してたのを構造体にして register + stack で渡すように変更、とかも。

と言ってみたけど余計なお世話だったりするんでしょうか。話が逸れるけど、こういうこと書くときって相手の発言を読み間違えてたり、当り前の事言ってたり、第三者から見ると凄くズレた事言ってたりしないかなーという強迫観念的な不安に駆られるよね。他の人はそんなこと無いのかな。

ところで何でビワ? 食べたいし…

*1:e.g. 36 = 6 * 6 = (*) 2 9 2