کدی تمیز است که به راحتی توسط همه ی اعضای تیم قابل درک باشد. کد تمیز میتواند توسط توسعه دهنده ای به غیر از نویسنده ی آن، خوانده و توسعه داده شود. خوانایی، قابلیت نگهداری، تغییر و توسعه پذیری کد، تنها زمانی امکان پذیر است که شما درک درستی از نحوه ی کار کد پیدا کنید.
- از قوانین استاندارد (مثل: نام گذاری کلاس ها و توابع، میزان فرورفتگی یا ایندنتیشن و ...) پیروی کنید. (Standard Conventions)
- تا حد امکان پیچیدگی را در کد کاهش دهید. همیشه سادگی بهتر است. (قانون KISS)
- سورس کد را تمیز تر از زمانی که تحویل می گیرید، تحویل دهید. (قانون Boy Scout)
- همیشه به دنبال یافتن مشکلات و ایرادات در کد باشید. برای برطرف کردن آنها، علل اصلی و ریشه ای را شناسایی کنید. (قانون RCA)
- متغیر ها، ثابت ها و تمام داده های قابل تنظیم، باید در بالا ترین سطح انتزاع قرار داشته باشند. (Configurable Data At High Levels)
- به جای نقض کردن قانون open-closed، از ویژگی polymorphism استفاده کنید. (Replace Conditional With Polymorphism)
- از بیش از اندازه دادنِ آزادی عمل به توسعه دهنده های برنامه خود جلوگیری کنید. (Prevent Over-Configurability)
- به جای ساخت آبجکت (با استفاده از new)، از تزریق وابستگی استفاده کنید. (Dependency Injection)
- توابع و کلاس ها به جز کاری که انجام میدهند، نباید به جزئیات دیگری در کد دسترسی داشته باشند. (قانون LoD)
- هر تست (بهتر است) فقط یک assertion داشته باشد. (One Assertion Per Test)
- از قوانین F.I.R.S.T پیروی کنید.
- تست های شما باید به سرعت اجرا شوند، حتی اگر 1000 تا باشد. (Fast)
- تست های شما باید باید ایزوله و مستقل باشند و هیچ چیزی اعم از سیستم عامل، متغیر های محیطی، کدهای برنامه نویس دیگر، نباید در نحوه ی کار آنها اختلال ایجاد کند. (Isolated/Independent)
- تست های شما باید به سادگی خوانده و درک شوند. (Readability)
- (Self-validating)
لطفا به ریپوی Key points of clean code مراجعه فرمایید.