چگونه می توان قسمتهای بد بو کد خود را پیدا کرد (قسمت دوم)

 عکس پروفایل نویسنده

<33>

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

بوی کد بیشتری وجود دارد. بیایید رایحه ها را تغییر دهیم چندین علائم و موقعیت را مشاهده می کنیم که باعث می شوند در کیفیت پیشرفت خود شک کنیم. بیایید چند راه حل احتمالی را بررسی کنیم.

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

این قسمت دوم است. قسمت I را می توان در اینجا یافت.

Code Smell 06 – برنامه نویس بسیار باهوش

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

منبع تصویر: ponsh =”> منبع پاراگراف “> مشکلات

  • خوانایی
  • قابلیت نگهداری
  • کیفیت کد
  • بهینه سازی زودرس

راه حل

  • کد را بازآفرینی کنید
  • از نام های بهتر استفاده کنید

    مثال

    • حلقه های بهینه شده

    استثنا

    • کد بهینه شده برای عملیات سطح پایین.

    کد نمونه

    اشتباه

    درست

    تشخیص

    تشخیص خودکار در برخی از زبانها امکان پذیر است. برخی از هشدارهای مربوط به پیچیدگی ، نامهای بد ، متغیرهای افزایش پست و غیره را مشاهده کنید

    همچنین به عنوان شناخته شده است

  • Obfuscator
  • نتیجه گیری

    توسعه دهندگان بسیار زیرکی برای رجزخوانی کد رمزگونه می نویسند. توسعه دهندگان هوشمند کد پاک می نویسند. هر بار ضربه هوشمندانه بزنید.

    برچسب ها

  • اعلامی

    Code Smell 07 – متغیرهای بولی

    استفاده از متغیرهای boolean به عنوان پرچم ، اجرای تصادفی را آشکار می کند و کد را با Ifs آلوده می کند.

    منبع تصویر: Phil Hearing on Unsplash

    مشکلات

    • قابلیت گسترش
    • مقایسه در برخی از زبانها

    راه حل

    اگر Boolean از موجودی در دنیای واقعی نقشه بگیرد ، ایمن است . درغیر اینصورت به عنوان یک کشور برای حمایت از قابلیت توسعه مدل سازی کنید. این نیز از اصل باز / بسته پیروی می کند.

    مثال

    استثنا

  • قوانین واقعی / نادرست در دنیای واقعی

    کد نمونه

    اشتباه < / strong>

    درست

    ردیابی

    تشخیص خودکار می تواند استفاده بولی را هشدار دهد اما این می تواند نادرست باشد.

    روابط

    بعضی از زبانها با مقایسه کننده های بولی مشکل دارند.

    منبع خطای مشترک.

    همچنین شناخته شده A s

  • پرچم سوus استفاده کننده

    برچسب ها

    • اعلامی < li> بدوی

    نتیجه گیری

    هنگام اعلام بولی موارد بیشتر مراقب باشید. نگهداری و گسترش پرچم ها دشوار است. درباره دامنه بیشتر بیاموزید یا سعی کنید به الگوی طراحی حالت مهاجرت کنید. به جای ifs / switch / موارد از چند شکلی استفاده کنید.

    Code Smell 08 – Long Chains of Coactions

    ساختن زنجیرهای بلند باعث ایجاد اتصال و اثر موج دار می شود. هر تغییر زنجیره ای کد را می شکند.

    Unsplash => “paragraf”> مشکلات

    • اتصال
    • شکست کپسول سازی

    راه حل ها

  • روش های متوسط ​​ایجاد کنید.
  • به قانون دمیتر فکر کنید.
  • پیام های سطح بالاتری ایجاد کنید.

    کد نمونه

    اشتباه

    درست < / strong>

    ردیابی

    تشخیص خودکار با استفاده از تجزیه درختان امکان پذیر است.

    همچنین به عنوان شناخته شده است

  • قانون دمتر

    برچسب ها

    < ul>

  • اعلان فعال
  • کپسوله سازی

    نتیجه گیری

    از تماس های پی در پی پیامکی خودداری کنید. سعی کنید همکاری های میانی را پنهان کرده و پروتکل های جدید ایجاد کنید.

    Code Smell 09 – Dead Code

    کدی که دیگر استفاده نمی شود یا مورد نیاز است. < div class = "image-container">

  • منبع تصویر: Ray Shrewsberry on Pixabay

    مشکلات

    • ماندگاری

    راه حل

  • حذف کد
  • KISS
  • مثال

    • کد روکش طلا یا کد Yagni.

    < p class = "paragraf"> استثناها

    از برنامه نویسی متاپو جلوگیری کنید هنگام استفاده یافتن منابع به کد بسیار دشوار است.

    تنبلی فصل اول: برنامه نویسی فرا

    کد نمونه

    اشتباه

    درست

    ردیابی

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

    برچسب ها

    • غیرضروری

    نتیجه گیری

    حذف کد کد برای سادگی. اگر از برخی کدها اطمینان ندارید می توانید با استفاده از Feature Toggle به طور موقت آن را غیرفعال کنید. حذف کد همیشه پاداش بیشتری نسبت به افزودن دارد.

    کد بوی 10 – استدلال های بسیار زیاد

    اشیا or یا عملکردها برای کار کردن به آرگومان های زیادی نیاز دارند. < div class = "image-container">

  • منبع تصویر: Tobias Tullius on Unsplash

    مشکلات

    • قابلیت نگهداری پایین
    • استفاده مجدد کم
    • اتصال

    راه حل ها

  • روابط منسجم را بین استدلال ها پیدا کنید
  • “زمینه” ایجاد کنید.
  • استفاده از الگوی شی Ob روش را در نظر بگیرید.
  • از انواع “اساسی” پرهیز کنید: رشته ها ، آرایه ها ، اعداد صحیح و غیره درباره اشیا objects فکر کنید.

    استثنا

    • عملیات در دنیای واقعی به همکاران منسجمی نیاز ندارد.

    کد نمونه

    اشتباه

    درست

    ردیابی

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

    برچسب ها

    نتیجه گیری

    استدلال های مشابه را بگویید و آنها را گروه بندی کنید. همیشه نگاشت های دنیای واقعی را ترجیح دهید. در گروه واقعی چگونگی گروه بندی آرگومان ها را در اشیا co منسجم بیابید.

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

    فعلاً همین است! به زودی بوی کد بیشتری می رسد!