Laravel நேர்காணலுக்கு எவ்வாறு தயாராவது?
சீனியர் Laravel நேர்காணல்கள் உங்கள் தொடரியல் (syntax) அறிவை மட்டும் சோதிப்பதில்லை. அவை அளவிடக்கூடிய அமைப்புகளை (scalable systems) வடிவமைக்கும் உங்கள் திறனையும், நிஜ உலகச் சவால்களைக் கையாளும் (real-world trade-offs) உங்கள் திறனையும் சோதிக்கின்றன.
நீங்கள் அடிப்படை CRUD செயல்பாடுகளுக்கு அப்பால் செல்ல வேண்டும். பெரிய அளவிலான மென்பொருட்களை (software at scale) உருவாக்க முடியும் என்பதை நீங்கள் நிரூபிக்க வேண்டும்.
உங்கள் கிடைக்கும் நேரத்தைப் பொறுத்து இந்தத் திட்டத்தைப் பயன்படுத்தவும்.
- 1 முதல் 2 நாட்கள்: Request Lifecycle, Eloquent N+1 சிக்கல்கள், Queues, Validation மற்றும் Authorization ஆகியவற்றில் கவனம் செலுத்துங்கள்.
- 3 முதல் 5 நாட்கள்: Caching, Database Transactions, Testing மற்றும் API Design ஆகியவற்றையும் சேர்த்துக்கொள்ளுங்கள்.
- 6 முதல் 10 நாட்கள்: அனைத்தையும் படிக்கவும். queues, events, jobs மற்றும் policies ஆகியவற்றைப் பயன்படுத்தி ஒரு சிறிய திட்டத்தை (project) உருவாக்கவும்.
நீங்கள் தேர்ச்சி பெற வேண்டிய முக்கிய தொழில்நுட்பப் பகுதிகள்:
The Service Container
இந்த மூன்றிற்கும் இடையிலான வேறுபாட்டைத் தெரிந்து கொள்ளுங்கள்:
• bind(): ஒவ்வொரு முறையும் ஒரு புதிய instance-ஐத் தரும்.
• singleton(): முழு செயல்முறைக்கும் (process) ஒரே instance-ஐத் தரும்.
• scoped(): ஒவ்வொரு request-க்கும் ஒரு instance-ஐத் தரும். இது Laravel Octane போன்ற கருவிகளுக்கு மிகவும் முக்கியமானது.
Eloquent மற்றும் Databases
பெரிய அட்டவணைகளில் (tables) all() பயன்படுத்துவதை நிறுத்துங்கள். நினைவகத்தை (memory) நிர்வகிக்க chunk() அல்லது lazyById() ஆகியவற்றைப் பயன்படுத்துங்கள்.
N+1 சிக்கல்களைப் புரிந்து கொள்ளுங்கள். அவற்றைச் சரிசெய்ய eager loading (with) பயன்படுத்தவும்.
எப்போது Eloquent மற்றும் எப்போது Query Builder பயன்படுத்த வேண்டும் என்பதைத் தெரிந்து கொள்ளுங்கள். Model overhead-ஐத் தவிர்க்க, அதிகப்படியான அறிக்கையிடலுக்கு (heavy reporting) Query Builder-ஐப் பயன்படுத்தவும்.
Queues மற்றும் Background Processing
மெதுவாக அல்லது நம்பகத்தன்மையற்றதாக இருக்கும் எதையும் ஒரு queue-வில் வைக்க வேண்டும். Production queues-களுக்கு Redis-ஐப் பயன்படுத்தவும். உங்கள் workers மற்றும் failed jobs-களைக் கண்காணிக்க Laravel Horizon-ஐப் பயன்படுத்தவும். Jobs-களுக்குத் தரவை அனுப்பும்போது, stale data-வைத் தவிர்க்க முழு model objects-களுக்குப் பதிலாக IDs-களை அனுப்பவும்.
Security மற்றும் Architecture
Mass assignment-க்காக $request->all()-ஐப் பயன்படுத்த வேண்டாம். $request->validated()-ஐப் பயன்படுத்தவும்.
Sanctum (SPAs மற்றும் எளிய tokens-களுக்கு) மற்றும் Passport (முழுமையான OAuth2-க்கு) இடையிலான வேறுபாட்டைப் புரிந்து கொள்ளுங்கள்.
உங்கள் controllers-களை எளிமையாக (thin) வைத்திருங்கள். Business logic-ஐ Services அல்லது Actions-களுக்கு மாற்றவும்.
The Senior Signal
ஒரு ஜூனியர் டெவலப்பர் ஒரு கருவியை எப்படிப் பயன்படுத்துவது என்று அறிவார். ஆனால் ஒரு சீனியர் டெவலப்பர், ஏன் அந்த கருவியைத் தேர்ந்தெடுத்தார் என்பதை அறிவார்.
உங்கள் நேர்காணலில், வெறும் பதிலைக் கொடுக்காதீர்கள். அதன் சாதக பாதகங்களை (trade-offs) விளக்குங்கள். வெவ்வேறு அணுகுமுறைகளின் நன்மைகள் மற்றும் தீமைகளை ஒப்பிடுங்கள். இது உங்கள் தொழில்நுட்ப முடிவுகள் வணிகத்தில் (business) ஏற்படுத்தும் தாக்கத்தை நீங்கள் புரிந்து வைத்துள்ளீர்கள் என்பதைக் காட்டும்.
Source: https://dev.to/nazar_boyko/how-to-prepare-for-a-laravel-interview-8dn
