🔴آموزش proto3 از صفر تا صد🔴
✅proto?
🔴https://t.iss.one/gopher_academy/627
✅Defining A Message Type
🔴 https://t.iss.one/gopher_academy/628
✅Assigning Field Numbers
🔴https://t.iss.one/gopher_academy/629
✅Adding Comments
🔴 https://t.iss.one/gopher_academy/630
✅Reserved Fields
🔴 https://t.iss.one/gopher_academy/631
✅What's Generated From Your .proto?
🔴 https://t.iss.one/gopher_academy/632
✅Scalar Value Types
🔴 https://t.iss.one/gopher_academy/633
✅Default Values
🔴 https://t.iss.one/gopher_academy/634
✅Enumerations
🔴 https://t.iss.one/gopher_academy/636
✅Using Other Message Types
🔴 https://t.iss.one/gopher_academy/638
✅Nested Types
🔴 https://t.iss.one/gopher_academy/639
✅Updating A Message Type
🔴 https://t.iss.one/gopher_academy/641
✅Any
🔴 https://t.iss.one/gopher_academy/642
✅Oneof
🔴 https://t.iss.one/gopher_academy/643
✅Maps
🔴 https://t.iss.one/gopher_academy/647
✅Packages
🔴 https://t.iss.one/gopher_academy/648
✅Defining Services
🔴 https://t.iss.one/gopher_academy/649
🔴 https://t.iss.one/gopher_academy/650
✅JSON Mapping
🔴 https://t.iss.one/gopher_academy/664
🔴 https://t.iss.one/gopher_academy/665
🔴 https://t.iss.one/gopher_academy/666
✅JSON options
🔴 https://t.iss.one/gopher_academy/667
✅Options
🔴
✅Generating Your Classes
🔴
#proto3
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅proto?
🔴https://t.iss.one/gopher_academy/627
✅Defining A Message Type
🔴 https://t.iss.one/gopher_academy/628
✅Assigning Field Numbers
🔴https://t.iss.one/gopher_academy/629
✅Adding Comments
🔴 https://t.iss.one/gopher_academy/630
✅Reserved Fields
🔴 https://t.iss.one/gopher_academy/631
✅What's Generated From Your .proto?
🔴 https://t.iss.one/gopher_academy/632
✅Scalar Value Types
🔴 https://t.iss.one/gopher_academy/633
✅Default Values
🔴 https://t.iss.one/gopher_academy/634
✅Enumerations
🔴 https://t.iss.one/gopher_academy/636
✅Using Other Message Types
🔴 https://t.iss.one/gopher_academy/638
✅Nested Types
🔴 https://t.iss.one/gopher_academy/639
✅Updating A Message Type
🔴 https://t.iss.one/gopher_academy/641
✅Any
🔴 https://t.iss.one/gopher_academy/642
✅Oneof
🔴 https://t.iss.one/gopher_academy/643
✅Maps
🔴 https://t.iss.one/gopher_academy/647
✅Packages
🔴 https://t.iss.one/gopher_academy/648
✅Defining Services
🔴 https://t.iss.one/gopher_academy/649
🔴 https://t.iss.one/gopher_academy/650
✅JSON Mapping
🔴 https://t.iss.one/gopher_academy/664
🔴 https://t.iss.one/gopher_academy/665
🔴 https://t.iss.one/gopher_academy/666
✅JSON options
🔴 https://t.iss.one/gopher_academy/667
✅Options
🔴
✅Generating Your Classes
🔴
#proto3
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴پروتوباف🔴
✅اگر میخواید بدونید پروتوباف چیه بهتره اول انواع ساختار مرسوم دیتا چیه، در مرحله اول CSV وجود داشت که یک سری ستون تعریف میکردید و برای اون ستون ها ردیف اضافه میکردید.
✅میشد راحت ساختش، راحت خوندش، راحت درکش کرد ولی نمیشد نوع دیتاهارو تعریف کرد، وقتی توی دیتاتون ویرگول داشته باشید کارِتون خیلی سخت میشه، نمیتونید مطمئن باشید دارید دیتارو توی ستون درست ذخیره میکنید یا نه.
✅در مرحله بعد XML داشتیم که فکر نمیکنم دیگه هیچجایی استفاده بشه پس توضیح نمیدم ولی توی وب خیلی کاربرد داشت تا اینکه جیسون معرفی شد.
✅جیسون هر نوع دیتایی تو خودش جا میداد (آرایه، آبجکت، تو در تو)، تو اپلیکیشنهای وب خیلی محبوب بود، با تمام زبانهای برنامه نویسی سازگار بود، به راحتی توی شبکه انتقال داده میشد. ولی چندتایی مشکل داشت، برای مثال الگویی نداشت و توی هر ریکوئست میتونست شکل متفاوتی داشته باشه، چون کلیدهارو هر دفعه تکرار میکنه حجم بزرگتری داشت، همچنین هیچ داکیومنت یا کامنتی همراشون ندارن.
✅و اما پروتوباف (protocol buffers) در سال ۲۰۰۸ توسط گوگل ایجاد شد (که در اون تاریخ SPDY نام داشت)، یک استاندارده که بیشتر برای ارتباط داخلی (ارتباط سرویسها با یکدیگر) استفاده میشه اما این روزها دارن تلاش میکنند که این استاندارد سمت کاربر هم قابل استفاده باشه که فعلا در اندروید امکان پذیره و نمونههایی هم برای مرورگر آماده شده، به علت باینری بودن قابل استفاده در HTTP/2 است از همین جهت سرعت و پرفورمنس خیلی بهتری داره.
✅مزیتهای پروتوباف: تایپ دیتاها تعریف شدس، دیتاها بصورت اتوماتیک کمپرس میشن، تمام مسیجهای ارسالی و دریافتی ساختار (schema) دارن (توی فایل proto تعریف میشن و بعدا توسط جنریتور کد مخصوص زبان شما جنریت میشه)، داکیومنت میتونه توی فایل proto نوشته بشه، دیتاها میتونه توی هر زبان برنامه نویسیای خونده بشه، ساختار (schema) میتونه هرزمانی توسعه پیدا کنه، حدود ۷ برابر سریعتر از جیسونه، کدها بصورت اتوماتیک برای زبان شما جنریت میشه.
✅و معایب پروتوباف: ممکنه کد جنریتورش بعضی از زبانها رو ساپورت نکنه، نمیتونید دیتاهارو موقع انتقال با تکست ادیتور باز کنید (چون باینتریه).
#proto3
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅اگر میخواید بدونید پروتوباف چیه بهتره اول انواع ساختار مرسوم دیتا چیه، در مرحله اول CSV وجود داشت که یک سری ستون تعریف میکردید و برای اون ستون ها ردیف اضافه میکردید.
✅میشد راحت ساختش، راحت خوندش، راحت درکش کرد ولی نمیشد نوع دیتاهارو تعریف کرد، وقتی توی دیتاتون ویرگول داشته باشید کارِتون خیلی سخت میشه، نمیتونید مطمئن باشید دارید دیتارو توی ستون درست ذخیره میکنید یا نه.
✅در مرحله بعد XML داشتیم که فکر نمیکنم دیگه هیچجایی استفاده بشه پس توضیح نمیدم ولی توی وب خیلی کاربرد داشت تا اینکه جیسون معرفی شد.
✅جیسون هر نوع دیتایی تو خودش جا میداد (آرایه، آبجکت، تو در تو)، تو اپلیکیشنهای وب خیلی محبوب بود، با تمام زبانهای برنامه نویسی سازگار بود، به راحتی توی شبکه انتقال داده میشد. ولی چندتایی مشکل داشت، برای مثال الگویی نداشت و توی هر ریکوئست میتونست شکل متفاوتی داشته باشه، چون کلیدهارو هر دفعه تکرار میکنه حجم بزرگتری داشت، همچنین هیچ داکیومنت یا کامنتی همراشون ندارن.
✅و اما پروتوباف (protocol buffers) در سال ۲۰۰۸ توسط گوگل ایجاد شد (که در اون تاریخ SPDY نام داشت)، یک استاندارده که بیشتر برای ارتباط داخلی (ارتباط سرویسها با یکدیگر) استفاده میشه اما این روزها دارن تلاش میکنند که این استاندارد سمت کاربر هم قابل استفاده باشه که فعلا در اندروید امکان پذیره و نمونههایی هم برای مرورگر آماده شده، به علت باینری بودن قابل استفاده در HTTP/2 است از همین جهت سرعت و پرفورمنس خیلی بهتری داره.
✅مزیتهای پروتوباف: تایپ دیتاها تعریف شدس، دیتاها بصورت اتوماتیک کمپرس میشن، تمام مسیجهای ارسالی و دریافتی ساختار (schema) دارن (توی فایل proto تعریف میشن و بعدا توسط جنریتور کد مخصوص زبان شما جنریت میشه)، داکیومنت میتونه توی فایل proto نوشته بشه، دیتاها میتونه توی هر زبان برنامه نویسیای خونده بشه، ساختار (schema) میتونه هرزمانی توسعه پیدا کنه، حدود ۷ برابر سریعتر از جیسونه، کدها بصورت اتوماتیک برای زبان شما جنریت میشه.
✅و معایب پروتوباف: ممکنه کد جنریتورش بعضی از زبانها رو ساپورت نکنه، نمیتونید دیتاهارو موقع انتقال با تکست ادیتور باز کنید (چون باینتریه).
#proto3
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy