مشکل این نیست که هیچکس کد تمیز نمینویسه.
مشکل اینه که کد تمیز تو پروژههای واقعی، زیر فشارِ کار کمکم داغون میشه.
اگه یه مدت تو یه تیم کار کرده باشی، حتماً دیدی: کدی که اوایل مرتب و قابل فهم بوده، با اضافه شدن فیچرهای عجلهای، ددلاینها و تصمیمهای لحظهای، کمکم شلوغ و سختفهم میشه. نه به این خاطر که برنامهنویسا بلد نیستن، به این خاطر که واقعیت پروژه این شکلیه.
کد تمیز یه چیز کاملاً سلیقهای نیست. بعضی چیزاش واضحه: اسم متغیر و فانکشن باید درست باشه، هر تیکه کد باید کار خودش رو بکنه، وابستگیها نباید قاطیپاطی باشن و بشه راحت تغییرش داد بدون اینکه کل سیستم بریزه به هم.
البته همهچیز هم قانون خشک نداره. کدی که امروز تمیزه، ممکنه چند ماه دیگه فقط قابل تحمل باشه.
تعریف سادهش اینه: کدی که تغییر دادنش از نوشتنش کمهزینهتره.
تقریباً هیچ پروژهای از همون اول شلخته شروع نمیشه. همهچی مرتب و با برنامه جلو میره. ولی کمکم ددلاین میاد، مشتری عجله داره، بازار فشار میاره. اگه حواست نباشه، اون نظم اولیه میپاشه.
پروتوتایپی که قرار نبود بمونه.یه کد موقتی مینویسن که فقط یه چیز رو نشون بده. قرار بوده یکی دو هفته بعد بندازنش دور. ولی بیزنس خوشش میاد، میگه یه چیز کوچولو هم بهش اضافه کن. بعد یکی دیگه. بعد یهو همون کد میره تو پروداکشن و میشه هستهی سیستم. اینجا مشکل کد بد نیست، مشکل اینه که تصمیم بد جدی گرفته شده.
ریفکتوری که تموم نمیشه.اگه یه تمیزکاری سالها طول کشیده، معمولاً مشکل از کد نیست. یا تست ندارین، یا معلوم نیست مسئول این بخش کیه، یا همه میترسن دست بزنن چیزی خراب بشه. ریفکتور وقتی به کار واقعی وصل نباشه، میشه کاری که همیشه هست ولی هیچوقت تموم نمیشه.
سنیور سختگیر همیشه خوب نیست.
سنیوری که فقط ایراد میگیره و فضا رو ترسناک میکنه، به تمیز شدن کد کمک نمیکنه. باعث میشه بقیه یواشکی کد بزنن که فقط کار راه بیفته. اینجوری کد بد قایم میشه، نه اینکه درست بشه.
راهحلهای موقت، وقتی دائم میشن دردسر میسازن.
یه هک سریع یا فلگ موقتی بعضی وقتا لازمه. مشکل وقتی شروع میشه که اسم درست نداره، کسی نمیدونه چرا هست، و معلوم نیست کی باید حذفش کنه. اون موقع میشه یه تیکه خطرناک که همه ازش فرار میکنن.
کدی که AI میده معمولاً قشنگه، ولی نمیدونه پروژه قراره کجا بره، چرا این تصمیم گرفته شده، و آخرش کی قراره نگهداریش کنه. کدی که صاحب نداشته باشه، حتی اگه تمیز به نظر بیاد، آخرش دردسر میشه.
بیزنس میخواد زنده بمونه، برنامهنویس میخواد سیستم نخوابه. نه سرعت بدون فکر جواب میده، نه وسواس بیش از حد. کدی که نشه راحت تغییرش داد، بیزنس رو کند میکنه. بیزنسی هم که به کد اهمیت نده، بعداً هزینهشو میده.
ولی واقعبین باشیم. کد تمیز یه مقصد نیست، یه تعهده. تعهد به تیم، به خودِ چند ماه بعدمون، و به پروژهای که قراره زنده بمونه. نه وسواس، نه شلگیری. فقط مسئولیت.
https://dev.to/sylwia-lask/nobody-writes-clean-code-we-all-just-pretend-11d1
—-
🆔 @MdDaily


