🤖

Golangの開発時のメモ

に公開

モヤモヤしてる箇所

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