Maryam Aliyari
Maryam Aliyari
خواندن ۴ دقیقه·۵ سال پیش

آیا کد شما بو میده؟!

بو دادن کد یا Smells Code یک اصلاح استاندارد مهندسی نرم افزاره که اگه کد شما شامل یکسری ویژگی ها باشه ، اصطلاحاً میگن کد شما بو میده.

پس برای اینکه ببینید آیا این ویژگی شامل کودتون میشه یا نه، و اینکه چه کاری باید انجام بدید که این اتفاق برای کدهاتون نیفته، پیشنهاد میکنم مقاله زیر رو بادقت دنبال کنید:

*نکته ی خیلی مهم:"یک برنامه ممکنه کاملاً درست کار کنه و هیچ باگی نداشته باشه ولی شامل SmellsCode بشه".

هر کدوم از این بو ها نشونه ی یکی از موارد کیفیت نرم افزاره که ما توی برناممون رعایتشون نکردیم.خیلی از این موارد ساده به نظر میرسن اما اگه این موارد ساده و پیش پا افتاده رو رعایت نکنید ممکنه در دراز مدت دچار مشکلات جدی در کارتون باشید. خب خیلی پر حرفی کردم بهتره بریم سر اصل مطلب و ببینیم این موارد چیا هستن.

بهتون بگم که تعداد این موارد زیاده اما اصلی ترین و رایج ترین اونها که ممکنه تو کد شما اتفاق بیفته شامل موارد زیر میشه:

  1. Long Methods (متدهای طولانی)

بطور میانگین تعداد خط کدهای شما در هر متد باید بین ۱۰ تا ۱۲ باشه اما اگر بیشتر از این باشه احتمال اینکه این متد بیشتراز یک کار رو انجام میده ، هست.(اصل مهم در مهندسی نرم افزار میگه هر متد از کد شما فقط و فقط باید یک کار انجام بده.) برای رفع این مشکل شما باید این متد رو به متدهای کوچکتر تقسیم کنید و مطمئن شید که هر کدوم فقط یک کار رو انجام بدن.

2. Long Parameter List(تعداد پارامترهای ورودی یک متد از حدی بیشتر باشه مثلا ۸ به بالا)

این مشکل باعث پیچیدگی در متد میشه و زمانی که نیاز به دیباگ کردن و تریس برنامه تون دارید ممکنه با مشکل مواجه شید و همچنین این مورد میتونه نشان دهنده این باشه که متد شما بیشتر از یک کار داره انجام میده. اما اگر شما مطمئن هستید که این متد فقط یک کار انجام میده و حتماً نیاز به این تعداد بالا پارامتر ورودی دارید، می تونید یک آبجکت از اون پارامتر ها بسازید و اون آبجکت رو به ورودی متدتون پاس بدید.

3. Duplicate Code(کدهای تکراری)

اگه یک تکه از کدتون رو بارها(بیشتر از یکبار) در قسمت های مختلف برنامه استفاده کردید ، کدتون شامل این مورد میشه.(اصل مهندسی نرم افزار میگه Don't repeat yourself). ینی نباید کار تکراری و کد تکراری در برنامتون داشته باشید! برای حل این مشکل باید قسمتی از کدتون که تکرار میشه رو داخل یک متد قرار بدید و هرجایی که نیاز به اون داشتید فقط اون متد رو صدا کنید.

4. Dead Code(کد مرده)

دقیقاً همون تیکه کدهایی از برنامتون که قبلا استفاده میکردید و الان نیازش ندارید و کامنتشون کردید. شک نکنید که باید حتماً این کد رو پاک کنید حتی اگه در آینده این کد لازمتون بشه. چون برای اینکار راهکار استفاده از سورس کنترل یا همون Git رو دارید.پس اگه تا حالا از git استفاده نمیکردید، پیشنهاد میکنم برای اینکه تبدیل به یک برنامه نویس ماهر شید، ازش استفاده کنید.

وجود کدهای مرده در دراز مدت باعث ایجاد سوء تفاهم برای خودتون یا برای برنامه نویس دیگه میشه که داره کدتون رو میخونه و فکر میکنه که این کد باید کار خاصی انجام بده، بنابراین از کامنت خارجش کنه و برنامه دچار مشکل شه.در کل وجود این نوع کدهای کامنت شده در برنامه گیج کننده ست!

5. Uncommunicative Name(نامگذاری نامناسب)

سعی کنید باتوجه به کارایی کلاس، متد و متغیرهاتون اونها رو نامگذاری کنید تا اگه در آینده خودتون یا برنامه نویس دیگه کداتون رو خوند، با دیدن این نام ها متوجه کارایی اون کلاس یا متد و یا متغیر بشه.

اگه دوست دارید با بقیه موارد Smells Code آشنا شید می تونین این وبلاگ رو که توسط Jeff Atwood نوشته شده مطالعه کنید.

https://blog.codinghorror.com/code-smells/

امیدوارم از این به بعد کدهاتون بو نده D:






smells codeandroid
یه برنامه نویس عادی ام که هر روز برای بهتر بودن، با خودم در رقابتم.
شاید از این پست‌ها خوشتان بیاید