# 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