2016.12.13

一日働いていた。

この日はコードを書かずに社長も交えて仲間と話し合いをした。ドメイン層の責務がやっとわかったような気がする。例えば「契約一覧を取得して表示する」というユースケースが在ったとして、僕は「契約一覧を取得する」のがドメイン層の責務だと思っていたんだが、どうもこれが間違っていたらしい。そもそも「契約一覧を取得して表示する」は、その後に続くであろう「契約を選んで解約する」という導線であって、この「解約する」こそがドメインの責務であり、「契約一覧を表示する」ことは雑務である。依って、こういった雑務はアプリケーションサービスで処理するようだった。

今までどうしていたかと言うと、ドメイン層に ContractManager なるものを作ってアプリケーション層からこれを叩き契約一覧を取得していた。ContractManager の内部では ContractRepository を叩いている。

が、ContractManager というモデルは必要が無く、いや在ってもいいんだが、そいつの責務はもっとコアなロジックを実装すべきであるということだった。「契約一覧を取得する」程度の雑務はアプリケーション層から直接 ContractRepository を叩くということです。なるほど。わかった。

午後は図書館でラーニングアドバイザをしていた。誰も来んけど。2 時間座って内職しているだけで 2000 円貰える。

研究のモチベーションが下がってしまっていて、飲みに行った。会いに行けるアイドルより飲みに行けるトモダチ。