en
Feedback
Easy Microservices

Easy Microservices

Open in Telegram
460
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
در معماری CQRS هدف اصلی اینه که دیتابیس های Read از دیتابیس های Write از هم جدا بشن. اما «نوع و روش» پیاده سازی این معماری از نظر من یک over engineering هست که به ازای هر مدل شما سه تا کلاس اضافه باید بسازید تا به هدف اصلی خودتون برسید که در اصل باعث پیچیدگی بیشتر پروژه میشه. حالا بذارید چندتا سوال بپرسیم: 1. اگر در ابتدای پروژه خواستید یک MVP تحویل بدید چی؟ بازم می‌خواهید به ازای هر مدل چند کلاس Command و Query بسازید؟ 2. اگر در یک آینده ی دور خواستید دیتابیس Read و Write رو جدا کنید چی (یعنی الان قصدش رو ندارید)؟ همین امروز باید کلی کد بزنید و کلاس بسازید؟ همه‌ی این معماری ها برای پیاده سازی خوب هستند اما روش پیاده سازی کاملا به شما و تجربیات شما بستگی داره. در هسته ی Easy Microservices دو تابع GetReadableOf و GetWritableOf وجود داره که در ابتدای کار اصلا کاری به این نداره که دیتابیس Read از Write جدا بشه. شما می‌تونید در آینده هر وقت خواستید این دو رو از هم جدا کنید بدون تغییر کدهاتون و اضافه و کم کردن چیزی توی ساختار، این تغییرات رو اعمال کنید.بنابراین تا شما نگران این موضوع نشید این دو تابع در ابتدا تقریبا یک کار یکسان رو انجام میدن. همچنین مدیریت AsNoTracking توی EF Core برای پرفورمنس بهتر توی این مساله دیده شده. بنابراین هر وقت که خواستید دیتابیس هارو جدا کنید با یک تغییر کوچیک به دو کانکشن متفاوت دیتابیس‌ها جدا شده و این دو تابع و عملکرد خودشون رو نشون میدن. معماری فقط راه حل نیست، بلکه مهمتر از اون روش پیاده سازی اون راه حل ارائه شده هست. با ما همراه باشید. @easymicroservice @easymicroservices @csharptips

photo content

آیا ایمان نمی آورید؟ 😁 @easymicroservice @easymicroservices @csharptips
آیا ایمان نمی آورید؟ 😁 @easymicroservice @easymicroservices @csharptips

کاملا منطقی بود
کاملا منطقی بود

photo content

توابع: Verbose Debug Information Warning Error Fatal حالا چرا ورودی رو params object[] گرفتیم؟ چون میخواستیم شما نگران این نباشید که exception یا text یا ابجکت هاتون رو توی کدوم پارامتر میفرستید. ما خودتمون توی زیرساخت اونارو مرتب میکنیم و به تامین کننده ی لاگیر شما میفرستیم تا لاگش کنه. شما فقط صدا بزن.

سلام عزیزان دل. پکیج های سری لاگ رو هم اضافه کردیم با سه تا از محبوبترین پکیج های لاگر توی دات نت: Serilog NLog log4net سورس:
سلام عزیزان دل. پکیج های سری لاگ رو هم اضافه کردیم با سه تا از محبوبترین پکیج های لاگر توی دات نت: Serilog NLog log4net سورس: https://github.com/EasyMicroservices/Logger @easymicroservices @easymicroservice @csharptips

photo content

پکیج Payments به شما کمک میکنه بدون درگیر شدن با ساختار بانک ها با یک اینترفیس کار کنید. دقیقا مثل پکیج های دیگه توی easy mic
پکیج Payments به شما کمک میکنه بدون درگیر شدن با ساختار بانک ها با یک اینترفیس کار کنید. دقیقا مثل پکیج های دیگه توی easy microservices هست. با این تفاوت که این پکیج برای کار کردن با درگاه بانک هاست. در حال حاضر من قسمتی از Paypal رو پیاده سازی کردم و درگاه Stripe قابل استفاده هست. مثلا شما میتونید از تجربیات خودتون توی درگاه هایی مثل بانک پاسارگاد، ملت، و api هایی که خودشون با درگاه ها کار میکنن مثل زرین پال توی پیاده سازی این پکیج همراهیمون کنید. دیگه لازم نیست توی پروژه هایی که میزنید درگاه هارو پیاده سازی کنید و نگران این باشید که از کجا شروع کنید و چی بزنید. هرجا سوال داشتید با آی دی تلگرام من تماس بگیرید: @ali_visual_studio سورس گیتهاب: https://github.com/EasyMicroservices/Payments @easymicroservice @easymicroservices @csharptips

پکیج ServiceContracts هدفش اینه که خروجی های سرویس های شمارو یکپارچه، زیبا و مدیریت کنه. استفاده از این پکیج خیلی آسونه فقط ک
پکیج ServiceContracts هدفش اینه که خروجی های سرویس های شمارو یکپارچه، زیبا و مدیریت کنه. استفاده از این پکیج خیلی آسونه فقط کافیه نصبش کنید و خروجی سرویس هاتون رو از این نوع بذارید. اطلاعات خطا و stacktrace برای بحث دیباگینگ و این مسائل توش هندل شدست. هدف این پکیج اینه که جلوی throw کردن مستقیم exception رو توسط برنامه نویس بگیره و خطاها به صورت زیبا و با پرفورمنس بیشتری به دست کلاینت برسه. پذیرای هرگونه ایده و نظر هستیم. اطلاعات بیشتر: https://github.com/EasyMicroservices/ServiceContracts @csharptips @easymicroservices

نحوه‌ی استفاده از پکیج سریالایز در Asp core رو در تصویر مشاهده می‌کنید. شما با نصب پکیج EasyMicroservices.Serialization.Depen
نحوه‌ی استفاده از پکیج سریالایز در Asp core رو در تصویر مشاهده می‌کنید. شما با نصب پکیج EasyMicroservices.Serialization.DependencyInjection سپس نصب یکی از Provider های زیر میتونید به انتخاب خودتون از پکیج سریالایز Easy microservice استفاده کنید: 1.EasyMicroservices.Serialization.Newtonsoft.Json 2.EasyMicroservices.Serialization.System.Text.Json 3.EasyMicroservices.Serialization.BinaryGo 4.EasyMicroservices.Serialization.MessagePack 5.EasyMicroservices.Serialization.MemoryPack 6.EasyMicroservices.Serialization.System.Text.Xml 7.EasyMicroservices.Serialization.YamlDotNet با اینکار لازم نیست بعد از هربار تغییر پکیج سریالایز، کدهاتون رو تغییر بدید. @csharptips @easymicroservices

اگر شما نسخه های متعددی برای پکیج خودتون از دات نت دارید اما این نسخه ها با یک نسخه ثابت از پکیج سازگار نیستند. شما می‌تونید
اگر شما نسخه های متعددی برای پکیج خودتون از دات نت دارید اما این نسخه ها با یک نسخه ثابت از پکیج سازگار نیستند. شما می‌تونید با اضافه کردن شرط در فایل csproj خودتون توسط این شرطها نسخه‌های متفاوتی از پکیج‌هارو به ازای هر نسخه از دات نت نصب کنید. اینطوری پروژه‌ی شما مالتی‌پلتفرم میشه (لازم نیست پلتفرم‌های دیگه رو به خاطر کانفیلیت پکیج‌ها حذف کنید) و برای نسخه‌های جدیدتر همیشه پکیج‌های بروز شده دارید و نسخه‌های قدیمی تر با پکیج‌های قدیمی‌تر کار میکنن. #nuget #package #packages #multipleplatform #multiplatform @csharptips @easymicroservices

#تخصصی در معماری نرم افزار یکی از مولفه‌های مهم «حذف وابستگی» هست. چطوری بفهمیم معماری نرم افزاری که پیاده سازی کردیم از نظر «حذف وابستگی» داره درست کار میکنه؟ تنها با طرح سوال می‌تونید متوجه معماری درست برای بخش «حذف وابستگی» بشید. برای مثال: از چه ابزاری برای کشینگ استفاده می‌کنید؟ پاسخ: Redis آیا با بسته شدن Redis بخشی از سیستم شما از کار میوفته؟ در صورتی که پاسخ به این سوال بله باشه نشان از ضعف معماری در بخش «حذف وابستگی» هست. سوال بعدی: از چه ابزاری برای Api gateway استفاده می‌کنید؟ پاسخ: Ocelot آیا با از کار افتادن Api gateway ها، بخشی از سیستم شما از کار میوفته؟ پاسخ به این سوال هم مانند سوال قبلی به شما کمک می‌کنه تا راه حل هایی رو برای حذف وابستگی ها در معماری نرم افزار خودتون پیدا کنید. حذف وابستگی ها در معماری نرم افزار کمک می‌کنه تا اپلیکیشن شما با کمترین خطا در ارائه‌ی خدمات به مشتری به کارش ادامه بده. #وابستگی #معماری #معماری_نرم_افزار @CSharpTips

39 پکیج تا الان توی این زیر ساخت پیاده سازی و ریلیز شده. @easymicroservices @easymicroservice @CsharpTips
39 پکیج تا الان توی این زیر ساخت پیاده سازی و ریلیز شده. @easymicroservices @easymicroservice @CsharpTips

سلام بچه ها روزتون بخیر. تا الان حدود 5 تا میکروسرویس رو به مرحله ی استفاده‌ی اولیه رسوندیم و اولین پروژه‌ی لایومون رو داریم
سلام بچه ها روزتون بخیر. تا الان حدود 5 تا میکروسرویس رو به مرحله ی استفاده‌ی اولیه رسوندیم و اولین پروژه‌ی لایومون رو داریم روی این بستر پیاده سازی میکنیم که بزودی خبراشو بهتون میرسونیم که چی شد و چیکار کردیم. همچنان دوستانی که جوین شدن دارن با قدرت و سرعت زیر سیستم هارو توسعه میدن، هرچی زودتر به ما جوین شید❤️. اگریگیتورها که سورس اصلی و داخلی شرکت ها هستن رو اوپن سورس نمی‌کنیم. چون پروژه‌های بزینسی هستن ولی ارائه اش رو بهتون خواهیم داد. اما تجمیع کردن میکروسرویس‌ها و ساخت یک پروژه کار خیلی آسونی میشه. حمایتمون کنید تا دنیای کار با میکروسرویس رو برای همه آسون کنیم👌. @easymicroservices

پکیج https://github.com/EasyMicroservices/Mapper هم برای AutoMapper تا به الان پیاده سازی شده. اگر علاقه مند بودید می‌تونید سر بزنید و issue های مد نظرتون رو براتی دیگر پکیج ها و یا توسعه های جدید رو اعمال کنید.

پکیج https://github.com/EasyMicroservices/SMS برای کاوه نگار تا به الان پیاده سازی شده. چندتا چیز برای یادگرفتن هست: 1.یکپارچه سازی زیرساخت پیامکی 2.مجازی سازی httpclient در تست کیس ها با استفاده از پکیج EasyMicroservices/Laboratory و ببینید که چطوری سرویس کاوه نگار تست هاش زده شده بدون اینکه به لایو خود کاوه نگار درخواست بزنه. 3.پیاده سازی یک سیستم پیامکی جدید روی این ساختار چقدر سریع و آسون خواد بود 😉. دوستانی که میخوان شروع کنن میتونن سیستم های پیامکی دیگری رو که مد نظرشون هست در این ساختار پیاده سازی کنند.

کلی ریپازیتوری ساختم به ازای میکروسرویس هایی که قراره پیاده سازی کنیم. قراره تک تک میکروسرویس ها رو پیاده سازی کنیم 😉. وقتی
کلی ریپازیتوری ساختم به ازای میکروسرویس هایی که قراره پیاده سازی کنیم. قراره تک تک میکروسرویس ها رو پیاده سازی کنیم 😉. وقتی میکروسرویس ها پیاده سازی بشن، اونوقت دیگه به ازای هر پروژه که میخوایم پیاده کنیم به زمان خیلی کمتری نیاز داریم. جوین شید و ابراز آمادگی کنید، کلی کار داریم. @easymicroservice @easymicroservices