วิธีเตรียมตัวสำหรับการสัมภาษณ์งาน Laravel
การสัมภาษณ์ตำแหน่ง Senior Laravel ไม่ได้ทดสอบแค่ความรู้เรื่อง Syntax เท่านั้น แต่ยังทดสอบความสามารถในการออกแบบระบบที่รองรับการขยายตัว (scalable systems) และการจัดการกับ trade-offs ในสถานการณ์จริง
คุณต้องก้าวข้ามการทำ CRUD พื้นฐาน และต้องพิสูจน์ให้เห็นว่าคุณสามารถส่งมอบซอฟต์แวร์ที่รองรับการใช้งานในระดับสเกลใหญ่ได้
ใช้แผนการเรียนรู้นี้ตามเวลาที่คุณมี
- 1 ถึง 2 วัน: เน้นเรื่อง Request Lifecycle, ปัญหา Eloquent N+1, Queues, Validation และ Authorization
- 3 ถึง 5 วัน: เพิ่มเรื่อง Caching, Database Transactions, Testing และ API Design
- 6 ถึง 10 วัน: ศึกษาทุกอย่าง สร้างโปรเจกต์ขนาดเล็กโดยใช้ queues, events, jobs และ policies
หัวข้อทางเทคนิคสำคัญที่ต้องเชี่ยวชาญ:
The Service Container
ทำความเข้าใจความแตกต่างของสามสิ่งนี้:
• bind(): คืนค่า instance ใหม่ทุกครั้ง
• singleton(): คืนค่า instance เดิมตลอดทั้งกระบวนการ (process)
• scoped(): คืนค่าหนึ่ง instance ต่อหนึ่ง request ซึ่งสำคัญมากสำหรับเครื่องมืออย่าง Laravel Octane
Eloquent และ Databases
เลิกใช้ all() กับตารางที่มีข้อมูลขนาดใหญ่ ให้ใช้ chunk() หรือ lazyById() เพื่อจัดการหน่วยความจำ (memory)
เข้าใจปัญหา N+1 และใช้ eager loading (with) เพื่อแก้ไข
รู้ว่าเมื่อไหร่ควรใช้ Eloquent หรือ Query Builder โดยควรใช้ Query Builder สำหรับการทำรายงาน (reporting) ที่หนักหน่วงเพื่อหลีกเลี่ยง overhead ของ model
Queues และ Background Processing อะไรก็ตามที่ทำงานช้าหรือไม่เสถียร ควรนำไปไว้ใน queue ใช้ Redis สำหรับ production queues ใช้ Laravel Horizon เพื่อตรวจสอบ (monitor) workers และ failed jobs ของคุณ เมื่อต้องส่งข้อมูลไปยัง jobs ให้ส่งเป็น ID แทนการส่ง model object ทั้งหมด เพื่อหลีกเลี่ยงปัญหาข้อมูลไม่อัปเดต (stale data)
Security และ Architecture
อย่าใช้ $request->all() สำหรับ mass assignment ให้ใช้ $request->validated() แทน
เข้าใจความแตกต่างระหว่าง Sanctum (สำหรับ SPA และ token แบบง่าย) และ Passport (สำหรับ OAuth2 แบบเต็มรูปแบบ)
เขียน controller ให้บาง (thin) เสมอ โดยย้าย business logic ไปไว้ใน Services หรือ Actions
สัญญาณที่บ่งบอกความเป็น Senior Developer ระดับ Junior รู้ว่าต้องใช้เครื่องมืออย่างไร แต่ Developer ระดับ Senior รู้ว่าทำไมถึงเลือกใช้เครื่องมือนั้นแทนที่จะเป็นเครื่องมืออื่น
ในการสัมภาษณ์ อย่าเพียงแค่ตอบคำถาม แต่จงอธิบายถึง trade-offs เปรียบเทียบข้อดีและข้อเสียของแต่ละแนวทาง สิ่งนี้จะแสดงให้เห็นว่าคุณเข้าใจถึงผลกระทบของการตัดสินใจทางเทคนิคที่มีต่อธุรกิจ
ที่มา: https://dev.to/nazar_boyko/how-to-prepare-for-a-laravel-interview-8dn
