coding_rule - taka512/memo GitHub Wiki
コーディング規約
サービス
- クライアントに提供するサービスを定義する
- サービスはステータスを持たない
エンティティ
- 自身の振る舞いを定義する
- エンティティはサービスを呼び出さない
- エンティティは必ずBaseEntityを継承する
クラス命名
- xxxServiceは禁止
- 共通な「処理」はstaticなメソッドの集合である「xxxUtil」クラスを定義。「Helper」も同じ意味合いだが、使わない
継承より委譲
- 実装する際に考慮する優先順位は「委譲 > トレイト > 継承」
- 継承
- ステータスを持ってはならない
- 多重継承禁止
- CommandやEntityなどBaseを定義したクラス
- クラスの接頭語に「Base」をつける
- トレイト
- ステータスを持っても良いが、トレイト外部で定義しているプロパティは触らない
laravel
- facadeは使わない
- jobはサービスを起動するのみでユースケースとして利用する
- ドメインロジックは書かない
- 非同期以外のjobは書かない
- 依存関係のパズルになりがちなのでeventの利用も最小限にする