این الگو اجازهی تعریف کردن عملیاتی جدید را برای مجموعهای از شیءها، بدون تغیر دادن ساختار خود شیءها، میدهد. همچنین اجازهی جدا کردن کلاس را از منطقی که کلاس پیاده سازی میکند، به ما میدهد. عملیات بیشتری میتوانند در شیء Visitor کپسوله سازی شوند. شیءها میتوانند یک متد visit داشته باشند که یک شیء Visitor را دریافت میکند. Visitor میتواند تغییرات مورد نیاز را ایجاد کند و عملیاتی را بر روی شیءهایی که دریافت کردهاست، انجام دهد. ...
الگوی command، اجازهی کپسوله سازی درخواستها و عملیات را در شیءهای جداگانهای میدهد. این الگو، شیءهایی که درخواستها را ارسال میکنند، از شیءهایی که مسئول اجرا کردن درخواستها هستند، جدا میکند. یک مثال را در نظر بگیرید؛ جائیکه یک کلاینت قرار است، دسترسی به متدهای یک API را به صورت مستقیم داشته باشد. چه اتفاقی خواهد افتاد اگر پیاده سازی آن APIها تغییر کند؟ هر جائیکه API، در حال استفاده شدن است، باید تغییرات صورت گیرد. برای اجتناب ...
الگوی Chain of Responsibility، یک زنجیر، از اشیاء متصل شدهی به هم را فراهم میکند که یکی از آنها میتواند درخواست رسیده را راضی کند؛ به عبارتی دیگر به محض دریافت درخواست، آن را پردازش میکند. این الگو اساسا یک جستجوی خطی ( linear search )، برای یک شیء میباشد که میتواند یک درخواست ویژه را handle کند. الگوی chain-of-responsibility، ارتباط با الگوی Chaining دارد که به دفعات در جاوا اسکریپت استفاده شدهاست (jQuery استفادهی گسترد ...
Micro Frontend چیست؟ micro frontend یک الگوی معماری ( architecture pattern ) میباشد؛ جایی که یک front-end app، به چند app کوچکتر تقسیم میشود و هر کدام از آنها به صورت مستقل توسعه داده و تست میشوند. مفهومی شبیه به مایکروسرویسها است؛ اما برای سورس کدهای یکپارچهی سمت کلاینت. چرا؟ خیلی سخت است که بخواهیم روی سورس کدهای یکپارچه سمت کلاینت تست نویسی، بهروز رسانی و هم چنین نگهداری کنیم. این در ح ...
اگر چه من این نکات را در حین کار کردن بر روی پروژههای انگیولار یافتم، اما همه آنها مشخصههای انگیولار نیستند؛ فقط کدهای تایپ اسکریپت میباشند. Eliminating the need to import interfaces من interface ها را دوست دارم با این حال نمیخواهم هر بار آنها را import کنم. تمایلی ندارم فایلهای من بخاطر import های چند خطی کثیف شوند (فقط به منظور strong typing )، اگر چه Visual Studio Code ویژگی auto-impo ...
نام Redis از Remote Dictionary server گرفته شدهاست. Redis یکی از محبوبترین key-value storeها میباشد و هم چنین توسط برندهای بزرگ IT جهان استفاده میشود. لازم به ذکر است Amazon Elastic Cache از Redis پشتیبانی میکند. Redis یک دیتابیس No SQL است و بر روی مفهوم زوج کلید-مقدار (key-value ) کار میکند. key-value store امکانی را برای ذخیره دادهها که Value نامیده میشود، در یک Key فراهم میکند. شما میتوانید بعدا این دادهها را دریافت کن ...
در بین توسعه دهندگان، خیلی رایج است، چند نسخه از Application خود را داشته باشند که Environmentهای مختلفی را مورد هدف قرار میدهد؛ مثل development که مربوط به حالت توسعه میباشد و production که مربوط به حالت ارائه نهایی است. هر Environment تعدادی متغیر منحصر بفرد خود را خواهد داشت؛ مثلAPI Endpoint ، app version و ... . انگیولار تنظیمات Environment را فراهم کرده است تا بتوانیم متغیرهای منحصر بفردی را برای هر Environment، تعریف کنیم. ...
Workspace، اولین بار در انگیولار 6 معرفی شد. Angular Workspace به شما اجازه میدهد کل web application خود را به چندین پروژهی کوچکتر سازماندهی کنید. بیشتر پروژههای کوچک انگیولار تنها شامل یک یا دو پروژه، به ازای هر Workspace میباشند. برای مثال وقتی شما یک پروژهی جدید انگیولار را با Angular CLI ایجاد میکنید، در این حالت Workspace شامل یک app واقعی و یک پروژه e2e tests میباشد. مستندات انگیولار یک پروژه را به صورت زیر توصیف می ...
در قسمتهای قبل ( ^ ، ^ و ^ ) GraphQL را در ASP.Net Core راه اندازی کردیم و در قسمت ( فراخوانی GraphQL API در یک کلاینت ASP.NET Core ) از GraphQL API فراهم شده در یک کلاینت ASP Net Core استفاده کردیم. اکنون میخواهیم چگونگی استفاده از GraphQL را در انگیولار، یاد بگیریم. Apollo Angular، به شما اجازه میدهد دادهها را از یک سرور GraphQL دریافت و از آن برای ساختن UI های واکنشی و پیچیده در انگیولار استفاده کنید. وقتی که از Apo ...
در قسمت قبل ، ایجاد کردن Mutationها را در GraphQL تمام کردیم. در این قسمت تصمیم بر این است که از GraphQL API در یک برنامه ASP.NET Core استفاده کنیم. برای فراخوانی GraphQL API در یک برنامه ASP.NET Core، از یک کتابخانه ثالث که به ما در این فرآیند کمک میکند استفاده خواهیم کرد. Preparing the ASP.NET Core Client Project کار را با ایجاد کردن یک پروژه ASP.NET Core Web API شروع میکنیم : dotnet new api -n DotNetGr ...