ソリッドな喜び

結城浩

2002年9月24日

JAVA Developerのリファクタリング連載記事を書いている(『結城浩のリファクタリング・レッスン』)。 今回はReplace Type Code with State/Strategyが題材です。 できるだけリファクタリングがイメージしやすいように簡単なサンプルを毎回作るのですが、 小さいサンプルだと、リファクタリングの必要性が少なくなるのでなかなか大変ですね。 サンプルを作って、リファクタリングを1つ適用するようすを見せるためには、 感覚的にサンプルプログラムを10個ぐらい作った気分になります。 しかもそれぞれがどういう意味を持っていて、どこが違うのかを意識しつつ…やれやれ、なんと手間のかかること。 でも、コードをリファクタリングしていく作業そのものはとても楽しい。 ちらかった部屋をきちんと整頓していく感覚に近いかもしれない。 リファクタリングもパターン同様に、1つでおしまいではなく、連鎖的に適用したくなりますね。

自明に見えるサンプルでも、丁寧に解説をしていくと、何かしら深い部分に触れたような気持ちになります。 アイススケートの「規定演技」(コンパルソリ?)に近いイメージをいつも抱きます。 何度も書いていて、結城の日記の読者は耳にタコができているでしょうけれど、 きちんと人に教えよう(伝えよう)と努力することは、自分が学ぶ最善の方法ではないかと思います。 自分の泥臭さや自分のぎこちなさにめげないで、愚直に進む。 自分の頭を使い、自分の手を動かして理解する。 そしてその理解を、自分の言葉を使って人に伝えようとする。 そのプロセスを丁寧にたどると、とても美しくて、 とてもソリッドで、誰にも奪われることのない「何か」を見つけ出すように思います。

それは「喜び」に直結している。足を強く踏み鳴らして踊り出したくなるような喜びに。