این کد بد بو در دسته « بد استفاده کنندگان از شیء گرایی » قرار میگیرد. زمانیکه گذارههای switch و یا دنبالهای از گذارههای if در کد وجود داشته باشد، معمولا با چنین الگویی روبرو هستیم. تشخیص این کد بد بو نیز بسیار آسان است. در شرایط نادری استفاده از switch میتواند یک طراحی شیء گرای مناسب باشد. در طراحی شیء گرا معمولا یک گذاره switch نشان دهنده یک رابطه چند ریختی (Polymorphism) نادیده گرفته شده است. معمولا زمانیکه بجای استفاده از اص ...
این نوع کد بد بو در دسته بندی « کدهای متورم » قرار میگیرد. یکی از نتایج متورم شدن کدها، سخت شدن نگهداری آنهاست. بدیهی به نظر میرسد که نگهداری و اعمال تغییرات بر روی یک کلاس بزرگ، دشوار و زمان گیر خواهد بود. علارغم سادگی مفهوم این نوع کد بد بو، این مورد یکی از موارد پر تکرار درمحصولها است. کلاس بزرگ کلاسی است که تعداد اعضای آن (فیلد، خصوصیت، متد) زیاد باشند و تعداد خطوط کد زیادی نیز داشته باشد. چرا چنین بویی به راه میافتد ...
میراث رد شده یا Refused bequest به دسته «بد استفاده کنندگان از شیء گرایی» تعلق دارد. این دسته از کدهای بد بو، معمولا استفاده ناقص یا نادرستی از مفاهیم و اصول شیء گرایی دارند.
زمانیکه یک کلاس تنها بخشی از اعضای (خصوصیت، متد و ...) کلاس پدر خود را استفاده میکند، با این الگو سر و کار داریم. در چنین شرایطی دیگر اعضای کلاس پدر یا استفاده نمیشوند و یا حتی در صورت پیاده سازی شدن توسط کلاس، بلااستفاده میمانند. به طور مثال متدها ...
برای مشاهده طبقه بندی Bad code smellها میتوانید به اینجا مراجعه کنید. زمانیکه متدی بیش از سه یا چهار پارامتر ورودی داشته باشد، به چنین مشکلی برخوردهایم. این بوی بد کد از دسته «کدهای متورم» است. کدهای متورم معمولا به مرور زمان ایجاد و کار را برای نگهداری کد سخت میکنند. توجه به این نکته که کدهای متورم به مرور زمان به این وضعیت دچار میشوند امری ضروری در درک بهتر و جلوگیری از این حالت بد کد است. این نوع کد بد بو ...
برای مشاهده طبقه بندی Bad code smellها میتوانید به اینجا مراجعه کنید. زمانیکه به ازای هر تغییر، نیاز باشد تغییرات کوچکی در تعداد کلاسهای زیادی انجام شود، این بوی بد کد بوجود آمده است. این الگو از دسته بندی «جلوگیری کنندگان از تغییر» است. نام این دسته بندی به طور واضح گویای مشکلی است که این الگوی بد ایجاد میکند. چرا چنین بویی به راه میافتد؟ یکی از نشانههای وجود چنین الگوی بدی در کدها، مشاهده کدهای تکراریست. ریشه اصلی ...
برای مشاهده طبقه بندی Bad code smellها میتوانید به اینجا مراجعه کنید. استفاده از کامنت، به خودی خود یک الگوی بد کد نویسی نیست. ولی ممکن است این امکان به درستی استفاده نشده و فایده مد نظر توسعه دهنده را نداشته باشد. زمانیکه متدی پر از کامنتهای توضیحی در مورد متد و پیاده سازی آن باشد، احتمالا مشکلی به وجود خواهد آمد. معمولا کامنتهای توضیحی زمانی استفاده میشوند که کد به اندازه کافی گویای کاری که انجام میدهد نباشد. زمانیکه چنین ...
نقل قولهای زیادی، در مورد کیفیت کد وجود دارند. دستور العملهای فراوانی نیز در این راستا وجود دارند. یکی از ابزارهایی که برای نوشتن کدهایی با کیفیت مطلوب وجود دارد، مجموعه الگوهای بد کد نویسی است که به Code smell یا بوی بد کد مشهور هستند. بوی بد کد، نشانههایی در کد هستند که حکایت از مشکلات عمیقتری دارند. بوی بد کد مساوی با باگ نیست. ولی خطر افزایش باگها و یا مشکلاتی را در آینده، به دنبال خواهند داشت. بوی بد کد معمولا حاصل رعایت ...
انگیزه اصلی این نوشته شروع کار با AngularJs و
استفاده از scope در
این کتابخانه است. بیشتر دوستانی که کار با این کتابخانه را شروع میکنند و تجربه
زیادی با جاوا اسکریپت ندارند، با مفهوم ارث بری scope مشکل پیدا میکنند. ارث بری در scope های AngularJs موضوع پیچیده و عجیب و غریبی نیست. در واقع همان
ارث بری prototyp ...