رفتن به محتوا
رویای سبز نرم افزارهای آینده
رویای سبز نرم افزارهای آینده
  • درباره فیوسافت
  • خدمات
    • برون سپاری (Outsourcing)
    • مشاوره و آموزش
  • نمونه کار
  • وبلاگ
  • تماس با ما
  • فارسی
  • درباره فیوسافت
  • خدمات
    • برون سپاری (Outsourcing)
    • مشاوره و آموزش
  • نمونه کار
  • وبلاگ
  • تماس با ما
  • فارسی

کد کثیف چیست و چگونه آنها را شناسایی کنیم؟

مکان شما:
  1. فیوسافت
  2. برنامه نویسی
  3. کد کثیف چیست و چگونه…
مهر۱۵۱۳۹۸
برنامه نویسیbad code

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

Bjarne Stroustrup  (خالق ++C) :

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

 

Grady Booch (استاد اعظم) :

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

 

Dave Thomas (نویسنده و یکی از امضا کنندگان مانیفست اجایل):

  • کد تمیز این خاصیت را دارد که افرادی غیر از نویسنده اصلی آن کد، براحتی می توانند آن را بخوانند، بفهمند و تغییر دهند.
  • کد باید با تست های واحد (unit test) هایش همراه باشد.
  • وابستگی ها به حداقل رسیده باشد

 

Ward Cunningham(یکی از پدیدآورندگان XP) :

  • وقتی یک کد تمیز را می خوانید، هر قطعه کدی را که می خوانید دقیقا همان چیزی خواهد بود که انتظارش را دارید.
  • هیچ ابهام و تعجبی پیش نمی آید.
  • همه چیز ساده و قابل درک است.

 

مارتین فولر نیز جمله جالبی دارد که می گوید :

“هر احمقی می‌تواند کدی بنویسد که کامپیوتر درک کند. برنامه‌نویسان خوب کدی می‌نویسند که انسان‌ها قادر به درک آن باشند.”

 

حال که با کد تمیز آشنا شدیم اگر بخواهم سریع و کوتاه کد کثیف را معرفی کنم می گویم کد کثیف کدی می باشد که :

  • هزینه نگهداری آن زیاد باشد
  • تغییر و توسعه آن سخت باشد

 

روش شناسایی کدهای کثیف

·        کد وابسته، سفت و سخت

هنگامی که می خواهید یک بخشی از کد را ویرایش کنید. باید حواستان به کد سایر جاهای دیگر نیز باشد. باید آنها را نیز ویرایش کنید. در حالی که آنها ربطی به تغییر شما ندارند. کد وابسته کدی است که وابستگی بین بخش های کد به هم بسیار می باشد. در این نوع کدها شما نمی توانید یک تغییر ایزوله ایجاد کنید.

·        کد شکننده

کد شکننده بسیار بدتر از کد وابسته می باشد. حداقل در کد وابسته هنگام کامپایل به خطا برمی خوریم. در کد شکننده ، اگر شما یک قطعه کوچک از کد را در یک ماژول تغییر دهید، یک ویژگی کاملاً متفاوت را در یک ماژول کاملاً متفاوت دچار مشکل می شود. و هیچ راه آسانی برای یافتن این خطاها در طول توسعه وجود ندارد.

·        کد غیر قابل استفاده مجدد

به عنوان مثال، وقتی شما بخواهید یک ویژگی جدید را در پروژه خود پیاده کنید که همان کاری است که همکار شما برای یک پروژه متفاوت انجام داده است. اما شما به راحتی نمی توانید از کد همکارتان در پروژه خودتان استفاده مجدد کنید زیرا این کد به برخی دیگر از ویژگی های نامربوط پروژه آنها بستگی دارد که به نوبه خود به سیستم زیرساختی و یا پایگاه داده ای که در پروژه خود ندارید هم بستگی دارد. و بهتر است که پیاده سازی خود را برای آن ویژگی بنویسید.

این مشکل معروف به “گوریل و موز” است:

“شما یک موز می خواستید اما آنچه که گرفته اید یک موز در دست یک گوریل همراه با کل چنگل می باشد.”

 

در انتها یک جمله را یادآور شوم و آن اینست که :

کد تمیز کدی است که توسط کسی که به آن اهمیت می دهد نوشته شده است.

 

در مطلب بعدی از سری “کد تمیز” منابعی مفیدی برای یادگیری کد تمیز را معرفی خواهم کرد.

نظر شما درباره تعریف کد تمیز و کد کثیف چیست؟ شما روش های دیگری را برای شناسایی کد کثیف دارید؟  لطفا در بخش نظرات تجربیات خود را با ما درمیان بگذارید.

دسته بندی: برنامه نویسی۱۵ مهر ۱۳۹۸۱ دیدگاه
اشتراک گذاشتن
اشتراک در فیسبوکاشتراک در فیسبوک توییت کردناشتراک در توئیتر این را سنجاق کناشتراک در پینترست اشتراک در لینکدیناشتراک در لینکدین

نویسنده : mahdi

ناوبری مطلب

قبلیپست قبلی:مضرات کد کثیفبعدینوشته بعدی:کارگاه کد تمیز و دوست داشتنی

مطالب مشابه

برگزاری رویداد کد تمیز
۱۵ بهمن ۱۳۹۸
برگزاری رویداد توسعه مبتنی بر آزمون
۲۴ دی ۱۳۹۸
چرا باید اول آزمون بنویسیم؟ (Test-First)
۱۹ دی ۱۳۹۸
پشتیبان گیری از داده های کاربر با استفاده از Auto Backup – اندروید
۱۲ آبان ۱۳۹۸
آیا شما یک پسر پیش آهنگ هستید؟
۲۱ مهر ۱۳۹۸
angular architecture
نمای کلی معماری انگولار
۲۰ مهر ۱۳۹۸

۱ دیدگاه

  1. مهدی هوشمندی :
    ۱۸ مهر ۱۳۹۸ در ۱:۳۰ ب.ظ

    بنده یک فریمورک مبتنی بر استور پروسیجر ایجاد کرده ام که به لحاظ ایزوله کدنویسی بسیار به تعریف کدنویسی تمیز شباهت دارد
    SP-Based.com

     پاسخ دادن

دیدگاهتان را بنویسید لغو پاسخ

آدرس ایمیل شما منتشر نخواهد شد. فیلد های ضروری مشخص شده اند *

12 + 13 =

ارسال نظر

آخرین نوشته ها
  • اپ رعنااستوری
    دریافت رایگان رعنااستوری
    ۲۲ مهر ۱۳۹۹
  • داستان کاربر – بخش دوم
    ۱۱ اسفند ۱۳۹۸
  • داستان کاربر
    ۲۹ بهمن ۱۳۹۸
  • برگزاری رویداد کد تمیز
    ۱۵ بهمن ۱۳۹۸
  • کارگاه آموزشی Sprint Planning
    ۰۳ بهمن ۱۳۹۸
  • جلسه برنامه ریزی اسپرینت
    ۰۲ بهمن ۱۳۹۸
پروژه های اخیر
آخرین نوشته ها
  • اپ رعنااستوری
    دریافت رایگان رعنااستوری
    ۲۲ مهر ۱۳۹۹
  • داستان کاربر – بخش دوم
    ۱۱ اسفند ۱۳۹۸
  • داستان کاربر
    ۲۹ بهمن ۱۳۹۸
آخرین پروژه ها
در تماس باشید!

ارسال

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