در این پست دنبالهدار، قراره ۱۲ قانون یادگیری بهتر برنامهنویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون یازدهم رو بهتر بشناسیم. این قانون میگه چطوری با تقسیم کردن یه پروژه به قسمتهای کوچکتر، میتونیم راحت تر کد بزنیم و پروژه رو با به عمل آوردن مداقه نهایی، به نتیجه غایی برسونیم
احتمالا پیش اومده که یه ایده خیلی خفن به ذهنتون رسیده ولی وقتی خواستین برین سراغ پیاده سازی، دیدید که با مهارت فعلی شما، این ایده بزرگ تر از چیزیه که بتونید از پساش بر بیاید. بهترین کار در این مواقع، تقسیم کردن این ایده به بخشهای کوچک تر و پیاده سازی هر بخش کوچک، به صورت مستقل هست.
فرض کنید قراره یه ربات بسازید که براتون لقمه بگیره. این ربات هیچ درکی از نون، پنیر، خیار، گوجه، چاقو و پیچیدگی ترکیب اونها با هم نداره. در واقع، ما هم برای انجام دادن کار با این سادگی، باید از مغزمون کار بکشیم. حتی کیفیت و دقت انجام این کار به نسبت ساده هم، برای افراد مختلف، با هم یکی نیست.
یه نفر تکههای گوجه و تکههای خیار رو هم اندازه و شبیه به هم میبره، ولی یه نفر دیگه ممکنه از تابع رندوم مغزش استفاده کنه!
پس هر کسی دوست داره لقمهش رو یه جور خاصی بچینه. بنابراین، رباتی که بتونه دقیقا همه کارها رو مطابق خواسته انسان انجام بده، پیچیده خواهد بود. ولی چون ما برنامه نویسهای خفنی هستیم، میتونیم کارهای مختلف این ربات رو به بخشهای مختلفی تقسیم کنیم و هر قسمت رو به صورت جدا پیش ببریم.
این ربات نیازی نداره بدونه که نون چیه، یا پنیر از چی درست شده، فقط کافیه جای هر کدوم و میزان استفاده از هر کدوم از مواد رو بدونه:
حالا باید هر کدوم از موارد بالا رو به بخشهای کوچیکتر تقسیم کنیم. وقتی داریم این پروسه تقسیم کردن رو انجام میدیم، ممکنه راههای مختلفی برای انجام دادن هر قسمت به ذهنمون برسه.
مثلا اینکه قراره پنیر رو روی نون بمالیم، یا تکههای کوچیک پنیر رو در یه ردیف قرار بدیم؟ باید به ربات بگیم چاقو رو برداره یا لازمه یه بازو که بهش چاقو هم متصل هست، به ربات اضافه کنیم؟
هر چقدر بیشتر مسئلهها رو تقسیم کنیم و موضوعی که قراره حل کنیم رو بهتر تعریف کنیم، در نهایت کار سادهتری برای به هم وصل کردن این تیکههای کوچیک خواهیم داشت. و هر چه این تکههای کوچک، سادهتر باشن، راحتتر میتونیم حلشون کنیم.
یادتون نره دیدگاه و نقدهاتون باعث بهتر شدن پستهای بعدی میشه و به یه نفر انرژی میده برای ادامه راه ¯\_(ツ)_/¯