حق های برنامه نویسی (قسمت اول)

قبلترها، توی یه گوشه از سیستمم یه مجموعه عکس داشتم درمورد جملات قصار برنامه نویسی از آدمای موفقی که توی داستان نرم افزار و اینا فعالیت دارن و خب، اگرچه شاید به اندازه ما هم کد نزدن، اما انصافاً حرفاشون حق بوده و خودمم هربار بعد از مرور مجددشون، میبینم اوووف ، چقدر این حرف تازگی داره و من خوب بهش توجه نکردم. لذا جا داشت که این مطلب رو به عنوان مجموعه اول از حق های برنامه نویسی نام گذاری کنم. حالا بریم ببینیم این بزرگان چیا میگفتن :کد حذف شده، کد دیباگ شده س (جف سیکل)حق اول. غیر از اینه؟ اگه بدون فکر کردن و دیباگ کردن کدت رو پاک میکنی که اصن اینجا چیکار میکنی لامصب؟ تو خودت باید یه پیج جدا از جملات حق برای خودت راه بندازی اما اگر دیباگ میکنی و بعد از کلی مشقت و سختی و حساسیت و استرس، چندخط کد کهنه رو میریزی دور، همینجا از طرف مردم کشورم بهت خسته نباشید میگم و دستت رو میبوسم. حقیقتاً یکی از بهترین فعالیتها برای بهبود کارایی و خوانا کردنیه تیکه کد، که به قول معروف باقیات صالحات کار ما هم به حساب میاد، دور ریختن کدهای قدیمی و کهنه س. پس بهش توجه کنیمگاهی اوقات لازمه کدتون رو رها کنید و بزارید به حال خودش بمونه (جویس ویلر)آخ آخ. چقد این جمله رو دوس دارم. نمیدونم چندبار برای شما این اتفاق افتاده که روی یه مسئله ای گیر کردید و هرچقدر تقلا میکنید انگار بیشتر توی اون مردابِ خودساخته فرو میرید و هیچ راهی برای حلش پیدا نمیکنید. خب توی برنامه نویسی که ماشالا هنر حل مسئله س، ممکنه هرروز این اتفاق بیفته و هرچی چنگ به خودت بزنی و موهاتو بکنی و به در و دیوار مشت بکوبی فایده ای نداره (که نداره)، درعوض میتونی بلند شی و بری یه کمی قدم بزنی تا ذهنت باز شه و خب، نکته مثبت ماجرا اینجاس که بعد از این استراحت کوتاه، وقتی برمیگردی سرکار، میبینی که بله، به یه راه حل رسیدی و مشکلت حل شده. یا حتی انقدر تو اون لحظه تحت فشار بودی که اصن همه این مشکلات به خاطر یه سوتی خیلی کوچیک و مسخره اتفاق افتاده که خودت هم از دیدنش خجالت زده ای. (مثلا break point رو جای اشتباهی گذاشتی یا یه مقدار رو خیلی تابلو اشتباه پاس دادی ...)البته این هم بسیار پیش میاد (به خصوص برای خودم) که روی اون مشکل قفلی میزنیم و هرچی هم با بیل و کلنگ میزنن تو سرمون که بابا ولش کن، پاشو بیا یه هوا بخور، ول کن نیستیم و میگیم نه! من باید اینو حل کنم و اونجاست که توی همون مرداب گرفتار میشیم. لذا جا داره با با تمرین و جدی گرفتن این ماجرا، این راهکارو توی ذهنمون جا بندازیم.برای کدِ بد کامنت ننویسید، برید درستش کنید (برایان کرنیگان)قابل توجه بچه خوشگلا. عمو اون کد رو باید درست کنی، داستان نوشتن و این بازیا دیگه قدیمی شده، ما خودمون ختم روزگاریم و الخ.حالا داستان چیه، اگه یه خورده کلی تر به این جمله نگاه کنیم میبینیم که خیلی وقتا دچار این مسئله میشیم. از یه کدی میترسیم و به هزار بهونه میخایم از درست کردنش فرار کنیم، اما حاضریم با جنگولک بازی و شکل و نمودار کشیدن برای اون از زیر کار دربریم. همین موضوع درمورد تست نوشتن هم پیش میاد. قبول دارید؟ طرف حاضره به هزار زبون زنده دنیا فانکشنش رو توضیح بده اما زورش میاد تست بنویسه. داداش تست بنویس ما خودمون بلدیم بریم بخونیم.خب. بریم سراغ جمله بعدی تا بیشترازین قاطی نکردیمزبانی که نحوه نگاه شما رو به برنامه نویسی تغییر نده ارزش یادگیری نداره (آلن پرلیس)البته استاد اینجا یه کمی تند گفته و در این حد هم نیست. اما اگه شما هم مثل من با استاد موافقید که چه بهتر. واقعاً وقتی میخایم روزها و شبامون رو با یه زبان بگذرونیم و به شکل رمانتیکتر، باهاش زندگی کنیم، طبیعیه که باید موقع انتخابش دقت کنیم و کلی از خصوصیاتش بهره ببریم تا درنهایت بفهمیم که چقد به کارمون میاد. اتفاقی که مشابهش برای من هم افتاد، درحالیکه تا سالها زبان اصلی برنامه نویسیم سی شارپ بود، و به شدت طرفدار سرسختش بودم به توصیه یه دوست رفتم با golang آشنا شدم و الان کلا نظرم برعکسه. (البته که تابلوئه همه زبانها خوبن و هرکدوم خاصیت خودشون رو دارن اما منظور توی کاربرد و نحوه کدنویسی مونه که شاید بخشیش هم شخصی باشه). و خب ازون زمان به بعد، اساساً درک مسئله م به شدت تغییر کرد. به جز اینکه، جایی توی یه انجمن برنامه نویسی از یه برنامه نویس خیلی پیر خوندم که گفته بود، سعی کنید هر دوسال لااقل با یه زبان جدید آشنا شید و یه کمی باهاش کار کنید (حتی اگه نمیخاید به طور کامل بهش مهاجرت کنید) و خب این حرف خیلیهای دیگه هم هست (خیلی دوست دارم نظر و تجربه های شما رو هم بدونم)آزمایش منجر به شکست میشه و شکست، منجر به درک (برت روتن)اول اینکه این آقای برت روتن، مهندس هوافضاس و تا حالا یه خط هم کد نزده، اما خب اینکه دلیل نمیشه.دوم اینکه نمیدونم این جمله تو بحث هوافضا چقد جواب میده، مثلاً فک کن یه سری آدمو میفرستن فضا، بعد اونا همونجا گیر میکنن یا موشکشون میتَرَکه که این میشه یه شکست، ولی اون بدبختا دیگه بعدش چیو باید درک کنن؟ (درکم از هوافضا در همین حده)ولی خب، خوشبختانه توی کامپیوتر و کدنویسی به گمونم اونقدری خطرناک نیست، لذا این جمله کبیر رو اینجا آوردیم. ضمن اینکه فکر میکنم همینطوره. چقدر چیزهایی که یاد گرفتیم مدیون کدهای پرخطا، تستهای شکست خورده (شکست خورده به ترجمه failed!) و حتی تسکهایی بوده که پیش از شروع، حتی جرأت انجام دادنشو نداشتیم ؟پس بیاید این جمله رو یه کمی تغییر هم بدیم و اصلا بگیم :هرچی بیشتر اشتباه میکنی، بیشتر تجربه میکنی و هرچی بیشتر تجربه میکنی، بیشتر میفهمی. (هرچی هم بیشتر بفهمی بیشتر بهت پول میدن!)دو راه برای نوشتن برنامه های بدون خطا وجود داره، ولی راه سوم از همه اونا بهتره (آلن پرلیس)وای خدایا کاش میشد صدای خنده رو هم یه جوری نوشت. من این جمله رو به شدت دوست دارم. استاد مارو دعوت کرده بریم دنبال راه سوم که البته نمیدونم کجاس (شاید منظورش این بوده که تنها بریم خونه ش :o )اما حالا که دو جمله از آلن پرلیس گفتیم، بد هم نیست بگیم که ایشون به خاطر دستاوردهای فراوان در توسعه زبان های برنامه نویسی، اولین برنده جایزه معتبر تورینگ بوده و الان هم به گمونم بیشتر از 30 ساله که فوت کرده (خدایش بیامرزد)