Channel: Easy Microservices
#قدم_دوم
ادامه...
پروژهی Serialization اهدافش اینه که کار serialize و deserialize کردن رو برای توسعه دهنده ها آسون کنه.
فرمت های سریالایز مثل:
json
xml
binary
protobuf
و...
برای سریالایز کردن توی زبان سی شارپ دوتا پکیج معروف newtonsoft.json و system.text.json هست که برای این برنامه نویس ها قابل استفاده هست.
یه نگاه به تصویر بندازید بچه ها زحمت کشیدن و سه تا پکیج رو توش پیاده سازی کردن یه نگاه به سورس که بندازید میبینید که پیاده سازیش خیلی آسونه و اصلا کد زیادی نداره.
توی بخش EasyMicroservices.Serialization قسمت های abstraction رو داریم که خلاصه ی چیزهایی که باید توی پکیج های اصلی پیاده بشه توش هست.
و توی بخش
EasyMicroservices.Serialization.Tests تست کیس هارو میزنیم.
به ازای هر پکیج قابل استفاده هم یک پروژه با نام اون پکیج می سازیم مثلا:
EasyMicroservices.Serialization.NewtonSoft.Json
شامل پیاده سازی استفاده از سریالایز و دیسریالایز کردن newtonsoft میشه.
توسعه دهنده های استفاده کننده همیشه از سورس abstraction استفاده می کنن برای همین براحتی میتونن بدون تغییر کد و ریفکتور بین پکیج ها سوییچ کنن.
ادامه...
پروژهی Serialization اهدافش اینه که کار serialize و deserialize کردن رو برای توسعه دهنده ها آسون کنه.
فرمت های سریالایز مثل:
json
xml
binary
protobuf
و...
برای سریالایز کردن توی زبان سی شارپ دوتا پکیج معروف newtonsoft.json و system.text.json هست که برای این برنامه نویس ها قابل استفاده هست.
یه نگاه به تصویر بندازید بچه ها زحمت کشیدن و سه تا پکیج رو توش پیاده سازی کردن یه نگاه به سورس که بندازید میبینید که پیاده سازیش خیلی آسونه و اصلا کد زیادی نداره.
توی بخش EasyMicroservices.Serialization قسمت های abstraction رو داریم که خلاصه ی چیزهایی که باید توی پکیج های اصلی پیاده بشه توش هست.
و توی بخش
EasyMicroservices.Serialization.Tests تست کیس هارو میزنیم.
به ازای هر پکیج قابل استفاده هم یک پروژه با نام اون پکیج می سازیم مثلا:
EasyMicroservices.Serialization.NewtonSoft.Json
شامل پیاده سازی استفاده از سریالایز و دیسریالایز کردن newtonsoft میشه.
توسعه دهنده های استفاده کننده همیشه از سورس abstraction استفاده می کنن برای همین براحتی میتونن بدون تغییر کد و ریفکتور بین پکیج ها سوییچ کنن.
هر موضوعی که پلن کنیم تا توسعه دهنده ها روش کار کنن رو اینجا توی پروژه ی اصلی پلن می کنیم.
https://github.com/orgs/EasyMicroservices/projects/1/views/2
https://github.com/orgs/EasyMicroservices/projects/1/views/2
بچه ها روز داره به سمت تمام شدن میره، در نظر داشته باشید که هدف ما فعالیت شما در گیتهاب هست، برای همین حتما یک فعالیتی امروز انجام بدید چون اگر امروز فعالیتی انجام ندید دیگه نمیتونید روزهایی که میگذره رو توی گیتهاب سبز کنید.
از ساده ترین کارهایی که میتونید انجام بدید اینه که یک issue بزنید، فورک بگیرید.
امروز Saba و Ali قسمتی از کار رو گرفتن و Saba یک issue زد و توی پروفایل گیتهابش یک مشارکت دریافت کرد.
بنابراین هیچ روزی رو از دست ندید تا گیتهاب شما همیشه فعال بمونه.
بچه هایی که جاوا و پایتون و زبان دیگه ای کار میکنید شروع کنید به فورک گرفتن با هم هماهنگ بشید و issue بزنید و یک قسمتی رو پیاده سازی کنید.
❤️❤️
از ساده ترین کارهایی که میتونید انجام بدید اینه که یک issue بزنید، فورک بگیرید.
امروز Saba و Ali قسمتی از کار رو گرفتن و Saba یک issue زد و توی پروفایل گیتهابش یک مشارکت دریافت کرد.
بنابراین هیچ روزی رو از دست ندید تا گیتهاب شما همیشه فعال بمونه.
بچه هایی که جاوا و پایتون و زبان دیگه ای کار میکنید شروع کنید به فورک گرفتن با هم هماهنگ بشید و issue بزنید و یک قسمتی رو پیاده سازی کنید.
❤️❤️
منظور از fork چیه؟
سعی میکنم طوری توضیح بدم که همه متوجه بشن.
دقت کنید دوستان وقتی یک repository (پروژه) توی گیت تعریف میشه قابلیت اینو داره که هرکسی اونو برای خودش شخصی سازی کنه. شخصی سازی یعنی شما هر تغییری روش اعمال کنی مال خودته و مالکش میشی خودت.
یه پروژه به نام Serialization روی گیتهاب وجود داره. وقتی شما اونو فورک میگیرید یعنی اونو میخواید شخصی سازی کنید. به خاطر اینکه روی سورس اصلی دسترسی پوش کردن و ارسال تغییرات ندارید.
وقتی فورک گرفتید آدرسش برای شما فرق میکنه یعنی از یک پروژه صدها نفر میتونن فورک بگیرن و کار کنن روی فورک خودشون.
بعد وقتی کارشون روی فورک خودشون تموم شد میتونن درخواست پول بزنن به پروژه ی اصلی تا تغییراتشون روی پروژه ی اصلی مرج بشه که بهش میگن pull request.
بعد از اینکه پول رکوئست شما مرج شد شما میشید عضو contribution های اون پروژه و اسمتون توی لیست کسانی که توی اون مشارکت داشتن میاد.
شما میتونید از یک پروژه چندین فورک شخصی برای خودتون بگیرید، هر فورک توی پروفایل خودتون قابل مشاهده هست.
به پروژه ای که فورک کردید اصطلاحا میگن origin و به پروژه ی اصلی میگن upstream.
فورک شما فقط با اجازه ی شما توانایی sync شدن با upstream رو داره.
#فورک
#fork
#pullrequest
سعی میکنم طوری توضیح بدم که همه متوجه بشن.
دقت کنید دوستان وقتی یک repository (پروژه) توی گیت تعریف میشه قابلیت اینو داره که هرکسی اونو برای خودش شخصی سازی کنه. شخصی سازی یعنی شما هر تغییری روش اعمال کنی مال خودته و مالکش میشی خودت.
یه پروژه به نام Serialization روی گیتهاب وجود داره. وقتی شما اونو فورک میگیرید یعنی اونو میخواید شخصی سازی کنید. به خاطر اینکه روی سورس اصلی دسترسی پوش کردن و ارسال تغییرات ندارید.
وقتی فورک گرفتید آدرسش برای شما فرق میکنه یعنی از یک پروژه صدها نفر میتونن فورک بگیرن و کار کنن روی فورک خودشون.
بعد وقتی کارشون روی فورک خودشون تموم شد میتونن درخواست پول بزنن به پروژه ی اصلی تا تغییراتشون روی پروژه ی اصلی مرج بشه که بهش میگن pull request.
بعد از اینکه پول رکوئست شما مرج شد شما میشید عضو contribution های اون پروژه و اسمتون توی لیست کسانی که توی اون مشارکت داشتن میاد.
شما میتونید از یک پروژه چندین فورک شخصی برای خودتون بگیرید، هر فورک توی پروفایل خودتون قابل مشاهده هست.
به پروژه ای که فورک کردید اصطلاحا میگن origin و به پروژه ی اصلی میگن upstream.
فورک شما فقط با اجازه ی شما توانایی sync شدن با upstream رو داره.
#فورک
#fork
#pullrequest
بچهها جمعهی همین هفته گفتگوی آنلاین داریم حتما شرکت کنید، جمعهها به دلیل اینکه اکثر مون بیشتر میتونیم مشارکت کنیم رو روز پلن در نظر میگیریم.
اگه سر ساعتش مساله دارید مطرح کنید.
توی گروه همین کانال گفتگوی آنلاین میذاریم. لطفا بچه ها توی کانال عضو باشید تا مطالب رو سر جمع داشته باشید و از دست ندید.
💓
اگه سر ساعتش مساله دارید مطرح کنید.
توی گروه همین کانال گفتگوی آنلاین میذاریم. لطفا بچه ها توی کانال عضو باشید تا مطالب رو سر جمع داشته باشید و از دست ندید.
💓
سلام بچهها روز بخیر.
مرسی از اینکه توی این کامیونیتی شرکت داشتید و دارید همراهی می کنید.
یکی از بچهها پرسیدن که من کارم برنامه نویسی نیست و خیلی مسائل و واژه ها رو متوجه نمیشم و اینکه هدف از این کامیونیتی دقیقا چیه و چه کمکی میتونیم انجام بدیم.
#هدف چیه؟
چندین هدف برای این کامیونیتی من در نظر دارم یه سری اهداف بلند مدت هستند و یه سری اهداف کوتاه مدت.
اهداف کوتاه مدت که خیلی سریع میتونیم بهش برسیم:
1.فعال نگه داشتن فعالیت شما در گیتهاب که باعث تقویت رزومهی کاری شما برای پیدا کردن کار با شرکت های غیر ایرانی میشه.
2.یادگیری و آموزش شما جهت کار کردن توی گروه ها و تیم ها به صورت ریموت
3.یادگیری و آموزش شما جهت کار کردن با تیمهایی که روی پروژه های اوپن سورس کار میکنن
4.تقویت حرفهی شما، چطوری توی دنیا کار میکنن و ما یاد بگیریم تا بتونیم توی پروژه های اوپن سورس بزرگتر فعالیت کنیم و کانتریبیوت بشیم.
5.مشورت شما با یک کامیوینیتی توسعه مثل این گروه و کانال که خیلی زیاد شدیم باعث بوجود اومدن تبادل نظراتی میشه که سریع پیشرفت میکنید و ابزار ها و پکیج ها و محیطهای توسعه ی جدید رو بیشتر بشناسید و همیشه بروز بمونید.
اهداف بلند مدت:
1.ساخت یک کامیونیتی بسیار قوی ایرانیان که این برند با توجه به فعالیت های خودمون توی این کامیونیتی ساخته میشه و برای شرکت های دیگه در آینده که وقتی میخوان شمارو استخدام کنن کافیه که براحتی بدونن شما توی چه محیطهای توسعه ای فعالیت داشتید. الان این کامیونیتی قوی نیست ولی در آینده وقتی قوی بشه تبدیل به یک برندی میشه که خودتون بزرگش کردید و در نهایت هرکسی وارد این کامیونیتی میشه اعتبار پیدا میکنه به واسطهی وجود خودتون.
2.خدارو چه دیدی شاید یک اسپانسر قوی گرفتیم و توی این کامیونیتی تونستیم یک کسب و کار ایجاد کنیم. اگر با abp آشنا باشید میدونید که از طرف یک شرکتی توی ترکیه توسعه داده شد و این کامیونیتی اونقدر قوی شد که در نهایت مایکروسافت کل اون شرکت و کامیونیتی رو خرید.
3.جا انداختن فرهنگ استفاده از ابزارها و محیطهای اوپن سورس
4.ساخت یک ابزار حرفهای و آسان و سریع که از اسم کانال پیداست برای اینکه توسعه و برنامه نویسی رو سریع کنیم و در آینده خیلی ها بیان و از پکیج هایی که ما توسعه دادیم استفاده کنن.
5.مشارکت در پروژه های اوپن سورس بزرگ در دنیا.
خب یه سری افراد رول هاشون متفاوته و شاید ازمون سوال بشه که چطوری میتونم کمک کنم من چندتا رو مثال میزنم:
1.در حال حاضر توسعه ها محدود به زبان برنامه نویسی نیست بنابراین همهی شما میتونید با هر زبانی که کار میکنید گروه های کوچیک تشکیل بدید و سورس رو توسعه بدید.
2.فرانت کار کردید؟ کامیوینیتی مربوط به توسعهی کامپوننت های فرانت میتونید راه اندازی کنید ما ریپوزیتوری ایجاد میکنیم و بچه های فرانت میتونن روی ساختار و معماری به هر زبانی اون کامپوننت رو راه اندازی کنند. ایده بدید و راحت باشید، روی چی دوست دارید کار کنید همونو ایده بدید.
3.دیزاین کار کردید؟ میتونید با بچه های فرانت هماهنگ بشید و برای توسعه های فرانت دیزاین بزنید و توی کامیوینیتی گیتهاب ثبتش کنید. یا برای طراحی های لوگو حتی برای پکیج ها میتونید کمکشون کنید.
4.مدیر پروژه هستید؟ بخشی از تیم چند نفره رو تشکیل بدید و کمکشون کنید تا بتونن با هماهنگی بیشتر کار رو پیش ببرن.
5.توی حرفهی devops کار کردید؟ پروژه ها رو action های گیتهاب میتونید براحتی روی pipline های آژور یا خود گیتهاب فراهم کنید.
6.نویسنده هستید یا انگلیسیتون خوبه؟ میتونید توی این کامیونیتی در قسمت wiki و آموزش و داکیومنت کردن کمک کنید.
7.ایده دارید؟ اون ایده رو توی سورس ها و پروژه ها ایجاد کنید تا توسعه دهنده ها اونارو توسعه بدن.
و...
مرسی از اینکه توی این کامیونیتی شرکت داشتید و دارید همراهی می کنید.
یکی از بچهها پرسیدن که من کارم برنامه نویسی نیست و خیلی مسائل و واژه ها رو متوجه نمیشم و اینکه هدف از این کامیونیتی دقیقا چیه و چه کمکی میتونیم انجام بدیم.
#هدف چیه؟
چندین هدف برای این کامیونیتی من در نظر دارم یه سری اهداف بلند مدت هستند و یه سری اهداف کوتاه مدت.
اهداف کوتاه مدت که خیلی سریع میتونیم بهش برسیم:
1.فعال نگه داشتن فعالیت شما در گیتهاب که باعث تقویت رزومهی کاری شما برای پیدا کردن کار با شرکت های غیر ایرانی میشه.
2.یادگیری و آموزش شما جهت کار کردن توی گروه ها و تیم ها به صورت ریموت
3.یادگیری و آموزش شما جهت کار کردن با تیمهایی که روی پروژه های اوپن سورس کار میکنن
4.تقویت حرفهی شما، چطوری توی دنیا کار میکنن و ما یاد بگیریم تا بتونیم توی پروژه های اوپن سورس بزرگتر فعالیت کنیم و کانتریبیوت بشیم.
5.مشورت شما با یک کامیوینیتی توسعه مثل این گروه و کانال که خیلی زیاد شدیم باعث بوجود اومدن تبادل نظراتی میشه که سریع پیشرفت میکنید و ابزار ها و پکیج ها و محیطهای توسعه ی جدید رو بیشتر بشناسید و همیشه بروز بمونید.
اهداف بلند مدت:
1.ساخت یک کامیونیتی بسیار قوی ایرانیان که این برند با توجه به فعالیت های خودمون توی این کامیونیتی ساخته میشه و برای شرکت های دیگه در آینده که وقتی میخوان شمارو استخدام کنن کافیه که براحتی بدونن شما توی چه محیطهای توسعه ای فعالیت داشتید. الان این کامیونیتی قوی نیست ولی در آینده وقتی قوی بشه تبدیل به یک برندی میشه که خودتون بزرگش کردید و در نهایت هرکسی وارد این کامیونیتی میشه اعتبار پیدا میکنه به واسطهی وجود خودتون.
2.خدارو چه دیدی شاید یک اسپانسر قوی گرفتیم و توی این کامیونیتی تونستیم یک کسب و کار ایجاد کنیم. اگر با abp آشنا باشید میدونید که از طرف یک شرکتی توی ترکیه توسعه داده شد و این کامیونیتی اونقدر قوی شد که در نهایت مایکروسافت کل اون شرکت و کامیونیتی رو خرید.
3.جا انداختن فرهنگ استفاده از ابزارها و محیطهای اوپن سورس
4.ساخت یک ابزار حرفهای و آسان و سریع که از اسم کانال پیداست برای اینکه توسعه و برنامه نویسی رو سریع کنیم و در آینده خیلی ها بیان و از پکیج هایی که ما توسعه دادیم استفاده کنن.
5.مشارکت در پروژه های اوپن سورس بزرگ در دنیا.
خب یه سری افراد رول هاشون متفاوته و شاید ازمون سوال بشه که چطوری میتونم کمک کنم من چندتا رو مثال میزنم:
1.در حال حاضر توسعه ها محدود به زبان برنامه نویسی نیست بنابراین همهی شما میتونید با هر زبانی که کار میکنید گروه های کوچیک تشکیل بدید و سورس رو توسعه بدید.
2.فرانت کار کردید؟ کامیوینیتی مربوط به توسعهی کامپوننت های فرانت میتونید راه اندازی کنید ما ریپوزیتوری ایجاد میکنیم و بچه های فرانت میتونن روی ساختار و معماری به هر زبانی اون کامپوننت رو راه اندازی کنند. ایده بدید و راحت باشید، روی چی دوست دارید کار کنید همونو ایده بدید.
3.دیزاین کار کردید؟ میتونید با بچه های فرانت هماهنگ بشید و برای توسعه های فرانت دیزاین بزنید و توی کامیوینیتی گیتهاب ثبتش کنید. یا برای طراحی های لوگو حتی برای پکیج ها میتونید کمکشون کنید.
4.مدیر پروژه هستید؟ بخشی از تیم چند نفره رو تشکیل بدید و کمکشون کنید تا بتونن با هماهنگی بیشتر کار رو پیش ببرن.
5.توی حرفهی devops کار کردید؟ پروژه ها رو action های گیتهاب میتونید براحتی روی pipline های آژور یا خود گیتهاب فراهم کنید.
6.نویسنده هستید یا انگلیسیتون خوبه؟ میتونید توی این کامیونیتی در قسمت wiki و آموزش و داکیومنت کردن کمک کنید.
7.ایده دارید؟ اون ایده رو توی سورس ها و پروژه ها ایجاد کنید تا توسعه دهنده ها اونارو توسعه بدن.
و...
دوستان عزیزم فردا ساعت 12 ظهر احتمالا جلسه میتینگ رو توی تلگرام برگزار میکنیم.
اگر مخالفتی دارید یا ساعت کانفیلیت داره براتون خبرم کنید.
اگر مخالفتی دارید یا ساعت کانفیلیت داره براتون خبرم کنید.
بچهها امروز ساعت 12 میتینگ توی گروه داریم 💪
بی صبرانه منتظر حضور و ایدههاتون هستیم.
بی صبرانه منتظر حضور و ایدههاتون هستیم.
این یک تصویر کلی از ساختار پکیج Serialization ماست، هدف ما اینه که کار رو برای توسعه دهندهها آسون کنیم درسته؟ خب یکی از مزیت هایی که کار ما داره اینه که در واقع میایم یک داکیومنت برای سریالایز و دیسریالایز میسازیم و هرچیزی که بخوایم رو اینجا پیاده سازی میکنیم.
دیگه اگر کسی بخواد از newtonsoft یا TextJson یا messagePack و memoryPack و binarygo و ... استفاده کنه لازم نیست بره داکیومنتش رو مطالعه کنه.
فقط استفاده از داکیومنت ما براش کافیه چون ما همشون رو یکپارچه کردیم.
از این معماری سعی کنید توی تمامی زبانهایی که پیاده سازی میکنید استفاده کنید، هر بخش و هر پکیجی پیاده سازی خودش رو داره.
اگر یه نفر خواست از ساختار ما توی newtonsoft استفاده کنه فقط پکیج newtsoft اش رو نصب میکنه و تمام. کدش رو تغییر نمیده چون abstraction اش ثابته و ساختار خودمون روش سوار شده.
دیگه اگر کسی بخواد از newtonsoft یا TextJson یا messagePack و memoryPack و binarygo و ... استفاده کنه لازم نیست بره داکیومنتش رو مطالعه کنه.
فقط استفاده از داکیومنت ما براش کافیه چون ما همشون رو یکپارچه کردیم.
از این معماری سعی کنید توی تمامی زبانهایی که پیاده سازی میکنید استفاده کنید، هر بخش و هر پکیجی پیاده سازی خودش رو داره.
اگر یه نفر خواست از ساختار ما توی newtonsoft استفاده کنه فقط پکیج newtsoft اش رو نصب میکنه و تمام. کدش رو تغییر نمیده چون abstraction اش ثابته و ساختار خودمون روش سوار شده.
جلسه ضبط شده ی میتینگ برای دوستانی که میخوان آفلاین ببینن یا فرصت نداشتن آنلاین ببینن
HTML Embed Code: