سلام بچهها روز بخیر.
مرسی از اینکه توی این کامیونیتی شرکت داشتید و دارید همراهی می کنید.
یکی از بچهها پرسیدن که من کارم برنامه نویسی نیست و خیلی مسائل و واژه ها رو متوجه نمیشم و اینکه هدف از این کامیونیتی دقیقا چیه و چه کمکی میتونیم انجام بدیم.
#هدف چیه؟
چندین هدف برای این کامیونیتی من در نظر دارم یه سری اهداف بلند مدت هستند و یه سری اهداف کوتاه مدت.
اهداف کوتاه مدت که خیلی سریع میتونیم بهش برسیم:
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.ایده دارید؟ اون ایده رو توی سورس ها و پروژه ها ایجاد کنید تا توسعه دهنده ها اونارو توسعه بدن.
و...
👍8
دوستان عزیزم فردا ساعت 12 ظهر احتمالا جلسه میتینگ رو توی تلگرام برگزار میکنیم.
اگر مخالفتی دارید یا ساعت کانفیلیت داره براتون خبرم کنید.
اگر مخالفتی دارید یا ساعت کانفیلیت داره براتون خبرم کنید.
👌5👍2
بچهها امروز ساعت 12 میتینگ توی گروه داریم 💪
بی صبرانه منتظر حضور و ایدههاتون هستیم.
بی صبرانه منتظر حضور و ایدههاتون هستیم.
این یک تصویر کلی از ساختار پکیج Serialization ماست، هدف ما اینه که کار رو برای توسعه دهندهها آسون کنیم درسته؟ خب یکی از مزیت هایی که کار ما داره اینه که در واقع میایم یک داکیومنت برای سریالایز و دیسریالایز میسازیم و هرچیزی که بخوایم رو اینجا پیاده سازی میکنیم.
دیگه اگر کسی بخواد از newtonsoft یا TextJson یا messagePack و memoryPack و binarygo و ... استفاده کنه لازم نیست بره داکیومنتش رو مطالعه کنه.
فقط استفاده از داکیومنت ما براش کافیه چون ما همشون رو یکپارچه کردیم.
از این معماری سعی کنید توی تمامی زبانهایی که پیاده سازی میکنید استفاده کنید، هر بخش و هر پکیجی پیاده سازی خودش رو داره.
اگر یه نفر خواست از ساختار ما توی newtonsoft استفاده کنه فقط پکیج newtsoft اش رو نصب میکنه و تمام. کدش رو تغییر نمیده چون abstraction اش ثابته و ساختار خودمون روش سوار شده.
دیگه اگر کسی بخواد از newtonsoft یا TextJson یا messagePack و memoryPack و binarygo و ... استفاده کنه لازم نیست بره داکیومنتش رو مطالعه کنه.
فقط استفاده از داکیومنت ما براش کافیه چون ما همشون رو یکپارچه کردیم.
از این معماری سعی کنید توی تمامی زبانهایی که پیاده سازی میکنید استفاده کنید، هر بخش و هر پکیجی پیاده سازی خودش رو داره.
اگر یه نفر خواست از ساختار ما توی newtonsoft استفاده کنه فقط پکیج newtsoft اش رو نصب میکنه و تمام. کدش رو تغییر نمیده چون abstraction اش ثابته و ساختار خودمون روش سوار شده.
👌1
جلسه ضبط شده ی میتینگ برای دوستانی که میخوان آفلاین ببینن یا فرصت نداشتن آنلاین ببینن
👍10
امروز با تغییراتی که با چندتا از بچه ها که زحمت زیادی کشیدن روی 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.
👏6❤1
سلام دوستان روز بخیر...
یک مرحله جدیدتر و جلوتر نیاز داریم تا بچههایی که توی کد هنوز دستشون روون نشده شروع کنن روش کار کردن.
ما کنار src یه پوشه میخوایم به نام samples توی این پوشه هم قراره به ازای هر زبان جدا باشه برای مثال samples/CSharp بعد توی پوشه ی سی شارپ یا هر زبانی، میخوایم در واقع مثال هایی از استفاده از این پکیج هارو توی معماری های مختلف در قالب پروژه پیاده سازی کنیم تا برنامه نویس هایی که میخوان از این پکیج ها استفاده کنن مثال هاش رو اینجا پیدا کنن.
چندتا نمونه من میزنم که میتونید issue هاش رو بزنید و توی issue هم میتونید بگید من روش کار میکنم تا من issue رو به شما asign کنم.
چندتا نمونه که میتونید مثال هاش رو بزنید و شروع کنید به پیاده سازی کردن مثال ها برای استفاده از پکیج ها :
1.AspCore
2.ConsoleApp
3.WPF
4.XamarinAndroid
5.XamarinIOS
6.XamarinForms
7.Unity
برای مشاهدهی پکیج های Easymicroservices جهت نصب و استفاده توی سمپل ها میتونید به آدرس زیر برید:
https://www.nuget.org/packages?q=easymicroservices
یک مرحله جدیدتر و جلوتر نیاز داریم تا بچههایی که توی کد هنوز دستشون روون نشده شروع کنن روش کار کردن.
ما کنار src یه پوشه میخوایم به نام samples توی این پوشه هم قراره به ازای هر زبان جدا باشه برای مثال samples/CSharp بعد توی پوشه ی سی شارپ یا هر زبانی، میخوایم در واقع مثال هایی از استفاده از این پکیج هارو توی معماری های مختلف در قالب پروژه پیاده سازی کنیم تا برنامه نویس هایی که میخوان از این پکیج ها استفاده کنن مثال هاش رو اینجا پیدا کنن.
چندتا نمونه من میزنم که میتونید issue هاش رو بزنید و توی issue هم میتونید بگید من روش کار میکنم تا من issue رو به شما asign کنم.
چندتا نمونه که میتونید مثال هاش رو بزنید و شروع کنید به پیاده سازی کردن مثال ها برای استفاده از پکیج ها :
1.AspCore
2.ConsoleApp
3.WPF
4.XamarinAndroid
5.XamarinIOS
6.XamarinForms
7.Unity
برای مشاهدهی پکیج های Easymicroservices جهت نصب و استفاده توی سمپل ها میتونید به آدرس زیر برید:
https://www.nuget.org/packages?q=easymicroservices
👍1
برای ساختن یک Issue در گیتهاب کافیه وارد صفحهی هر ریپازیتوری بشید و در تب Issue روی گزینه ی new issue کلیک کنید.
هرگونه فیچر یا باگ و مسئلهای که بهش برخورد میکنید رو میتونید توی بخش Issue ها بزنید.
در صفحهی باز شده، شما یک تیتر برای Issue میزنید و سپس متن کامل مسئله رو توی توضیحات پر میکنید.
#Issue
هرگونه فیچر یا باگ و مسئلهای که بهش برخورد میکنید رو میتونید توی بخش Issue ها بزنید.
در صفحهی باز شده، شما یک تیتر برای Issue میزنید و سپس متن کامل مسئله رو توی توضیحات پر میکنید.
#Issue
توی شمارهی 1 تیتر مسئله رو بزنید.
توی شمارهی 2 با توجه به توضیحات میتونید قالب رو رعایت کنید و توضیحات مسئله رو بیان کنید.
توی شمارهی 3 در صورتی که دسترسیهای لازم رو داشته باشید میتونید مشکل رو به یک شخص برای انجام Asign کنید یا برچسب های مورد نظر برای باگ و فیچر و ... رو بزنید.
و بعد از اینکه کارتون تموم شد روی دکمهی submit new issue در مرحلهی 4 کلیک کنید.
مسئلهی شما ثبت میشه، شما یک contribution دریافت میکنید و مسئله میره تا توسط ادمینها بررسی و توسعه داده بشه.
توی شمارهی 2 با توجه به توضیحات میتونید قالب رو رعایت کنید و توضیحات مسئله رو بیان کنید.
توی شمارهی 3 در صورتی که دسترسیهای لازم رو داشته باشید میتونید مشکل رو به یک شخص برای انجام Asign کنید یا برچسب های مورد نظر برای باگ و فیچر و ... رو بزنید.
و بعد از اینکه کارتون تموم شد روی دکمهی submit new issue در مرحلهی 4 کلیک کنید.
مسئلهی شما ثبت میشه، شما یک contribution دریافت میکنید و مسئله میره تا توسط ادمینها بررسی و توسعه داده بشه.
Easy Microservices
توی شمارهی 1 تیتر مسئله رو بزنید. توی شمارهی 2 با توجه به توضیحات میتونید قالب رو رعایت کنید و توضیحات مسئله رو بیان کنید. توی شمارهی 3 در صورتی که دسترسیهای لازم رو داشته باشید میتونید مشکل رو به یک شخص برای انجام Asign کنید یا برچسب های مورد نظر برای…
هر issue یک شماره داره، برای اینکه کامیت هاتون رو به یک issue متصل کنید میتونید با استفاده از شمارهی issue کامیتتون رو بزنید.
مثلا اگر شمارهی issue عدد 4 باشه.
کامیت مسج شما به این شکل میشه:
Add support for #4 red buttom.
قبل عدد یک # میذاریم.
مثلا اگر شمارهی issue عدد 4 باشه.
کامیت مسج شما به این شکل میشه:
Add support for #4 red buttom.
قبل عدد یک # میذاریم.
سلام بچهها چندتا ایده برای پروژه ی فایل منیجر ارائه میکنم اگر دوست داشتید issue اش رو بزنید هر کدومو که دوست داشتید شروع کنید روش کار کردن.
برای بچه های سی شارپ:
1.File Manager for android (Xamarin and MAUI)
2.Directory Manager for android (Xamarin and MAUI)
3.File Manager for IOS (Xamarin and MAUI)
4.Directory Manager for IOS (Xamarin and MAUI)
5.File Manager for UWP
5.Directory Manager for UWP
برای بچه های فلاتر:
1.File Manager for android (Flutter)
2.Directory Manager for android (Flutter)
3.File Manager for IOS (Flutter)
4.Directory Manager for IOS (Flutter)
5.File Manager for Dart (Windows or linux)
5.Directory Manager for Dart (Windows or linux)
برای بچه های جاوا:
1.File Manager for android (Java or katlin)
2.Directory Manager for android (Java or katlin)
3.File Manager for Java (Windows or linux)
4.Directory ManagerJava (Windows or linux)
و بقیه ی زبان های برنامه نویسی مثل javascript برای react native و swift و ... هم میتونید از این ساختار و issue ها ایده بگیرید و شروع کنید به پیاده سازی کردن.
❤️😉
برای بچه های سی شارپ:
1.File Manager for android (Xamarin and MAUI)
2.Directory Manager for android (Xamarin and MAUI)
3.File Manager for IOS (Xamarin and MAUI)
4.Directory Manager for IOS (Xamarin and MAUI)
5.File Manager for UWP
5.Directory Manager for UWP
برای بچه های فلاتر:
1.File Manager for android (Flutter)
2.Directory Manager for android (Flutter)
3.File Manager for IOS (Flutter)
4.Directory Manager for IOS (Flutter)
5.File Manager for Dart (Windows or linux)
5.Directory Manager for Dart (Windows or linux)
برای بچه های جاوا:
1.File Manager for android (Java or katlin)
2.Directory Manager for android (Java or katlin)
3.File Manager for Java (Windows or linux)
4.Directory ManagerJava (Windows or linux)
و بقیه ی زبان های برنامه نویسی مثل javascript برای react native و swift و ... هم میتونید از این ساختار و issue ها ایده بگیرید و شروع کنید به پیاده سازی کردن.
❤️😉
👍2
چون بچهها خیلی زودتر از موعدی که انتظار داشتم وارد پروژهی 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.
👍2❤1