---
# System prepended metadata

title: OKR App 理解度テスト

---

# OKR App 理解度テスト

- 10 問出題します
- 1 問あたり 5 分の制限時間
- 制限時間内はググってもいいし、ソースコードも見ていいです
- 解説してもらった内容に対して、質問する場合があります
- 念の為、回答内容も池田のほうでタイピングしておきます

## PHP

- [x] 1. abstract クラスの実装・使い方について解説してください
- [x] 2. Interface の実装・使い方について解説してください

## Laravel

- [ ] 3. HTTP Request メソッドの種類について解説してください
- [x] 4. resouce メソッドで生成されるルーティングについて、それぞれの役割、HTTP Request メソッドの種類、アクションがとる (一般的な) 引数を解説してください
- [ ] 5. FormRequest の役割、実装について解説してください
- [ ] 6. DI について解説してください
- [x] 7. コンストラクタインジェクションについて解説してください
- [x] 8. メソッドインジェクションについて解説してください
- [ ] 9. Fat Controller はなぜよくないのか、Laravel でそれを回避するにはどのような実装が有効か解説してください
- [x] 10. useCase の役割・実装・呼び出しについて解説してください
- [x] 11. Service の役割・実装・呼び出しについて解説してください
- [ ] 12. Facade の役割・実装・呼び出しについて解説してください
- [ ] 13. Respository の役割・実装・呼び出しについて解説してください
- [x] 14. Respository を Interface の型でコンストラクタインジェクションする理由、その設定を ServiceProvider と ServiceContainer を交えて解説してください
- [x] 15. モデルの Relation (Asscoiation) の定義、使い方について解説してください
- [ ] 16. モデルの Accessor （ミューテタ） の定義、使い方について解説してください
- [x] 17. モデルの find / get / where の戻り値について解説してください
- [ ] 18. Gate の実装・使い方について解説してください
- [ ] 19. Policy の実装・使い方について解説してください

### 関連

1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Services/Slack/BaseNotificationService.php#L11
1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Repositories/Interfaces/CompanyGroupRepositoryInterface.php#L8
1. none
1. none
1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Http/Requests/AdminUpdateRequest.php#L9
1. none
1. - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Http/Controllers/DepartmentController.php#L27
   - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Http/UseCase/Objective/StoreData.php#L23
1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Http/Controllers/AdminController.php#L44
1. none
1. none
1. none
1. none
1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Repositories/ObjectiveRepository.php#L9
1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Http/UseCase/Objective/StoreData.php#L23
1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Models/User.php#L146
1. - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Models/User.php#L163
   - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Models/Objective.php#L119
1. none
1. https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Providers/AuthServiceProvider.php#L39
1. - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Providers/AuthServiceProvider.php#L22
   - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Policies/RolePolicy.php#L9 
   - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Http/Controllers/AdminController.php#L60
   - https://github.com/EeeeG-Inc/OKR-manage-app/blob/main/app/Http/Controllers/UserController.php#L74
