سلام دوستان عزیزم. مخصوصا اون عزیزانی که در حال پیدا کردن کار (#opentowork) هستند و در واقع الان نمیدونن چطوری باید خودشون رو بروز نگه دارن. یا اگر #کار دارید و بروز هم هستید دوست دارید یک ماجراجویی برای بالابردن کیفیت رزومهی خودتون داشته باشید پیشنهاد میکنم با من همراه باشید. در غیر اینصورت ازتون خواهش میکنم با #لایک و و #کامنت و #اشتراک_گذاری #حمایت کنید.
ما در حال ساخت یک کامیونیتی بزرگ اپن سورس درمورد زیرساخت میکروسرویسی هستیم در صورتی که تمایل داشتید میتونیم باهم همکاری داشته باشیم.
اهداف ما:
1.زنده و فعال نگهداشتن پروفایل گیتهاب شما برای اینکه در آینده رزومهی کاری شمارو افزایش بدیم.
2.آموزش به شما دربارهی زیر ساختهای میکروسرویسها و بررسی معماریهای موجود و چالشهای پیش رو
3.بحث و گفتگو و ایجاد چالش، ساخت پکیج و بالا بردن کیفیت استفاده از میکروسرویسها در آینده برای برنامه نویس ها
بعد از جوین شدن از شما انتظار میره:
1.معماری نرم افزار و OOP و Functional programming یاد بگیرید.
2.کار با nuget و ساخت و آپلود پکیج های خودتون رو یاد بگیرید.
3.کار با انواع بخش های گیتهاب از جمله issue, code review , pull request, project, wiki, actions, tests, code coverage رو یاد بگیرید.
این کامیونیتی کاملا رایگان و اوپن سورس هست و هدفش استخدام شما نیست، اگر بتونید یک ایده هم بدید یا حتی کدهای بقیه رو review کنید یا کامنت و تغییرات بزنید، شما پروفایل گیتهابتون عملا همیشه فعال میمونه و با بالابردن کیفیت اکانت گیتهابتون شما دیگه نیازی نیست دنبال کار بگردید بلکه کار به دنبال شما میگرده و ضمن اینکه عضو کانتریبیوترهای این پروژه شدید، خدارو چه دیدی شاید در آینده یه اتفاق خوب برای هممون افتاد :)
برای شروع میتونید به گروه تلگرامی ما بپیوندید:
https://www.tg-me.com/easymicroservice
#github
#microservice
#oop
#functionalprogramming
#CSharp
#opensource
ما در حال ساخت یک کامیونیتی بزرگ اپن سورس درمورد زیرساخت میکروسرویسی هستیم در صورتی که تمایل داشتید میتونیم باهم همکاری داشته باشیم.
اهداف ما:
1.زنده و فعال نگهداشتن پروفایل گیتهاب شما برای اینکه در آینده رزومهی کاری شمارو افزایش بدیم.
2.آموزش به شما دربارهی زیر ساختهای میکروسرویسها و بررسی معماریهای موجود و چالشهای پیش رو
3.بحث و گفتگو و ایجاد چالش، ساخت پکیج و بالا بردن کیفیت استفاده از میکروسرویسها در آینده برای برنامه نویس ها
بعد از جوین شدن از شما انتظار میره:
1.معماری نرم افزار و OOP و Functional programming یاد بگیرید.
2.کار با nuget و ساخت و آپلود پکیج های خودتون رو یاد بگیرید.
3.کار با انواع بخش های گیتهاب از جمله issue, code review , pull request, project, wiki, actions, tests, code coverage رو یاد بگیرید.
این کامیونیتی کاملا رایگان و اوپن سورس هست و هدفش استخدام شما نیست، اگر بتونید یک ایده هم بدید یا حتی کدهای بقیه رو review کنید یا کامنت و تغییرات بزنید، شما پروفایل گیتهابتون عملا همیشه فعال میمونه و با بالابردن کیفیت اکانت گیتهابتون شما دیگه نیازی نیست دنبال کار بگردید بلکه کار به دنبال شما میگرده و ضمن اینکه عضو کانتریبیوترهای این پروژه شدید، خدارو چه دیدی شاید در آینده یه اتفاق خوب برای هممون افتاد :)
برای شروع میتونید به گروه تلگرامی ما بپیوندید:
https://www.tg-me.com/easymicroservice
#github
#microservice
#oop
#functionalprogramming
#CSharp
#opensource
Telegram
EasyMicroservices
قراره یک معماری توسعه بدیم تا یادگیری و توسعهی اپلیکیشنهای سرور و کلاینت رو برای بقیه آسون کنیم.
Channel: https://www.tg-me.com/easymicroservices
Email: [email protected]
Channel: https://www.tg-me.com/easymicroservices
Email: [email protected]
C# Programming Guide
Video
جلسهی ضبط شدهی اولین میتینگ میکروسرویسهای آسان بیش از 400 نفر جوین این کامیونیتی شدن و داریم سعی میکنیم کاری کنیم اکثرا مشارکت کنن حتما جوین شید.
https://www.tg-me.com/easymicroservices
https://www.tg-me.com/easymicroservices
Forwarded from Easy Microservices
امروز با تغییراتی که با چندتا از بچه ها که زحمت زیادی کشیدن روی DevOps تونستیم فرایند پابلیش پکیج رو اتوماسیون کنیم.
با توجه به تغییرات و پول رکوئست هایی که بچه ها توی این یکی دو هفته دادن پروژه ی Serialization با حدود 21 فورک و 25 تا پول رکوئست مرج شده و 11 تا Issue داره میترکونه.
در حال حاضر پکیج های زیر در nuget پابلیش شدن و قابل استفاده توی زبان برنامه نویسی سی شارپ هستند:
EasyMicroservices.Serialization.YamlDotNet
EasyMicroservices.Serialization.System.Text.Xml
EasyMicroservices.Serialization.System.Text.Json
EasyMicroservices.Serialization.Newtonsoft.Json
EasyMicroservices.Serialization.MessagePack
EasyMicroservices.Serialization.MemoryPack
EasyMicroservices.Serialization.BinaryGo
بدون تعارف ترکوندید.
بچه های بخش Go هم دارن به سمت جلو میان و پول رکوئست میزنن.
منتظریم بچه های بخش های دیگه و زبان های دیگه جوین شن و حسابی این کامیونیتی رو توی دستشون بگیرن.
واقعا خیلی هیجان انگیزه. به کامیونیتی جوین شید بچه ها، به زودی پکیج ها و ریپازیتوری های جدیدی رو معرفی میکنیم که روی همین ساختار اونارو پیاده سازی و منتشر میکنیم.
سورس این پکیج:
https://github.com/EasyMicroservices/Serialization
با توجه به تغییرات و پول رکوئست هایی که بچه ها توی این یکی دو هفته دادن پروژه ی Serialization با حدود 21 فورک و 25 تا پول رکوئست مرج شده و 11 تا Issue داره میترکونه.
در حال حاضر پکیج های زیر در nuget پابلیش شدن و قابل استفاده توی زبان برنامه نویسی سی شارپ هستند:
EasyMicroservices.Serialization.YamlDotNet
EasyMicroservices.Serialization.System.Text.Xml
EasyMicroservices.Serialization.System.Text.Json
EasyMicroservices.Serialization.Newtonsoft.Json
EasyMicroservices.Serialization.MessagePack
EasyMicroservices.Serialization.MemoryPack
EasyMicroservices.Serialization.BinaryGo
بدون تعارف ترکوندید.
بچه های بخش Go هم دارن به سمت جلو میان و پول رکوئست میزنن.
منتظریم بچه های بخش های دیگه و زبان های دیگه جوین شن و حسابی این کامیونیتی رو توی دستشون بگیرن.
واقعا خیلی هیجان انگیزه. به کامیونیتی جوین شید بچه ها، به زودی پکیج ها و ریپازیتوری های جدیدی رو معرفی میکنیم که روی همین ساختار اونارو پیاده سازی و منتشر میکنیم.
سورس این پکیج:
https://github.com/EasyMicroservices/Serialization
GitHub
GitHub - EasyMicroservices/Serialization: Wrapper for any Serialize package
Wrapper for any Serialize package. Contribute to EasyMicroservices/Serialization development by creating an account on GitHub.
Forwarded from Easy Microservices
برای ساختن یک Issue در گیتهاب کافیه وارد صفحهی هر ریپازیتوری بشید و در تب Issue روی گزینه ی new issue کلیک کنید.
هرگونه فیچر یا باگ و مسئلهای که بهش برخورد میکنید رو میتونید توی بخش Issue ها بزنید.
در صفحهی باز شده، شما یک تیتر برای Issue میزنید و سپس متن کامل مسئله رو توی توضیحات پر میکنید.
#Issue
هرگونه فیچر یا باگ و مسئلهای که بهش برخورد میکنید رو میتونید توی بخش Issue ها بزنید.
در صفحهی باز شده، شما یک تیتر برای Issue میزنید و سپس متن کامل مسئله رو توی توضیحات پر میکنید.
#Issue
Forwarded from Easy Microservices
توی شمارهی 1 تیتر مسئله رو بزنید.
توی شمارهی 2 با توجه به توضیحات میتونید قالب رو رعایت کنید و توضیحات مسئله رو بیان کنید.
توی شمارهی 3 در صورتی که دسترسیهای لازم رو داشته باشید میتونید مشکل رو به یک شخص برای انجام Asign کنید یا برچسب های مورد نظر برای باگ و فیچر و ... رو بزنید.
و بعد از اینکه کارتون تموم شد روی دکمهی submit new issue در مرحلهی 4 کلیک کنید.
مسئلهی شما ثبت میشه، شما یک contribution دریافت میکنید و مسئله میره تا توسط ادمینها بررسی و توسعه داده بشه.
توی شمارهی 2 با توجه به توضیحات میتونید قالب رو رعایت کنید و توضیحات مسئله رو بیان کنید.
توی شمارهی 3 در صورتی که دسترسیهای لازم رو داشته باشید میتونید مشکل رو به یک شخص برای انجام Asign کنید یا برچسب های مورد نظر برای باگ و فیچر و ... رو بزنید.
و بعد از اینکه کارتون تموم شد روی دکمهی submit new issue در مرحلهی 4 کلیک کنید.
مسئلهی شما ثبت میشه، شما یک contribution دریافت میکنید و مسئله میره تا توسط ادمینها بررسی و توسعه داده بشه.
Forwarded from Easy Microservices
چون بچهها خیلی زودتر از موعدی که انتظار داشتم وارد پروژهی FileManager شدن من یه توضیحاتی در مورد این پروژه بدم و اینکه قراره چه نیازی رو از ما برطرف کنه تا بقیهی دوستان هم جوین شن.
هدف این پروژه اینه که بتونه کار با فایل و فولدر رو برای شما آسون کنه.
چالش های پیش رو چیا هستن؟
1.مهمترین چالش سیستم عامل های مختلف هستند، برای مثال سیستم عامل ویندوز توی حالت عادی (غیر UWP) برای کار با پوشه و فایل از نرم افزار دسترسی نمیگیره ولی توی سیستم عامل های گوشی به این شکل نیست بلکه نیاز به دسترسی کاربر هست برای همین براحتی نمیتونید از Api های ساخت فایل و پوشه مثل همیشه استفاده کنید.
2.چالش بعدی عدم یکپارچگی مدیریت فایل ها بین دیسک و مموری و Api ها و سایت های مدیریت فایل هست. برای مثال Azure و Amazon و ... از نمونه سایت هایی هستند که به شما این امکان رو میدن که بتونید مدیریت فایل رو در بستر cload یا هاست اونها انجام بدید ولی ما میخوایم طوری FileManager رو پیاده سازی کنیم که کسی که میخواد از Api های مدیریت فایل هم استفاده کنه نیاز نباشه تا دانش زیادی از اون api ها بدونه و بره کلی مطالعه کنه که بفهمه مثلا برای ساخت فایل توی Amazon S3 باید چه api ای رو صدا بزنه (در حد همون secret هاش بدونه کافیه). ما این بستر رو براش فراهم میکنیم و مثل همیشه یک Interface برای انجام اینکار براش کافیه.
3.تست پذیر بودن این نوع پروژه، سخته که یک کتابخانه بنویسید که براحتی بتونید بین کتاب خانه های مختلف سوییچ کنید، ما یک معماری و راه ساده پیدا کردیم پس با استفاده از یک پیاده سازی Memory میتونید حتی فایل ها و پوشه هاتون رو توی حافظه بسازید و بدون درگیر بودن با مسائل مثلا دسترسی ها توی Android میتونید ابتدا با این حرکت فرایند اپتون رو تست کنید. سپس که دیدید فرایند درست کار میکنه سوییچ میکنید روی دیسک و دسترسی هاشو اوکی میکنید.
بنابراین ما در پروژهی FileManager یک interface داریم و یک داکیومنت یکسان برای همهی کتابخانه ها مینویسم که هرکسی این داکیومنت رو بخونه میتونه از هر Api ای که توی این بستر پیاده سازی بشه استفاده کنه.
میشه همون هلو بره تو گلوی خودمون 😄
آدرس ریپازیتوری:
https://github.com/EasyMicroservices/FileManager
هدف این پروژه اینه که بتونه کار با فایل و فولدر رو برای شما آسون کنه.
چالش های پیش رو چیا هستن؟
1.مهمترین چالش سیستم عامل های مختلف هستند، برای مثال سیستم عامل ویندوز توی حالت عادی (غیر UWP) برای کار با پوشه و فایل از نرم افزار دسترسی نمیگیره ولی توی سیستم عامل های گوشی به این شکل نیست بلکه نیاز به دسترسی کاربر هست برای همین براحتی نمیتونید از Api های ساخت فایل و پوشه مثل همیشه استفاده کنید.
2.چالش بعدی عدم یکپارچگی مدیریت فایل ها بین دیسک و مموری و Api ها و سایت های مدیریت فایل هست. برای مثال Azure و Amazon و ... از نمونه سایت هایی هستند که به شما این امکان رو میدن که بتونید مدیریت فایل رو در بستر cload یا هاست اونها انجام بدید ولی ما میخوایم طوری FileManager رو پیاده سازی کنیم که کسی که میخواد از Api های مدیریت فایل هم استفاده کنه نیاز نباشه تا دانش زیادی از اون api ها بدونه و بره کلی مطالعه کنه که بفهمه مثلا برای ساخت فایل توی Amazon S3 باید چه api ای رو صدا بزنه (در حد همون secret هاش بدونه کافیه). ما این بستر رو براش فراهم میکنیم و مثل همیشه یک Interface برای انجام اینکار براش کافیه.
3.تست پذیر بودن این نوع پروژه، سخته که یک کتابخانه بنویسید که براحتی بتونید بین کتاب خانه های مختلف سوییچ کنید، ما یک معماری و راه ساده پیدا کردیم پس با استفاده از یک پیاده سازی Memory میتونید حتی فایل ها و پوشه هاتون رو توی حافظه بسازید و بدون درگیر بودن با مسائل مثلا دسترسی ها توی Android میتونید ابتدا با این حرکت فرایند اپتون رو تست کنید. سپس که دیدید فرایند درست کار میکنه سوییچ میکنید روی دیسک و دسترسی هاشو اوکی میکنید.
بنابراین ما در پروژهی FileManager یک interface داریم و یک داکیومنت یکسان برای همهی کتابخانه ها مینویسم که هرکسی این داکیومنت رو بخونه میتونه از هر Api ای که توی این بستر پیاده سازی بشه استفاده کنه.
میشه همون هلو بره تو گلوی خودمون 😄
آدرس ریپازیتوری:
https://github.com/EasyMicroservices/FileManager
GitHub
GitHub - EasyMicroservices/FileManager: Manage your files with a wrapper in everywhere.
Manage your files with a wrapper in everywhere. Contribute to EasyMicroservices/FileManager development by creating an account on GitHub.
Forwarded from Easy Microservices
چطوری #فورک خودمون رو با سورس اصلی سینک کنیم.
حتما براتون پیش اومده که وقتی فورک خودتون رو پول میکنید تغییرات سورس اصلی رو دریافت نمی کنید بلکه فقط تغییرات فورک خودتون رو پول می کنید، در ادامه در چند مرحله توضیح میدم که چطوری فورک خودتون رو با سورس اصلی سینک کنید که گاها اگر کانفیلیت دارید بتونید رفعش کنید.
یکی از روشها استفاده از خود گیتهاب هست، همونطور که در تصویر میبینید میتونید وارد فورک خودتون بشید و روی گزینهی Sync fork کلیک کنید سپس Update branch رو بزنید.
حتما براتون پیش اومده که وقتی فورک خودتون رو پول میکنید تغییرات سورس اصلی رو دریافت نمی کنید بلکه فقط تغییرات فورک خودتون رو پول می کنید، در ادامه در چند مرحله توضیح میدم که چطوری فورک خودتون رو با سورس اصلی سینک کنید که گاها اگر کانفیلیت دارید بتونید رفعش کنید.
یکی از روشها استفاده از خود گیتهاب هست، همونطور که در تصویر میبینید میتونید وارد فورک خودتون بشید و روی گزینهی Sync fork کلیک کنید سپس Update branch رو بزنید.
Forwarded from Easy Microservices
یکی از روشهای Sync# کردن فورک خودتون با سورس اصلی استفاده از ابزار git هست.
دوتا مفهوم برای این موضوع در گیت وجود داره:
1.Origin
2.Upstream
ابزار cmd رو کنار سورستون اجرا کنید و دستور زیر رو توش بنویسید:
git remove -v
این دستور نسخه های موجود از درس های اون سورس رو روی کامپیوترتون به شما میده برای مثال نمونهاش رو در تصویر میبیینید که برای من آدرس upstream و آدرس origin تنظیم شده.
برای شما شاید فقط origin تنظیم شده باشه.
دوتا مفهوم برای این موضوع در گیت وجود داره:
1.Origin
2.Upstream
ابزار cmd رو کنار سورستون اجرا کنید و دستور زیر رو توش بنویسید:
git remove -v
این دستور نسخه های موجود از درس های اون سورس رو روی کامپیوترتون به شما میده برای مثال نمونهاش رو در تصویر میبیینید که برای من آدرس upstream و آدرس origin تنظیم شده.
برای شما شاید فقط origin تنظیم شده باشه.
Forwarded from Easy Microservices
در صورتی که میخواید upstream یا origin رو حذف و اضافه کنید میتونید از دستورات زیر استفاده کنید.
برای مثال:
git remote add upstream gitRemoteAddress
به جای gitRemoteAddress آدرس گیت سورس اصلی رو بذارید.
اگر خواستید origin رو اضافه کنید به این شکل:
git remote add origin gitRemoteAddress
برای حذف origin هم میتونید از دستور زیر استفاده کنید:
git remote remove origin
برای حذف upstream:
git remote remove upstream
در نهایت همهی این تنظیمات در پوشهی .git که کنار پوشهی سورس ساخته میشه توی فایل config هست.
برای مثال:
git remote add upstream gitRemoteAddress
به جای gitRemoteAddress آدرس گیت سورس اصلی رو بذارید.
اگر خواستید origin رو اضافه کنید به این شکل:
git remote add origin gitRemoteAddress
برای حذف origin هم میتونید از دستور زیر استفاده کنید:
git remote remove origin
برای حذف upstream:
git remote remove upstream
در نهایت همهی این تنظیمات در پوشهی .git که کنار پوشهی سورس ساخته میشه توی فایل config هست.
Forwarded from Easy Microservices
سوال:
آیا بعد از اینکه پول رکوئست زدیم به ازای تغییراتی که روی همون برنچ میزنیم باید دوباره پول رکوئست بزنیم؟
پاسخ:
خیر، هر پول رکوئستی که میزنید در واقع مشخص میکنید که کدوم برنچ از روی فورک شما به کدوم برنچ روی سورس اصلی مرج بشه، پس هر تغییری که روی اون برنچ روی فورکتون بفرستید بالا، اتوماتیک روی پول رکوئستی که زدید تغییرات اعمال میشه و Code reviewer ها مجدد باید بررسی کنن. بدون اینکه نیاز باشه کاری انجام بدید، یعنی فقط git push بزنید روی فورکتون کافیه، گیتهاب اونارو بروز میکنه.
دقت کنید که اگر پول رکوئستتون فعال باشه این اتفاق میوفته.
اگر دوتا تغییر متفاوت برای دوتا تسک متفاوت دارید باید روی فورکتون برنچ متفاوت بزنید اینطوری میتونید دوتا پول رکوئست رو از هم تفکیک کنید تا کامیتهاتون با هم مخلوط نشن.
#پول_رکوئست
#برچ
#branch
#pullrequest
آیا بعد از اینکه پول رکوئست زدیم به ازای تغییراتی که روی همون برنچ میزنیم باید دوباره پول رکوئست بزنیم؟
پاسخ:
خیر، هر پول رکوئستی که میزنید در واقع مشخص میکنید که کدوم برنچ از روی فورک شما به کدوم برنچ روی سورس اصلی مرج بشه، پس هر تغییری که روی اون برنچ روی فورکتون بفرستید بالا، اتوماتیک روی پول رکوئستی که زدید تغییرات اعمال میشه و Code reviewer ها مجدد باید بررسی کنن. بدون اینکه نیاز باشه کاری انجام بدید، یعنی فقط git push بزنید روی فورکتون کافیه، گیتهاب اونارو بروز میکنه.
دقت کنید که اگر پول رکوئستتون فعال باشه این اتفاق میوفته.
اگر دوتا تغییر متفاوت برای دوتا تسک متفاوت دارید باید روی فورکتون برنچ متفاوت بزنید اینطوری میتونید دوتا پول رکوئست رو از هم تفکیک کنید تا کامیتهاتون با هم مخلوط نشن.
#پول_رکوئست
#برچ
#branch
#pullrequest
Forwarded from Easy Microservices
زیرساخت اولیه ریپازیتوری Database رو هم پیاده سازی کردیم روی Ef Core به زودی توسعه های بیشتری روش اعمال می کنیم اما معماریش رو استخراج کردیم که بقیه ی ساختار دیتابیسی هم پیرو اون معماری باشن.
دوستان عزیز میتونید روی زیرساخت دیتابسی زبان های مختلف و ... هم کار کنید.
https://github.com/EasyMicroservices/Database
دوستان عزیز میتونید روی زیرساخت دیتابسی زبان های مختلف و ... هم کار کنید.
https://github.com/EasyMicroservices/Database
GitHub
GitHub - EasyMicroservices/Database: Database management infrastructure
Database management infrastructure. Contribute to EasyMicroservices/Database development by creating an account on GitHub.
Forwarded from Easy Microservices
خیلی از باگها و مشکلات اولونیا رفع شده و روی دات نت کور 7 هم قابلیت پیاده سازیش هست.
WPF
روی ویندوز، مک و لینوکس
پروژهی عجیب و بزرگیه...
https://github.com/AvaloniaUI/Avalonia
WPF
روی ویندوز، مک و لینوکس
پروژهی عجیب و بزرگیه...
https://github.com/AvaloniaUI/Avalonia