𝗠𝗮𝘀𝘁𝗲𝗿 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗶𝗻𝗴 𝗕𝘆 𝗥𝗲𝗰𝗿𝗲𝗮𝘁𝗶𝗻𝗴 𝗧𝗲𝗰𝗵𝗻𝗼𝗹𝗼𝗴𝗶𝗲𝘀
நீங்கள் ஒவ்வொரு நாளும் frameworks மற்றும் libraries-களைப் பயன்படுத்துகிறீர்கள். அவற்றின் APIs-களை எவ்வாறு பயன்படுத்துவது என்று உங்களுக்குத் தெரியும். ஆனால் அவை உள்ளே எவ்வாறு செயல்படுகின்றன என்பது உங்களுக்குத் தெரியாது.
"Build Your Own X" தத்துவம் இதை மாற்றுகிறது. மென்பொருள் மேம்பாட்டை (software development) புரிந்துகொள்ள, அடிப்படைத் கருவிகளை நீங்கள் ஆரம்பத்திலிருந்து (from scratch) மீண்டும் உருவாக்குகிறீர்கள்.
நவீன கருவிகள் சிக்கல்களை மறைத்துவிடுகின்றன. இந்த அணுகுமுறை அந்த அடுக்குகளை நீக்குகிறது. பொறியாளர்கள் ஒவ்வொரு நாளும் எதிர்கொள்ளும் உண்மையான சிக்கல்களை நீங்கள் இதில் சந்திக்கிறீர்கள்.
நீங்கள் ஏன் இதைச் செய்ய வேண்டும்:
• ஆழமான புரிதல்: கருவிகள் ஏன் உள்ளன மற்றும் அவை செய்யும் சமரசங்களை (trade-offs) நீங்கள் கற்றுக்கொள்கிறீர்கள். • சிக்கலைத் தீர்த்தல்: உங்கள் கட்டடக்கலைச் சிந்தனையை (architectural thinking) வளர்க்கும் வடிவமைப்பு சவால்களை நீங்கள் எதிர்கொள்கிறீர்கள். • சிறந்த பிழைத்திருத்தம் (Debugging): குறியீடு (code) தோல்வியடையும் போது எங்கு தேட வேண்டும் என்பது உங்களுக்குத் தெரியும், ஏனெனில் அதன் உட்புறச் செயல்பாடுகள் உங்களுக்குத் தெரியும். • தொழில்முறை வளர்ச்சி: ஒரு கருவியின் பின்னணியில் உள்ள 'எப்படி' மற்றும் 'ஏன்' என்பதை விளக்கும் விண்ணப்பதாரர்களை நேர்காணல் செய்பவர்கள் மதிக்கிறார்கள்.
சிறிய அளவில் தொடங்குங்கள். நீங்கள் அடிக்கடி பயன்படுத்தும் ஒன்றைத் தேர்ந்தெடுங்கள்.
உங்கள் முதல் திட்டத்திற்கான யோசனைகள்:
- HTTP கோரிக்கைகளைக் கையாள ஒரு எளிய web server.
- நீண்ட இணைப்புகளைச் சுருக்கமான குறியீடுகளாக மாற்ற ஒரு URL shortener.
- நினைவகத்தில் (memory) தரவைச் சேமிக்க ஒரு key-value store.
- ஒரு command-line argument parser.
- routing மற்றும் views க்கான ஒரு சிறிய MVC framework.
ஒரு production கருவியை உருவாக்க முயற்சிக்காதீர்கள். பாதுகாப்பு அல்லது வேகம் பற்றி இப்போதைக்கு கவலைப்பட வேண்டாம். அதன் முக்கிய தர்க்கத்தில் (core logic) கவனம் செலுத்துங்கள்.
இந்த வழிமுறைகளைப் பின்பற்றுங்கள்:
- உண்மையான கருவியைப் பற்றி ஆராய்ச்சி செய்யுங்கள். வடிவமைப்பு ஆவணங்களைப் (design docs) படியுங்கள் மற்றும் open-source குறியீடுகளைப் பாருங்கள்.
- முக்கியப் பகுதிகளைக் கண்டறியுங்கள். ஒரு web server-க்கு sockets, ஒரு parser மற்றும் பதில்களை அனுப்பும் முறை தேவை.
- குறைந்தபட்ச அம்சத் தொகுதியை (minimum feature set) வரையறுக்கவும். நீங்கள் ஒரு URL shortener-ஐ உருவாக்கினால், mapping மற்றும் redirecting ஆகியவற்றில் கவனம் செலுத்துங்கள். பயனர் கணக்குகள் மற்றும் analytics ஆகியவற்றை இப்போதைக்குத் தவிர்க்கவும்.
உங்களுக்குத் தெரிந்த அல்லது நீங்கள் கற்க விரும்பும் ஒரு மொழியைத் தேர்ந்தெடுங்கள். இலக்கு தர்க்கம் (logic) மட்டுமே, syntax அல்ல.