Gopher Academy
❌gRPCurl❌ ✅امروز میخوام در مورد یه ابزاری cli مخصوص ارتباط با grpc رو بهتون معرفی کنم✅ 👇🏻👇🏻توضیحات در ادامه👇🏻👇🏻 ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯واسه شروع کار ابتدا وارد دایرکتوری که فایل proto هست برید و دستور زیر رو بزنید. با زدن این دستور یه فایل با پسوند protosetایجاد میشه در واقع توی این فایل تمام سرویس ها و مسیج هاتون رو توی یه قالب خاض خودش لیست می کنه . جهت ارتباط کامندهای grpcurl با فایل protoشما🎯
✅ protoc --proto_path=./ --descriptor_set_out=client.protoset --include_imports ./client.proto
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅ protoc --proto_path=./ --descriptor_set_out=client.protoset --include_imports ./client.proto
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌gRPCurl❌ ✅امروز میخوام در مورد یه ابزاری cli مخصوص ارتباط با grpc رو بهتون معرفی کنم✅ 👇🏻👇🏻توضیحات در ادامه👇🏻👇🏻 ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯جهت نمایش تمام سرویس های که توی فایل proto تعریف کردید🎯
✅ grpcurl -protoset ./client.protoset list
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅ grpcurl -protoset ./client.protoset list
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌gRPCurl❌ ✅امروز میخوام در مورد یه ابزاری cli مخصوص ارتباط با grpc رو بهتون معرفی کنم✅ 👇🏻👇🏻توضیحات در ادامه👇🏻👇🏻 ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯جهت نمایش تمام RPC متدهای که داخل سرویسAuthorizedClient تعریف کردیم 🎯
❌در کامند زیر بجای aa.bb نام پکبجی که برای فایل proto رو گذاشتید رو بنویسید
✅ grpcurl -protoset ./client.protoset list aa.bb.AuthorizedClient
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌در کامند زیر بجای aa.bb نام پکبجی که برای فایل proto رو گذاشتید رو بنویسید
✅ grpcurl -protoset ./client.protoset list aa.bb.AuthorizedClient
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌gRPCurl❌ ✅امروز میخوام در مورد یه ابزاری cli مخصوص ارتباط با grpc رو بهتون معرفی کنم✅ 👇🏻👇🏻توضیحات در ادامه👇🏻👇🏻 ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯برای بدست آوردن یه اطلاعات کامل از متد ما از دستور زیر استفاده می کنیم. این دستور به ما میگه که متدی که داریم استفاده می کنیم از چه نوعی هست🎯
❌نوع های مختلف ارتباط
🟦 Unary RPC
🟦 Server streaming RPC
🟦 Client streaming RPC
🟦 Bidirectional streaming RPC
❌در دستور زیر zz نام متد ما هست
✅ grpcurl -protoset ./client.protoset describe aa.bb.UnauthorizedClient.zz
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌نوع های مختلف ارتباط
🟦 Unary RPC
🟦 Server streaming RPC
🟦 Client streaming RPC
🟦 Bidirectional streaming RPC
❌در دستور زیر zz نام متد ما هست
✅ grpcurl -protoset ./client.protoset describe aa.bb.UnauthorizedClient.zz
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌gRPCurl❌ ✅امروز میخوام در مورد یه ابزاری cli مخصوص ارتباط با grpc رو بهتون معرفی کنم✅ 👇🏻👇🏻توضیحات در ادامه👇🏻👇🏻 ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🎯نحوه اجرا🎯
✅ grpcurl -plaintext -protoset ./client.protoset 0.0.0.0:50051 aa.bb.UnauthorizedClient/GetProductFullInfo
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅ grpcurl -plaintext -protoset ./client.protoset 0.0.0.0:50051 aa.bb.UnauthorizedClient/GetProductFullInfo
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅These are the officially supported gRPC language, platform and OS versions:✅
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅coming soon:✅
❌Flutter
❌iOS – docs coming soon
✅Supported platforms✅
✔️Android
—Java
—-Kotlin
✔️Web
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌Flutter
❌iOS – docs coming soon
✅Supported platforms✅
✔️Android
—Java
—-Kotlin
✔️Web
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯پیادسازی grpc-errors برای ده زبان توی ریپوی زیر🎯
✅ https://github.com/avinassh/grpc-errors
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅ https://github.com/avinassh/grpc-errors
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔸استخدام Golang Developer در شرکت تجارت بین الملل رابین #تهران
🔹تماموقت 🔹ارشد (Senior)
🔗 https://quera.ir/r/asNt7p
.
#job
.
🔰 @gopher_academy
🔹تماموقت 🔹ارشد (Senior)
🔗 https://quera.ir/r/asNt7p
.
#job
.
🔰 @gopher_academy
❌به ساختار فوق توی گولنگ میگن Flat Structure❌
✅این ساختار یه ساختار بدون پوشه می باشد
✅این ساختار برای شروع ایده آل هست هم در
✅میکروسرویس های کوچیکی که دارن تازه شروع میشن به توسعه و
✅همچنین ابزارها و کتابخانه های کوچک که ابزارهای خط فرمان یا کتابخانه های کوچکی که تمرکز آنها بر انجام یکسری وظایف بسیار خوب هستند متمرکز می شوند
مانند دو کتابخانه زیر که جزو این ساختار هستن
https://github.com/tidwall/gjson
https://github.com/go-yaml/yaml
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅این ساختار یه ساختار بدون پوشه می باشد
✅این ساختار برای شروع ایده آل هست هم در
✅میکروسرویس های کوچیکی که دارن تازه شروع میشن به توسعه و
✅همچنین ابزارها و کتابخانه های کوچک که ابزارهای خط فرمان یا کتابخانه های کوچکی که تمرکز آنها بر انجام یکسری وظایف بسیار خوب هستند متمرکز می شوند
مانند دو کتابخانه زیر که جزو این ساختار هستن
https://github.com/tidwall/gjson
https://github.com/go-yaml/yaml
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
درآمد دلاری
زبان های برنامه نویسی در سال ۲۰۲۰
🔹 این آمار در سایت Jobzey منتشر شده است.
2⃣ Golang ------- $140.000
🔰 @gopher_academy
زبان های برنامه نویسی در سال ۲۰۲۰
🔹 این آمار در سایت Jobzey منتشر شده است.
2⃣ Golang ------- $140.000
🔰 @gopher_academy
Kubernetes Learning Path _ Version 2.0.pdf
2.6 MB
❌مسیر یادگیری کوبرنتیز از دید مایکروسافت.
❌در عرض 50 روز، مباحث مهم و بیسیک کوبرنیتز رو با استفاده از کورس های مایکروسافت یاد بگیرید!
❌اطلاعات بیشتر در ریپازیتوری زیر:
❌ https://github.com/microsoft/kubernetes-learning-path
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌در عرض 50 روز، مباحث مهم و بیسیک کوبرنیتز رو با استفاده از کورس های مایکروسافت یاد بگیرید!
❌اطلاعات بیشتر در ریپازیتوری زیر:
❌ https://github.com/microsoft/kubernetes-learning-path
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در حال حاضر از کدام سرویس های ابری زیر استفاده می کنید؟
Anonymous Poll
52%
Amazon Web Services
35%
Google Cloud Platform
16%
Microsoft Azure
🎯نگاهی عمیق به تایپ های گولنگ🎯
🔹Type Aliases
🔹Basic Types
🔹Strings
🔹Pointers
🔹Pointers
🔹Interfaces
🔹Structs
🔹Type Assertions
🔹Reflection
🔹Functions
🔹Channels
🔹Collections
🔹Arrays
🔹Slices
🔹Maps
🔹Zero Values
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹Type Aliases
🔹Basic Types
🔹Strings
🔹Pointers
🔹Pointers
🔹Interfaces
🔹Structs
🔹Type Assertions
🔹Reflection
🔹Functions
🔹Channels
🔹Collections
🔹Arrays
🔹Slices
🔹Maps
🔹Zero Values
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
🔹گولنگ سیستم بسیار جالبی دارد. این امر به نفع رابط ها و ترکیبات از کلاس ها و وراثت قرار می گیرد ، اما از طرف دیگر ژنریک ندارد.
🔹در این آموزش با جزئیات تایپ سیستم Go و چگونگی استفاده موثر از آن برای نوشتن کد آشنا خواهید شد.
🔹تایپ سیستم Go از الگوی های رویه ای ، شی گرا و عملکردی پشتیبانی می کند. پشتیبانی بسیار محدودی از برنامه نویسی عمومی دارد. در حالی که Go یک زبان ثابت است ، اما انعطاف پذیری کافی را برای تکنیک های پویا از طریق رابط ها ، توابع کلاس فراهم می کند.
🔹تایپ سیستم Go فاقد قابلیت هایی است که در اکثر زبان های مدرن رایج است:
🔺هیچ نوع استثنائی وجود ندارد زیرا مدیریت خطاهای Go بر اساس کدهای بازگشت و رابط خطا است.
🔺بیش از حد عملگر وجود ندارد.
🔺هیچ بار اضافی در عملکرد وجود ندارد (همان نام عملکرد با پارامترهای مختلف).
🔺پارامترهای عملکرد اختیاری یا پیش فرض وجود ندارد.
🔺این موارد حذف شده همه با توجه به طراحی انجام می شود تا Go هرچه ساده تر شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹در این آموزش با جزئیات تایپ سیستم Go و چگونگی استفاده موثر از آن برای نوشتن کد آشنا خواهید شد.
🔹تایپ سیستم Go از الگوی های رویه ای ، شی گرا و عملکردی پشتیبانی می کند. پشتیبانی بسیار محدودی از برنامه نویسی عمومی دارد. در حالی که Go یک زبان ثابت است ، اما انعطاف پذیری کافی را برای تکنیک های پویا از طریق رابط ها ، توابع کلاس فراهم می کند.
🔹تایپ سیستم Go فاقد قابلیت هایی است که در اکثر زبان های مدرن رایج است:
🔺هیچ نوع استثنائی وجود ندارد زیرا مدیریت خطاهای Go بر اساس کدهای بازگشت و رابط خطا است.
🔺بیش از حد عملگر وجود ندارد.
🔺هیچ بار اضافی در عملکرد وجود ندارد (همان نام عملکرد با پارامترهای مختلف).
🔺پارامترهای عملکرد اختیاری یا پیش فرض وجود ندارد.
🔺این موارد حذف شده همه با توجه به طراحی انجام می شود تا Go هرچه ساده تر شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Type Aliases❌
می توانید alias types را در Go ایجاد کرده با تایپ های مختلف
اما بدون تبدیل ، نمی توانید مقداری از نوع اساسی را به یک نوع مستعار اختصاص دهید.
به عنوان مثال در تصویر فوق ، انتساب var b int = a در برنامه زیر باعث خطای تلفیقی می شود
زیرا نوع Age نام مستعار int است ، اما int نیست:
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
می توانید alias types را در Go ایجاد کرده با تایپ های مختلف
اما بدون تبدیل ، نمی توانید مقداری از نوع اساسی را به یک نوع مستعار اختصاص دهید.
به عنوان مثال در تصویر فوق ، انتساب var b int = a در برنامه زیر باعث خطای تلفیقی می شود
زیرا نوع Age نام مستعار int است ، اما int نیست:
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌Type Aliases❌ می توانید alias types را در Go ایجاد کرده با تایپ های مختلف اما بدون تبدیل ، نمی توانید مقداری از نوع اساسی را به یک نوع مستعار اختصاص دهید. به عنوان مثال در تصویر فوق ، انتساب var b int = a در برنامه زیر باعث خطای تلفیقی می شود زیرا نوع…
می توانید type declarations را گروه بندی کنید یا از یک declarations در هر سطر استفاده کنید:
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy