
اگه فیلم هامون رو دیده باشید، توی یه سکانس حمید هامون و دوست قدیمیش علی عابدینی سر یه کتابی با هم بحث میکنن به اسم "Zen and the Art of Motorcycle Maintenance". ظاهرا موضوع کتاب اینه که از طریق تعمیر موتورسیکلت میشه به عروج عرفانی رسید. خب تو نگاه اول به نظر مسخره میاد؛ حتی تو نگاه دوم و سوم هم همینطور. ولی اگر ما هم به خودمون نگاه کنیم شاید بتونیم چنین چیزاهای بی معنیای رو پیدا کنیم که توی زندگی ما و فقط برای ما معنی پیدا کردن.
زمانی که کتاب Clean Code (کتابی در مورد مرتب و تمیز کد نوشتن اثر uncle bob کبیر) رو شروع کردم، در وضعیتی بودم که اگر شرکت منو اخراج میکرد به خاک سیاه مینشست. البته نه به خاطر توانایی و تخصصم، به این خاطر که کدهامو کسی جز خودم نمیتونست بخونه. رسیدن به سطحی که مد نظر کتاب بود مثل این بود که از ایرانخودرو توقع داشته باشی خودروی سال اروپا رو تولید کنه.
مثلا میگفت متدها باید حداکثر 5 خط باشن. 5 خط :/ . برای منی که متدهایی با 400،500 خط داشتم نشدنی به نظر میرسید. اما خوشبختانه روش رسیدن به این سطح از کمال رو عموباب عزیز به خوبی توضیح داده بودند. رمز موفقیت این بود: "abstraction". میگفت من وقتی وارد کدت میشم چرا اصلا باید جزئیاتو ببینم؟ این جزئیات چشمو خسته میکنن و نمیشه منظور کد رو فهمید. پس چیکار باید بکنیم؟ از انتزاعیترین کارهایی که انجام میدی شروع کن و اصلا کاری نداشته باش داخلش قراره چی بشه. اونا رو بعدا پیادهسازی کن. بعد که اینکارو کردی برو تو تک تک اون کارهایی که نمیدوستی داخلش چیه، همین کارو تکرار کن. اونقدر ادامه بده که دیگه هیچ چیزی رو نتونی انتزاعی کنی و برسی به کوچکترین اجزا. اونوقت پیاده سازی کن.
منم شروع به پیروی از این روش کردم و خب ذره ذره جواب داد. دیگه کدهایی که مینوشتم تمیز بود، متدها کوتاه و انتزاعی بود، نامگذاریها درست بود. بعد از مدتی دیگه حتی کدهای کثیف بقیه رو هم نمیتونستم تحمل کنم و وقتی کدی به دستم میرسید، اول وقت میذاشتم یه ریفکتور اساسی میکردم بعد تازه میرفتم ببینم مشکل کجاست. کد نوسیم هیچوقت در حد خودروی سال اروپا نشد ولی خب از پراید به دناپلاس توربو اتومات تغییر کرد.
اما جدا از پیشرفت شغلی، چیزی که خیلی برام جالب بود این بود که با خوندن این کتاب بخشهایی از شخصیت من هم تغییر کرد. من آدم واقعا منظمتری شدم. دیگه میز کارم شلوغ نیست. اتاقم هم مرتب تره(راستش مامانم هنوز سر تایید این مورد مقاومت میکنه). خیلی پیش میاد که وقتی میخوام کاریو شروع کنم، قبلش اطرافمو مرتب میکنم بعد میرم سراغ کار اصلیم. بگذریم که گاهی اوقات بعد مرتب کردن خسته میشم و کار اصلیمو ول میکنم میخوابم =))). حتی تاثیرشو توی سلیقم هم گذاشته. از لباس، معماری و دکوراسیون شلوغ بدم میاد. وقتی وارد یه خونه میشم با خودم میگم اصلا چرا باید اولین چیزی که نظرمو جلب کرد ساعت دیواری باشه؟ چرا اینقدر شلوغه که مبلاشون که قشنگتره رو ندیدم؟

اگر منم نویسنده بودم شاید کتابی با عنوان Clean Life: The art of clean code in everyday life مینوشتم و ادعا میکردم میشه از طریق کد زدن به سلوک شخصیتی رسید. مقدمش هم تقدیم میکردم به uncle bob و خطاب بهش میگفتم تو به ما ثابت کردی همه عموهای آمریکایی شیطانصفت نیستن. اگر برنامهنویس هستین اکیدا بهتون توصیه میکنم Clean Code رو بخونید و ویدیوهای عموباب(Robert C. Martin) رو توی یوتوب ببینید. واقعا توی زندگی حرفهایتون تاثیر مثبت میذاره و اگر مثل من خل و چل باشید شاید توی شخصیتتون هم تاثیر گذاشت.