動的言語がなぜリファクタリングに弱いかというと
いつクラスの定義が定まるかを考えてみればわかる

まずリファクタリングというのはソースコードを修正する
そしてクラスの定義はソースコードから生成される

この時、ソースコードからクラスの定義が単純に決まれば良いのだが
動的言語では、実行するまでクラスの定義が決まらない

ならば実行すればいいと思うかもしれないが、何をどう実行すれば
クラスの定義が定まるのかを知る方法がない

つまりクラスをリファクタリングする場合、
クラスの完成形を知ることができないので、
人間が判断するしかなくなってしまい時間がかかる