کد خوب نیازی به مستندات ندارد!

کد خوب نیازی به مستندات ندارد!

کد خوب (Good Code) مثل یه ماشین اسپرت با یه سیستم صوتی فوق العادست، که بدون هیچ مشکلی به نهایت سرعت خودش میرسه. وقتی مشکلی براش پیش بیاد هر تعمیر کاری در مدت زمان کوتاهی با ابزار های معمول، می تونه اون رو تعمیر کنه. ولی کد بد (Bad Code) مثل ماشینیه که گفته شده ممکنه به سرعت ۲۰۰ کیلومتر برساعت برسه و سیستم صوتیش هم فقط نوار کاست رو پخش می کنه! هر دفعه که بخواین آینه بغل رو تنظیم کنین، ماشین آتیش می گیره و فقط بوسیله همون کسی که ماشین رو ساخته تعمیر میشه!

کد خوب مثل یک کتاب عالیه که توسط نویسنده بزرگی نوشته شده

  • قابل فهم است.
  • به خوبی به بخش های کوچکتری تقسیم شده که هر کدوم یه بخش از موضوع رو شرح میدن.

کد بد مثل کتاب بد یه نویسنده تازه کاره

  • همه قسمت ها به هم ربط دارن ولی مشخص نیست که دقیقا موضوع هر بخش چیه.
  • یه موضوع بارها و بارها توضیح داده شد، بدون هیچ دلیل مشخصی!
  • نویسنده چند موضوع مختلف رو مطرح کرده که همه در تضاد با هم هستن. ممکنه یه خون آشام ببینین که داره آفتاب میگیره !

نکاتی برای نوشتن یک کد خوب و بهینه :

  • خوانایی (Readability) : هم خودتون و هم هرکس دیگه ای که کد رو میبینه باید به راحتی متوجه بشه.
  • قابل نگهداری (Maintainability) : باید بشه کد رو به راحتی تغییر داد.
  • سادگی (Simplicity) : از نوشتن کد بیوده و بیش از حد نیاز خودداری کنید.
  • بهره وری (Efficiency) : کد شما باید بتونه با نهایت سرعت کار کنه.
  • وضوح (Clarify) : اگر کد شما واضح باشه، بیشتر اوقات حتی نیاز به کامنت گذاری هم نیست. اسم متد ها و متغیر ها رو به دقت انتخاب کنید. متد های بزرگ رو به بخش های کوچکتری تبدیل کنید.
  • نرخ “لعنت بهش” پایین (Low WTF Ratio) : سعی کنید که طوری کد بزنید که وقتی یه دولوپر دیگه کد شما رو می خونه کمتر بگه “لعنت بهش” !!

تست خوانایی کد :

از یکی از دوستان دولوپر تون که تا حالا کد شما رو ندیده بخواین که کد شما رو بررسی کنه و برای شما توضیح بده که هر قسمت چیکار می کنه.هر چی تعداد دفعاتی که دوستتون متوجه یه قسمت نشه و خودتون باید به شخصه بهش توضیح بدین بیشتر باشه، کد شما به همون میزان بدتره.

اگر دوست شما سوالات زیادی نپرسه و به تنهایی و بدون کمک شما متوجه کد بشه، به احتمال خیلی زیاد کدی که شما نوشتن یک کد خوب و بهینه ست.

شما وقتی دارین یه کد خوب می نویسین که :

  • راه حل هایی که استفاده می کنید، هوشمندانه ست نه پیچیده!
  • الگوریتم ها بهینه هستند، هم از نظر سرعت و هم از نظر خوانایی.
  • کلاس ها، متدها و متغیر ها به خوبی نام گذاری شدن و بقیه فقط با دیدن اسم اونها تقریبا متوجه کاری که قراره انجام بدن، میشن.
  • وقتی صبح شنبه سر کار برمی گردین، خیلی راحت بتونین متوجه کدهای چند روز پیش بشین و سریع کار رو ادامه بدین.
  • از قسمت های مختلف کد بشه بارها استفاده کرد.
  • تا حد امکان متد ها رو کوچیک نگه دارین، بطوریکه هر متد فقط یک کار رو انجام بده.
  • بدون نگاه کردن به کدهای داخل یه متد، متوجه میشن که اون متد چه کاری انجام میده.
  • هر کلاس یه وظیفه معین و مشخص داره که خیلی راحت میشه اون رو از بقیه کلاس ها تشخیص داد.
  • وقتی که بعد از یه مدت خیلی راحت بتونین یه قابلیت جدید رو به کدتون اضافه کنید.

کد خوب نیازی به مستندات نداره!

Steve McConnell

دیدگاه‌تان را بنویسید: