外側から命名する
ドキュメントの内容が「知ってないと理解できない」のと似てる気がする
外からの視点を意識せずに書かれている感じ
分かりづらいドキュメントあるある
内側から命名しているのがgetHogeのようなやつか
howを知ったうえでの名前になっているような感じ?
↑あんまり関係なくない?mrsekut.icon
どちらがどちらのことを知っているかという観点で考えれば良さそう
永続化のためのserializeの要件があったときに、
ドメインの要件であるUserと、
serializeの要件であるJsonがあるとき、
ドメイン側がSerializeのことを知っているようにするなら、
toJson :: User -> Json
fromJson :: Json -> User
という命名になり、User module内に属することになる
逆に、Serialize要件は、ドメインとは別の話、ドメインは感知すべきでない、とみなすなら、
fromUser :: User -> Json
toUser :: Json -> User
とする
この例だと、後者を取ることのほうが多いだろう
ドメインは永続化方法を知る必要がないことが多いので