Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 2.1 KB

CODING_GUIDELINES.md

File metadata and controls

42 lines (31 loc) · 2.1 KB

コーディング規約

共通の規約

  • ファイル名はスネークケースを使用
  • 基本的に規約よりも静的解析などのツールを優先
  • 変数名は go の規約に沿って短い変数名 response → res
  • メソッド名の Id は 🙅‍♂️ → ID にする 🙆‍♂️
    • DeleteByTagId → DeleteByTagID

ドメイン層

ドメイン層では、ドメインモデルを定義する

  • ドメインモデルとリポジトリのインターフェースを定義

リポジトリ層

リポジトリ層では、データベースや外部サービスとのやり取りを抽象化したメソッドを定義する。

  • 動詞を使用
    • メソッドが実行するアクションを明確に示す動詞から始める
    • 例: Find、Create、Delete
  • 単純な形式を優先
    • 可能な限り短く、簡潔なメソッド名を使用する
    • そのメソッドの目的を直接反映するメソッド名する
  • 条件による操作を示す場合は「By」を使用
    • メソッドが特定の条件でデータを操作する場合は、「By」の後にその条件を示す単語を追加します。
    • 例: DeleteByTagID
  • 特定の複数ステップの処理を一つのトランザクションとして実行するメソッドでは、その処理内容を簡潔に表現する名前を使用
    • メソッドが複数のリソースにまたがる複雑な処理を行う場合は、処理内容が明確に伝わるような名前にする
    • 例: DeleteAndInsert

ユースケース層

ユースケース層では、各ドメインオブジェクトのビジネスロジックを集約する

  • 1 メソッド 1 ファイル
    • 複雑なドメインロジックが集約をするためテストがしやすいようにメソッド名の単一のファイルを作成する
  • メソッド名に HTTP メソッドを使用
    • controller などのプレゼンテーション層で利用する際にわかりやすくするために HTTP メソッドを付与したメソッド名にする
    • 例: create_album, get_all_albums