僕が書いているコードは、それなりにオブジェクト指向チックだと思っているが、値クラスやエンティティや集約やリポジトリなどはわずかで、多くはそんなカテゴリーに属さないクラスたちだ。そして後者の方が生き生きと振る舞っている。だから、こうした概念を中心に据えた設計論を僕は信用しないのだ。
値クラスやエンティティという概念が無意味だと言うのではない。
概念を、これは値、これはエンティティと振り分けることが設計の中心課題ではないということ。
GitのコミットはIDを持つからエンティティとも言えるし、不変だから値とも言える。
しかしいずれにせよGitの設計とあまり関係ないよね。
設計って、概念をそういう型とか枠に当てはめていくパズルではないと思う。設計の最後の方で、そういうパズルがちょっと出てくるにしても。
このように既存の方法論にマウントとって気持ちよくなりながら代替案も示さず、再現性の無い我流手法を自画自賛するようになってくると「あぁ、この人は本格的に終わってしまわれたんだなぁ」という趣き深さがある。
それなりにお歳を召していると周囲の人も一々諌めてくれなくなるので仕方のないことであるのだが。