ふだんコードを書いていて,新機能などを作っていて,こうするほうがきれいに書けそう,と思っても,いま書いているところがアプリケーションのコアドメインでないなら,ほどほどにして,たとえば,既存のライブラリで十分ならそれを入れて終わりにしたり,もうちょっと凝って美しい世界にできそうになっても,現実的にはこれくらいで十分に動くので,これに留めておこう,と決めるのが大事な気がしている.
せめて新しく書くところくらい凝って美しく書きたくなるのは分かるけど,すべての場所を完全に美しく作ることは不可能で,それをする時間があるなら,すでにある変なコアドメインを美しく研ぎ澄まされたものにするほうがメリットがある.
最終的には人間は物理的に死んでしまうので,死ぬまでにやるべきことを選ぶべきで,その選ぶときには,今手持ちのタスクだけでなく,全体のバランスを見て選ぶべき.
品質を無視して,ひどいコードでもいい,と言っているわけではなくて,どんなに今きれいに書いても,コードは時間が経つとレガシー化するので,品質を現時点の最高に合わせるよりは,十分な品質,ふつうに書くとこれくらいになる品質,に合わせるほうが幸せになりそうで,知らないコードを読んでいて,突然凝ったものが出てくるよりは,全体が均質化しているほうが理解しやすそう.
もし知らないアプリケーションのコードを読んでいて,凝ったものが出てくるとしたら,ちょっとしたおまけの機能ではなくて,アプリケーションのコアドメインに集中しているほうが,読む人の時間をとらないという点でもよさそう.