#refactoring
#code_smells
#dive_into_refactoring
#Alexander_Shvets
Code Smells :
* Bloaters *
شامل کدها، متد ها و کلاسهایی هستند که به اندازههای بزرگی افزایش یافته که کار کردن
با اونا سخت میشه. معمولاً این code smells فوراً ظاهر نمی شوند، بلکه در طول زمان و با تکامل برنامه جمع می شوند ( مخصوصاً وقتی کسی تلاشی برای از بین بردن آنها نمی کنه)
و شامل موارد زیر میشه :
1) Long Method
یک متد حاوی خطوط کد بسیار زیادی است.
به طور کلی، هر متدی که بیش از ده خط باشد، باید شما را وادار به سؤال کردن کنه.
2) Large Class
بدین معنا که یک کلاس شامل بسیاری از فیلدها / متد ها / خطوط کد است
3) Primitive Obsession
استفاده زیاد و وسواس گونه از primitives برای هر چیز مشخص در domain model
مثلا وقتی یک داده پیچیده رو داخل یک متغیر ذخیره میکنیم درست نیست و میشه این متغیر رو تبدیل به یک کلاس یا تبدیل به یک استراتژی کرد
4) Long Parameter List
بیش از سه یا چهار پارامتر برای یک متد
5) Data Clumps
گاهی اوقات قسمت های مختلف کد حاوی گروه های یکسانی از متغیرها (مانند پارامترهای اتصال به پایگاه داده) می باشد. این clumps ها باید به کلاس های خودشان تبدیل بشن.
به عنوان مثال وقتی فیلد های مختلفی از یک دیتا رو به ورودی یک متد پاس میدیم میتونیم این رو در نظر بگیریم که کل آبجکت رو به متد پاس بدیم به جای اینکه یکی یکی فیلدهارو پاس بدیم