تسلط بر برنامهنویسی از طریق بازسازی فناوریها
شما هر روز از فریمورکها و کتابخانهها استفاده میکنید. میدانید چگونه از APIهای آنها استفاده کنید، اما نمیدانید در درون آنها چه میگذرد.
فلسفه «ساختنِ X توسط خودت» (Build Your Own X) این وضعیت را تغییر میدهد. شما ابزارهای بنیادی را از صفر بازسازی میکنید تا توسعه نرمافزار را عمیقتر درک کنید.
ابزارهای مدرن پیچیدگیها را پنهان میکنند. این رویکرد، آن لایهها را کنار میزند. شما با مشکلات واقعیای روبرو میشوید که مهندسان هر روز با آنها دستوپنجه نرم میکنند.
چرا باید این کار را انجام دهید:
• درک عمیق: یاد میگیرید که چرا ابزارها وجود دارند و چه موازنههایی (trade-offs) در طراحی آنها انجام شده است. • حل مسئله: با چالشهای طراحی روبرو میشوید که تفکر معماری شما را تقویت میکند. • دیباگ کردن بهتر: وقتی کد با خطا مواجه میشود، میدانید کجا را باید بررسی کنید، چون از ساختار داخلی آن آگاه هستید. • رشد شغلی: مصاحبهکنندگان برای کاندیداهایی که بتوانند «چگونگی» و «چراییِ» پشت یک ابزار را توضیح دهند، ارزش زیادی قائل هستند.
از کوچک شروع کنید. چیزی را انتخاب کنید که اغلب از آن استفاده میکنید.
ایدههایی برای اولین پروژه شما:
- یک وبسرور ساده برای مدیریت درخواستهای HTTP.
- یک کوتاهکننده URL برای نگاشت لینکهای طولانی به کدهای کوتاه.
- یک ذخیرهساز کلید-مقدار (key-value store) برای ذخیره دادهها در حافظه.
- یک تجزیهکننده آرگومانهای خط فرمان (command-line argument parser).
- یک فریمورک MVC کوچک برای مسیریابی (routing) و نمایش (views).
سعی نکنید یک ابزار آماده برای تولید (production tool) بسازید. فعلاً نگران امنیت یا سرعت نباشید. روی منطق اصلی تمرکز کنید.
این مراحل را دنبال کنید:
- درباره ابزار واقعی تحقیق کنید. اسناد طراحی را بخوانید و کدهای متنباز را بررسی کنید.
- بخشهای اصلی را شناسایی کنید. یک وبسرور به سوکتها (sockets)، یک تجزیهکننده (parser) و راهی برای ارسال پاسخها نیاز دارد.
- یک مجموعه ویژگی حداقلی تعریف کنید. اگر یک کوتاهکننده URL میسازید، روی نگاشت و تغییر مسیر (redirecting) تمرکز کنید. فعلاً از حساب کاربری و تحلیل دادهها (analytics) صرفنظر کنید.
زبانی را انتخاب کنید که میشناسید یا میخواهید یاد بگیرید. هدف، منطق است، نه نحو (syntax) زبان.