چند وقت پیش تو یه مصاحبه کاری، یه سوال پرسیدن که کاملاً جا خوردم: "با gRPC کار کردی؟"
با صداقت گفتم: "نه، اصلاً نمیدونم چیه." یه لحظه سکوت... و از اون مصاحبه که بیرون اومدم یه چیزی تو ذهنم قفل شده بود: "باید بفهمم این چیه."
اون حس ناراحتکنندهی «ندونستن» تو یه مصاحبه، شد یکی از بهترین موتورهای یادگیریم. رفتم سراغ مطالعهی عمیق gRPC، از مشکلات REST و HTTP/1.1 شروع کردم، تا رسیدم به Protobuf، HTTP/2 Multiplexing، و انواع Streaming Pattern هاش.
چیزی که خودم رو غافلگیر کرد این بود که gRPC-Web (نسخهی قابلاستفاده تو مرورگر) نمیتونه مستقیم به یه gRPC server وصل شه چون مرورگرها کنترل کامل روی HTTP/2 frame ها ندارن، همیشه یه proxy (مثل Envoy) لازمه. فکر میکردم gRPC همهجا یکسان کار میکنه، ولی این محدودیت نشونم داد که چقدر context بین "backend-to-backend" و "browser-to-backend" فرق داره.
نتیجهش شده این "gRPC Blueprint" که دومین پست از سری آموزشیمه
توش میبینید:
- چرا REST رو HTTP/1.1 با Head-of-Line Blocking دستوپاگیر میشه
- سه رکن اصلی gRPC که باعث سرعت و کاراییش میشن
- مقایسهی صادقانهی REST vs gRPC vs WebSocket کدوم کجا برندهس
- جایی که gRPC واقعاً میدرخشه (Microservices، سیستمهای Real-time، محیطهای Polyglot)
@DevTwitter | <shaghayegh Ayoubi/>
Post #12437
6.61K
- 👍 38
- ❤ 12
- 👎 6