🤖

Golangの開発時のメモ

2024/01/20に公開

モヤモヤしてる箇所

packageの命名規則

  • これは best practice ありそう

ドキュメント

  • あんまり書いてない
  • これはprojectによるか

ファイルの命名規則

  • userのdaoもusecaseも user.go になると混乱するのだけどこれはなれるのか

usecaseの命名規則

  • user に関する usecaseを UserUsecase としているケースがあるが、これビジネスロジック増えると巨大ファイルになるのでは?
    • それぞれのビジネスロジック同士で依存関係がないことが多いし、ビジネスロジック1つごとにファイルがあってもいいのでは?
    • CreateUserUsecase, SendMessageToUserUsecase とかそういうfunction単位のイメージ

daoとusecaseの関係

  • 実装によって、dao層とusecase層がごちゃまぜになってるような気がする
    • dao層 : 一般的な永続化の処理
    • usecase層 : dao層も用いながら、ビジネスロジックを実装する層
  • というイメージだったが、実装によってはごちゃまぜになってるように見える箇所がある

interfaceの使い方

  • テスト書くために mock が必要で、そのためにだけにinterface定義してる箇所が結構ある
    • projectによる気もする
  • 本来的には DIPの実践のために interface を使うべきではないか?と思ったりするが確信がない

Discussion