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

کدتون بو میده ؟!

سلام سلام سلام!
من به ویرگول هم اومدم D:
این اولین نوشته ی منه پس پیشاپیش اگه نتونست نظرتون رو جلب کنه معذرت میخوام :)

خب ، بریم سر اصل بحث. کدتون بو میده ؟! مگه کد بو هم داره ؟!!
باید بگم بلی. یکی از موضوعات مهم توی برنامه نویسی و مهندسی نرم افزار ، پرهیز از کدنویسی کثیف و نامرتبه و اگه کد شما از این موضوع تبعیت نمیکنه ، به اصطلاح میگیم کدتون بو میده که به انگلیسی بهش میگن Code Smells :)
خب ، حالا چیکار کنیم که کدمون بو نده و جزء برنامه نویسان تمیز و پاکیزه باشیم ؟ با من همراه باشید.

اولین کسی که از این اصطلاح استفاده کرد ، Kent Beck بزرگ بود که در وصف ایشون باید بگم یکی از بنیان گذاران Unit Testing بود. بعد از ایشون ، Martin Folwer در کتاب refactoring بیشتر راجب این ماجرا حرف زد. بدین ترتیب بود تا این اصطلاح بین جامعه برنامه نویسان جا افتاد.

لازمه که این نکته روهم بگم که یک نرم افزار میتونه هیچ باگی نداشته باشه ولی همچنان شامل Code Smells بشه! پس این بوها چه کارایی دارن ؟
هرکدوم از این بوها نشانه ساختار درست و کیفیت نرم افزارمون هست که ما توی کدمون رعایتشون نکردیم.
تعداد این بوها خیلی زیاده ولی من برای اینکه مطلب زیاد نشه ، چندتا از بوهای تند و مهم رو خدمتتون معرفی میکنم:

متدهای طولانی!

خب ، Long Method یکی از موارد مهمه که بوی خیلی بدی داره :) به طور میانگین هر متد شما باید 10 تا 12 خط باشه. ولی بعضی وقتا میبینیم یک متدمون شده 40 خط! خب ، چه اشکالی داره ؟
ما توی برنامه نویسی یه اصلی داریم که میگه هر واحد از کد باید فقط و فقط یک کار انجام بده و متد ، یک واحد از کد ماست. وقتی خطوط متد ما به این حجم میرسه ، احتمالا داریم بیش از یک کار از این متد میگیریم. راه حل چیست ؟
اینکه متد رو تبدیل کنیم به متدهای کوچک تر. این شکل هر متد یک کار انجام میده و قانون بالا رو نقض نمی کنیم و کد تمیز و بهینه تری داریم :)

کدهای تکراری!

یکی دیگه از مسائلی که توی Code Smells وجود داره ، Duplicate Code هست. میخواد یدونه for ساده باشه یا یه لاجیک پیچیده. وقتی از یک تکه کد در جاهای مختلف برنامه چندین بار استفاده میکنیم ، یکی از اصل های برنامه نویسی رو زیرپا گذاشتیم. به این اصل ، به اصطلاح DRY گفته میشه که مخفف Don't Repeat Yourself هست. DRY میگه که شما نباید کد تکراری در برنامتون داشته باشین. حالا چطور میتونیم حل کنیم این موضوع رو ؟
اون قسمت از منطقی که داره تکرار میشه رو از دل کد بیرون میاریم و درقالب یک متد ارائه میدیم. حالا هرکجا که از این تکه کد میخوایم استفاده کنیم ، اون متد رو صدا میزنیم. به همین زیبایی و خوشمزگی :)

کد مرده!

سومین مورد ، Dead Code هست. یعنی چی ؟ یعنی یک تیکه کدی رو که بنابه هر دلیلی دیگه نیازی بهش نداریم توی سورس کدمون نگه داریم. چه مشکلی پیش میاره ؟ بعدا که دوباره به کدتون سر میزنین باعث سردرگمیتون میشه و فکر میکنین که درحال پردازش قسمتی از برنامتون هست D: چیکار کنیم ؟ اینجاست که سورس کنترل به داد ما میرسه :) اگه اطلاعی راجب سورس کنترل ندارین توصیه میکنم هرچی زودتر برین سراغش ، بعدا میفهمین چرا :)

نام گذاری درست!

واااای! از نظر من بدبوترین مورد همینه و اکثرا رعایتش نمیکنین :( اینکه شما چطور متغیرها ، کلاس ها و.. رو نام گذاری میکنین ، خیلی به خوانایی کدتون کمک میکنه. اصلا رعایت همین مورد به تنهایی حتی میتونه شما رو از کامنت گذاری خلاص کنه. اگه این مورد رو رعایت نکنین ، بهتون قول میدم بعدا که به کدتون سر میزنین ، اگه خودتون توی دلتون به خودتون بد و بیراه نگین ، قطعا یه دولوپر دیگه که داره کدتون رو بررسی میکنه میگه D:


خب ، تا اینجا چهارتا از بدبوترین مورد های Code Smells رو باهم بررسی کردیم. اگه علاقه مندین که بیشتر راجبش بدونین ، توصیه میکنم از لینک زیر استفاده کنین
با رعایت این موارد ، به کمپین برنامه نویسان پاکیزه بپیوندید D:
منابع :

Sihui Huang
amirhosseinab

هر سوالی داشتین کامنت بزارین.
مرسی از اینکه تا اینجا اومدین و امیدوارم مطالب بدردتون خورده باشه :)
تا نوشته ی بعدی بدرود.


-



برنامه نویسیمهندس نرم افزارکد تمیزcode smells
یه برنامه نویس سمپادی که دوست داره دانش اندکش رو به اشتراک بزاره :)
شاید از این پست‌ها خوشتان بیاید