واقعیت اینه که خیلی مواقع میشه کد هایی رو مثال زد که طبق هیچ قاعده ای تمیز نیستن ولی خیلی عالی کار میکنن و از لحاظ کارایی یا همون performance هیچ مشکلی ندارن. پس چرا همش میشنویم که باید کد تمیز نوشت. نوشتن کد تمیز به چه دردی میخوره و اصلا کد مون چقدر باید تمیز باشه؟ اینا سوال هاییه که سعی میکنیم در ادامه بهشون جواب بدیم.
اگه برای کد تمیز نوشتن دنبال بهانه ای از جنس performance میگردید احتمالا نمیتونید بهانه ای پیدا کنید که خودتون یا دیگران رو متقاعد کنه که کد تمیز نوشتن لازمه. اتفاقا یک جایی مطلبی میخوندم که نوشته بود برنامه نویس ها اون اوایل کد هاشون رو طوری مینوشتن که اونقدر پیچیده و کثیف باشه که هیچ کس غیر از خودشون قادر نباشه اونها رو بخونه در حالی که از لحاظ کارکرد هیچ مشکلی نداشتن. اما با گسترش بازار IT و تخصصی شدن حوزه های مختلف توسعه نرم افزار برنامه نویس ها متوجه شدن که نمیتونن به تنهایی از پس توسعه پروژه ها بربیان و این نیاز وجود داره که به صورت گروهی کار کنن. اینجا بود که برنامه نویس ها مجبور شدن کد های همدیگر رو بخونن و روی کد هایی که یک نفر دیگه نوشته تغییر انجام بدن. اینجا بود که این نیاز احساس شد که کد باید تمیز باشه. دلیلش هم این بود که سطح تخصص و توانایی کد خوانی و فهم کد افراد مختلف متفاوته و اگر قراره همه با هم کدی رو بخونیم و همه روش تغییر انجام بدیم باید سعی کنیم کد رو طوری بنویسیم که تا جایی که ممکنه برای همه قابل فهم باشه. در واقع کد تمیز روی کارکرد نرم افزار تاثیر نمیگذاره بلکه روی قابلیت دیگه ای که maintainability یا قابلیت نگهداری نرم افزار است تاثیر میگذاره. maintainability وقتی بالا هست که کد اون قدر ساده و تمیز نوشته شده باشه که تعداد زیادی از برنامه نویس ها بتونن بیان کد رو بخونن و بدون مشکل بفهمن و تغییر بدن و وقتی در کمترین حالت خودش هست که فقط کسی که کد رو نوشته بتونه بفهمه چی نوشته و فقط خودش هم بتونه تغییرش بده.
واقعیت اینه که توی استارتاپ ها و کسب و کار های اینترنتی نو پا اسم clean code رو آوردن هم نوعی آرمان گرایی محسوب میشه. چون توی این کسب و کار ها بخش زیادی از تمرکز کل تیم خرج توسعه بیزینس و گرفتن بازار هدف میشه و سرعت توسعه نرم افزار در اولویته (یکی از دلایل اصلی محبوبیت زبان های مفسری مثل پایتون و جاوا اسکریپت هم همین سرعت و سادگی توسعه با اون هاست و کسی ادعا نمیکنه چون مثلا پایتون مزیت performance داره من اون رو انتخاب کردم). پس چیکار کنیم ؟ تمیز کد زدن رو بیخیال شیم؟ نه. ما وظیفه مونه تا جایی که ممکنه و به کسب و کار آسیب جدی نمیرسه قواعد کد نویسی تمیز رو رعایت کنیم. البته باید حواسمون به بدهی فنی ای که اینجا ایجاد میشه هم باشه. چون چیز هایی که بلد نبودیم یا یادمون رفته رعایت کنیم یا بخاطر سرعت توسعه بیخیالشون شدیم از بین نمیرن بلکه تبدیل میشن به بدهی ما به نرم افزارمون.
در مورد این که بدهی فنی چیه میتونید اینجا و اینجا بخونید.
خوشحال میشم نظرتون رو راجع به این مطلب و مطالب آینده بدونم و نقص های موجود در متنم رو با نظر شما اصلاح کنم.