Skip to content

alisalehi1380/Key-points-of-clean-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 

Repository files navigation

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

قوانین عمومی

  1. از قوانین استاندارد (مثل: نام گذاری کلاس ها و توابع، میزان فرورفتگی یا ایندنتیشن و ...) پیروی کنید. (Standard Conventions)
  2. تا حد امکان پیچیدگی را در کد کاهش دهید. همیشه سادگی بهتر است. (قانون KISS)
  3. سورس کد را تمیز تر از زمانی که تحویل می گیرید، تحویل دهید. (قانون Boy Scout)
  4. همیشه به دنبال یافتن مشکلات و ایرادات در کد باشید. برای برطرف کردن آنها، علل اصلی و ریشه ای را شناسایی کنید. (قانون RCA)

قوانین طراحی

  1. متغیر ها، ثابت ها و تمام داده های قابل تنظیم، باید در بالا ترین سطح انتزاع قرار داشته باشند. (Configurable Data At High Levels)
  2. به جای نقض کردن قانون open-closed، از ویژگی polymorphism استفاده کنید. (Replace Conditional With Polymorphism)
  3. م (Separate multi-threading code)
  4. از بیش از اندازه دادنِ آزادی عمل به توسعه دهنده های برنامه خود جلوگیری کنید. (Prevent Over-Configurability)
  5. به جای ساخت آبجکت (با استفاده از new)، از تزریق وابستگی استفاده کنید. (Dependency Injection)
  6. توابع و کلاس ها به جز کاری که انجام میدهند، نباید به جزئیات دیگری در کد دسترسی داشته باشند. (قانون LoD)

قوانین توابع

  1. توابع شما باید کوچک باشند. (Small)
  2. هر تابع باید فقط و فقط یک کار را انجام دهد. (Do one thing)
  3. نامی که برای هر تابع انتخاب میکنید باید به طور کامل، کاری که انجام میدهد را توصیف کند. (Use descriptive names)
  4. بهترین تابع، تابع نیلادیک (Niladic) ست. تابع شما باید کمترین آرگومان را دریافت کند. (Prefer fewer arguments)
  5. تابع شما نباید هیچ چیزی را که خارج از اسکوپ آن قرار دارد، تغییر دهد. (Have no side effects)

قوانین کامنت‌ها

  1. همیشه سعی کنید همه چیز را در کد توضیح دهید اگر امکان پذیر نبود، آنگاه روی نوشتن یک کامنت خوب وقت بگذارید.
  2. از نوشتن کامنتی که هیچ توضیح بیشتری از کد نمیدهد (کامنت زائد) خودداری کنید. مثل: (i++; // increment i)
  3. از نوشتن کامنتی برای توجه بیشتر، برای چیزی که کاملا واضح است، خودداری کنید. مثل: (end of function // {)
  4. کامنت شما نیاز به بسته بندی ندارد! از { },[ ],( ) استفاده نکنید.
  5. کد را کامنت نکنید! فقط حذف ش کنید.
  6. از کامنت به عنوان توضیح بیشتر در مورد قصد و هدف خود استفاده کنید.
  7. از کامنت به عنوان شفاف کننده کد استفاده کنید.
  8. به عنوان یک هشدار، در مورد عواقب تغییر استفاده کنید.

تست‌ها

  1. هر تست (بهتر است) فقط یک assertion داشته باشد. (One Assertion Per Test)
  2. از قوانین F.I.R.S.T پیروی کنید.
    1. تست های شما باید به سرعت اجرا شوند، حتی اگر 1000 تا باشد. (Fast)
    2. تست های شما باید ایزوله و مستقل باشند و هیچ چیزی اعم از سیستم عامل، متغیر های محیطی، کدهای برنامه نویس دیگر، نباید در نحوه ی کار آنها اختلال ایجاد کند. (Isolated/Independent)
    3. تست های شما باید قطعی و تکرار پذیر باشند، متغیر های آنها نباید در محیط های مختلف تغییر کند. (Repeatable)
    4. (Self-validating)
  3. تست های شما باید به سادگی خوانده و درک شوند. (Readability)

هندل کردن اررورها

  1. هیچگاه error handling را با کد logic ترکیب نکنید.
  2. از Exception ها به جای بازگرداندن error code استفاده کنید.
  3. هیچگاه null ریترن نکنید یا به تابعی به عنوان پارامتر، null ارسال نکنید.
  4. همیشه Exception را با یک توضیح کامل از خطا ارائه کنید.

About

Key points of clean code

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published