あるべき姿に

自分が書いたプログラムを見て、汚いなぁと思うことがある。 拡張するときに動いている部分にはなるべく手を付けないようにするのはありがちなことだが、そうすると拡張した部分に不格好な部分が出来てしまい、それが詰み重なると不整合だらけになるのだ。 それほど長く使うつもりがなかったものがいつまでも残ってしまう。

重い腰を上げてそういう負債の積み重ねをなんとかしようと思っても、それを作ったのは自分自身である。 最初に作ったときと同じ発想で設計しなおしてしまい、小手先の綺麗さが少し改善される程度にとどまってしまう。

そういったときにはインターフェイスになる部分から書いていくのが良いと思う。 自分が欲しい姿で部品の外側を作ってしまえばそれが構造を決める。 それでどうしても中身が汚くなってしまっても、不整合が積み重なるよりは良い。

プログラムを分割統治するにあたって抽象化の壁を作るのは重要なことだが、壁の向こうを知っているときにあえてそれを忘れるということも出来ないと綺麗な構造を保つのは難しい。 というよりは、壁の向こうを忘れていられるような壁を作らなければならない。

Document ID: f66b5cacc6c6fe1f9a5aa83b82911aa3