coding_rule - taka512/memo GitHub Wiki

コーディング規約

サービス

  • クライアントに提供するサービスを定義する
  • サービスはステータスを持たない

エンティティ

  • 自身の振る舞いを定義する
  • エンティティはサービスを呼び出さない
  • エンティティは必ずBaseEntityを継承する

クラス命名

  • xxxServiceは禁止
  • 共通な「処理」はstaticなメソッドの集合である「xxxUtil」クラスを定義。「Helper」も同じ意味合いだが、使わない

継承より委譲

  • 実装する際に考慮する優先順位は「委譲 > トレイト > 継承」
  • 継承
    • ステータスを持ってはならない
    • 多重継承禁止
    • CommandやEntityなどBaseを定義したクラス
    • クラスの接頭語に「Base」をつける
  • トレイト
    • ステータスを持っても良いが、トレイト外部で定義しているプロパティは触らない

laravel

  • facadeは使わない
  • jobはサービスを起動するのみでユースケースとして利用する
  • ドメインロジックは書かない
  • 非同期以外のjobは書かない
  • 依存関係のパズルになりがちなのでeventの利用も最小限にする