Skip to content

Instantly share code, notes, and snippets.

@saeedvir
Forked from alisalehi1380/clean_code.md
Created February 9, 2024 03:45
Show Gist options
  • Save saeedvir/e935e87bde7a12d67a875c95e05cbdf4 to your computer and use it in GitHub Desktop.
Save saeedvir/e935e87bde7a12d67a875c95e05cbdf4 to your computer and use it in GitHub Desktop.
نکات_کلیدی_کتاب_کلین_کد
کدی تمیز است که به راحتی توسط همه ی اعضای تیم قابل درک باشد. کد تمیز میتواند توسط توسعه دهنده ای به غیر از نویسنده ی آن، خوانده و توسعه داده شود. خوانایی، قابلیت نگهداری، تغییر و توسعه پذیری کد، تنها زمانی امکان پذیر است که شما درک درستی از نحوه ی کار کد پیدا کنید.

قوانین عمومی

  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. از بیش از اندازه دادنِ آزادی عمل به توسعه دهنده های برنامه خود جلوگیری کنید. (Prevent Over-Configurability)
  4. به جای ساخت آبجکت (با استفاده از new)، از تزریق وابستگی استفاده کنید. (Dependency Injection)
  5. توابع و کلاس ها به جز کاری که انجام میدهند، نباید به جزئیات دیگری در کد دسترسی داشته باشند. (قانون LoD)

تست ها

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

مشارکت در پروژه

لطفا به ریپوی Key points of clean code مراجعه فرمایید.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment