
Repository Pattern
Repository pattern (ข้อแลกเปลี่ยน, กรณีการใช้งาน), contracts, service layer, หลักการ SOLID, dependency inversion, ความสามารถในการทดสอบ, เมื่อใดที่ไม่ควรใช้
1Repository Pattern ใน Laravel คืออะไร?
Repository Pattern ใน Laravel คืออะไร?
คำตอบ
Repository Pattern เป็น design pattern ที่เพิ่มเลเยอร์การแยกส่วน (abstraction) ระหว่างลอจิกธุรกิจกับเลเยอร์ข้อมูล โดยห่อหุ้มลอจิกการเข้าถึงข้อมูลไว้ในคลาสเฉพาะ (repositories) ทำให้สามารถแยกความรับผิดชอบและทำให้โค้ดทดสอบได้ง่ายขึ้น ต่างจากการใช้ Eloquent โดยตรงใน controllers ตรงที่ repository รวมศูนย์ query ที่ซับซ้อนและทำให้เปลี่ยนแหล่งข้อมูลได้ง่ายโดยไม่กระทบส่วนอื่นของแอปพลิเคชัน
2Repository Pattern ให้คุณค่ามากที่สุดในสถานการณ์ใด?
Repository Pattern ให้คุณค่ามากที่สุดในสถานการณ์ใด?
คำตอบ
Repository Pattern มีประโยชน์อย่างยิ่งในแอปพลิเคชันที่ซับซ้อนซึ่งมีคิวรีที่ซับซ้อนและแหล่งข้อมูลหลายแหล่ง มันโดดเด่นในโปรเจกต์ระดับองค์กรที่ตรรกะการเข้าถึงข้อมูลมีความซับซ้อน ถูกใช้ซ้ำในหลายที่ หรือมีแนวโน้มที่จะเปลี่ยนแปลง (เช่น การย้ายจาก MySQL ไปยัง MongoDB) สำหรับ CRUD ง่าย ๆ หรือแอปพลิเคชันขนาดเล็ก อาจกลายเป็นการออกแบบที่เกินความจำเป็นโดยไม่จำเป็น
3trade-off หลักของ Repository Pattern คืออะไร?
trade-off หลักของ Repository Pattern คืออะไร?
คำตอบ
trade-off หลักคือความซับซ้อนของโค้ดที่เพิ่มขึ้นและจำนวนไฟล์ที่ต้องดูแลรักษา แต่ละ repository เพิ่มไฟล์อย่างน้อย 2 ไฟล์ (interface + การนำไปใช้) ซึ่งอาจกลายเป็นเยิ่นเย้อได้อย่างรวดเร็วในแอปพลิเคชันที่เรียบง่าย Laravel Eloquent เป็นการแยกนามธรรมที่ทรงพลังอยู่แล้วซึ่งแก้ไขกรณีการใช้งานได้ 80% และการเพิ่มเลเยอร์พิเศษอาจทำให้การพัฒนาช้าลงโดยไม่มีประโยชน์ที่แท้จริงหากคิวรียังคงเรียบง่าย
Repository Pattern นำหลักการ SOLID Dependency Inversion ไปใช้อย่างไร?
ข้อได้เปรียบหลักของ Repository Pattern สำหรับการทดสอบคืออะไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Laravel อื่นๆ
พื้นฐาน PHP
พื้นฐาน OOP ใน PHP
Composer & Autoloading
พื้นฐาน Laravel
Laravel Routing
Blade Templates
Request & Response
พื้นฐาน Eloquent ORM
Eloquent Relationships
Migrations & Schema Builder
การตรวจสอบและฟอร์ม
การยืนยันตัวตน
การให้สิทธิ์และ Policies
API Resources & Authentication
Middleware
Service Container & DI
Queues & Jobs
Events & Listeners
การแจ้งเตือนและเมล
File Storage
Testing & PHPUnit
Caching
Livewire & Inertia
Eloquent Advanced
Laravel Packages
Performance Optimization
Security Best Practices
Laravel Octane
Laravel Distributed Systems
Observability & Monitoring
Deployment & DevOps
เชี่ยวชาญ Laravel สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี