1- راه اندازی فروشگاه اینترنتی فراتر از یک شغل تمام وقت است: روزانه افراد زیادی با ما تماس میگیرند و قصد راه اندازی یک فروشگاه اینترنتی را دارند. هدف اکثر این افراد راه اندازی یک کسب و کار دوم در کنار کار اولشون هست و فکر میکنند یک فروشگاه مجازی راهی بی دردسر برای کسب…
ادامه مطلباتفاق مورد علاقه خودت رو از دست نده! ما یک الگویی داریم که سبب میشود object ها از اتفاقی که وقوع آن برایشان مهم است، باخبر شوند. اشیاء حتی میتوانند در Runtime تصمیم بگیرند که آیا از یک اتفاق باخبر شوند یا خیر. سنازیوی زیر را در نظر بگیرید: فرض کنید شما برای پیادهسازی نسل…
ادامه مطلبالگوهای طراحی در حقیقت راه حل هایی برای مشکلات پر تکرار در برنامه نویسی شی گرا هستند که به سبب تکرار زیاد این مشکلات، راه حل های ثابتی برای حل آن که همان Design pattern ها هستند به وجود آمده است. هر Design Patterns یک ساختار حل مشکل در اختیار شما قرار می دهد که…
ادامه مطلبتزریق وابستگی یا Dependency injection چیست؟ تزریق وابستگی یک تکنیک در برنامه نویسی است که باعث می شود کلاس های شما مستقل از وابسته هایشان عمل کنند. این امر با استفاده جدا کردن «استفاده از یک شی» از «ساخت آن شی» حاصل می شود. این تکنیک به برنامه نویسان کمک می کند که بتوانند دو…
ادامه مطلبحمله CSRF که به معنی جعل درخواست از سایت های دیگر است. این حمله کاربر نهایی را مجبور می کند که عملی را به صورت ناخواسته روی یک Web Application که قبلا کاربر فرآیند Authentication را روی آن اجرا کرده است، انجام دهد. هدف حمله CSRF به طور مشخص، تغییر حالت است و نه دزدیدن…
ادامه مطلباصول طراحی شی گرا S.O.L.I.D شامل چه مواردی می شود؟ S.O.L.I.D مخفف 5 اصل طراحی شی گرا است که سبب می شود طراحی نرم افزار ما قابل فهم و منعطف باشد و قابلیت تعمیر و نگهداری را هم داشته باشد. تئوری SOLID در سال 2000، توسط مایکل فیدرز (Michael Feathers) تحت عنوان یک مقاله، معرفی…
ادامه مطلبقسمت دوم این مقاله را در اینجا بخوانید. نکته پایه طراحی 2: با یک اینترفیس برنامه نویسی کنید نه با پیاده سازی یک کلاس ما برای نشان دادن هر رفتار از اینترفیس های FlyBehavior و QuackBehavior استفاده می کنیم و برای پیاده سازی ها این دو اینترفیس را اجرا می کنیم. در این روش لازم…
ادامه مطلبقسمت اول این مقاله را در اینجا بخوانید. 2-استفاده از Interface: راه کار بعدی که در تیم فنی مطرح می شود استفاده از Interface می باشد. به این صورت که ما دو اینترفیس به نام Fly و Quack تعریف و هر اردکی توانایی Quack یا Fly دارد این دو اینترفیس را Implement کند. اما…
ادامه مطلبسناریوی زیر را در نظر بگیرید: بازی وجود دارد که در آن انواع و اقسام اردک تعریف شده اند و اردک ها قادر به شنا کردن و کوئک کردن و دارای نمایش خاص می باشند و شی این اردک ها به این صورت تعریف شده است که یک کلاس Abstract به نام Duck تعریف شده…
ادامه مطلبقسمت سوم این مقاله را در اینجا بخوانید. حل مشکل استفاده از Implementation به جای Interface همانطور که در 2 مرحله قبل اشاره کردیم ما در تعریف کلاس MarralDuck از اینترفیس اضافه نکردیم که باید این مشکل را حل بکنیم: 1-ابتدا دو متد به کلاس Duck اضافه می کنیم: 2-یک Type از کلاس Type ایجاد …
ادامه مطلب