Gopher Academy
3.86K subscribers
936 photos
43 videos
280 files
2.29K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔴آموزش 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
🔴پروتوباف🔴

اگر می‌خواید بدونید پروتوباف چیه بهتره اول انواع ساختار مرسوم دیتا چیه، در مرحله اول CSV وجود داشت که یک سری ستون تعریف میکردید و برای اون ستون ها ردیف اضافه می‌کردید.

میشد راحت ساختش، راحت خوندش، راحت درکش کرد ولی نمیشد نوع دیتاهارو تعریف کرد، وقتی توی دیتاتون ویرگول داشته باشید کارِتون خیلی سخت میشه، نمی‌تونید مطمئن باشید دارید دیتارو توی ستون درست ذخیره می‌کنید یا نه.

در مرحله بعد XML داشتیم که فکر نمیکنم دیگه هیچ‌جایی استفاده بشه پس توضیح نمیدم ولی توی وب خیلی کاربرد داشت تا اینکه جی‌سون معرفی شد.

جی‌سون هر نوع دیتایی تو خودش جا میداد (آرایه، آبجکت، تو در تو)، تو اپلیکیشن‌های وب خیلی محبوب بود، با تمام زبان‌های برنامه نویسی سازگار بود، به راحتی توی شبکه انتقال داده میشد. ولی چندتایی مشکل داشت، برای مثال الگویی نداشت و توی هر ریکوئست میتونست شکل متفاوتی داشته باشه، چون کلید‌هارو هر دفعه تکرار میکنه حجم بزرگتری داشت، همچنین هیچ داکیومنت یا کامنتی همراشون ندارن.

و اما پروتوباف (protocol buffers) در سال ۲۰۰۸ توسط گوگل ایجاد شد (که در اون تاریخ SPDY نام داشت)، یک استاندارده که بیشتر برای ارتباط داخلی (ارتباط سرویس‌ها با یکدیگر) استفاده میشه اما این روزها دارن تلاش میکنند که این استاندارد سمت کاربر هم قابل استفاده باشه که فعلا در اندروید امکان پذیره و نمونه‌هایی هم برای مرورگر آماده شده، به علت باینری بودن قابل استفاده در HTTP/2 است از همین جهت سرعت و پرفورمنس خیلی بهتری داره.

مزیت‌های پروتوباف: تایپ دیتاها تعریف شدس، دیتاها بصورت اتوماتیک کمپرس میشن، تمام مسیج‌های ارسالی و دریافتی ساختار (schema) دارن (توی فایل proto تعریف میشن و بعدا توسط جنریتور کد مخصوص زبان شما جنریت میشه)، داکیومنت میتونه توی فایل proto نوشته بشه، دیتاها میتونه توی هر زبان برنامه نویسی‌ای خونده بشه، ساختار (schema) میتونه هرزمانی توسعه پیدا کنه، حدود ۷ برابر سریعتر از جیسونه، کدها بصورت اتوماتیک برای زبان شما جنریت میشه.

و معایب پروتوباف: ممکنه کد جنریتورش بعضی از زبانها رو ساپورت نکنه، نمی‌تونید دیتاهارو موقع انتقال با تکست ادیتور باز کنید (چون باینتریه).

#proto3

🔰 @gopher_academy