در این مطلب، ویدئو چالش ها و آموخته ها: ساخت پشته gRPC Python AsyncIO – Lidi Zheng، Google با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:14:00
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:02,560
بنابراین سلام به همه امروز، من می خواهم
2
00:00:02,560 –> 00:00:04,560
چالش ها و آموخته های خود را
3
00:00:04,560 –> 00:00:07,120
از ساختن پشته grpc python asynchio به اشتراک بگذارم،
4
00:00:07,120 –> 00:00:08,240
5
00:00:08,240 –> 00:00:10,000
بنابراین امروز چهار موضوع را پوشش
6
00:00:10,000 –> 00:00:11,920
می دهیم، اولی در مورد
7
00:00:11,920 –> 00:00:14,240
داستان ناهمزمان پایتون است، دومی
8
00:00:14,240 –> 00:00:16,560
در مورد همکاری بین تیم jfc
9
00:00:16,560 –> 00:00:17,039
10
00:00:17,039 –> 00:00:19,840
و انجمن سوم است. درباره برخی از
11
00:00:19,840 –> 00:00:20,640
نکات
12
00:00:20,640 –> 00:00:23,840
برجسته api asynchial و در نهایت برخی از
13
00:00:23,840 –> 00:00:25,279
چالش های پیاده سازی است
14
00:00:25,279 –> 00:00:29,199
که من شخصاً با آن مواجه شده ام،
15
00:00:29,199 –> 00:00:32,238
بنابراین برای بسیاری از شما ممکن است بدانید ژاپنی دارای
16
00:00:32,238 –> 00:00:33,360
پشته های زیادی است
17
00:00:33,360 –> 00:00:35,600
که ما از 14 زبان مختلف پشتیبانی می کنیم و
18
00:00:35,600 –> 00:00:37,120
برخی از آنها حتی
19
00:00:37,120 –> 00:00:40,399
بیش از یک پیاده سازی و
20
00:00:40,399 –> 00:00:42,559
برخی اطلاعات دارند. اکثر کوپاها را به اشتراک می
21
00:00:42,559 –> 00:00:44,000
گذارند اما برخی از
22
00:00:44,000 –> 00:00:49,039
آنها پارادایم برنامه نویسی بسیار متفاوتی دارند،
23
00:00:49,039 –> 00:00:52,079
پس چرا ما می خواهیم پشته جدید بسازیم،
24
00:00:52,079 –> 00:00:55,600
اگر از قبل پشته های زیادی وجود داشته
25
00:00:55,600 –> 00:00:58,800
باشد، این به این دلیل است که پایتون ها داستان ناهمزمان تکه تکه شده
26
00:00:58,800 –> 00:01:01,680
ای دارند و همانطور که ممکن است بدانید
27
00:01:01,680 –> 00:01:03,120
پایتون دارای تعداد زیادی
28
00:01:03,120 –> 00:01:05,360
ناهمزمان است. کتابخانه
29
00:01:05,360 –> 00:01:07,600
هایی مانند گردباد پیچ خورده باند g و م
30
00:01:07,600 –> 00:01:10,560
توانند به دو نوع مختلف تقسیم شوند، نو
31
00:01:10,560 –> 00:01:12,479
اول آنها Patching میمون را انجام می دهند،
32
00:01:12,479 –> 00:01:13,040
33
00:01:13,040 –> 00:01:15,119
آنها تمام کتابخانه های استاندارد پایتون را وصله می کنند
34
00:01:15,119 –> 00:01:16,560
35
00:01:16,560 –> 00:01:18,240
و دومی یک
36
00:01:18,240 –> 00:01:20,080
حلقه رویداد جایگزین ارائه می دهد تا
37
00:01:20,080 –> 00:01:21,840
بتوانید کدنویسی خود را
38
00:01:21,840 –> 00:01:25,040
در آن ثبت کنید، اما مشکل این است که اگر
39
00:01:25,040 –> 00:01:27,040
از بیش از یک
40
00:01:27,040 –> 00:01:29,119
کتابخانه ناهمزمان استفاده می کنید، ممکن است به احتمال زیاد باعث ایجاد آن شود. یک
41
00:01:29,119 –> 00:01:30,240
بن بست وجود دارد
42
00:01:30,240 –> 00:01:33,439
و هر یک از آنها
43
00:01:33,439 –> 00:01:36,400
الگوهای برنامه نویسی مختلفی دارند، بنابراین
44
00:01:36,400 –> 00:01:40,560
جابجایی از یکی به دیگری بسیار سخت است، خوشبختانه
45
00:01:40,560 –> 00:01:43,040
نگهبانان پایتون نیز متوجه می شوند که
46
00:01:43,040 –> 00:01:44,079
این یک مشکل است
47
00:01:44,079 –> 00:01:46,720
و آنها این کار را انجام دادند و کتابخانه
48
00:01:46,720 –> 00:01:47,680
رسمی
49
00:01:47,680 –> 00:01:49,759
ناهمزمان را که
50
00:01:49,759 –> 00:01:51,280
async io نامیده می شود توسعه دادند
51
00:01:51,280 –> 00:01:54,640
و آن را توسعه دادند. کلمات کلیدی جدید async
52
00:01:54,640 –> 00:01:55,439
و await را
53
00:01:55,439 –> 00:01:58,799
درست مانند جاوا اسکریپت و hd shop معرفی می کند و
54
00:01:58,799 –> 00:02:02,079
همه و همه کتابخانه های asymus که
55
00:02:02,079 –> 00:02:03,840
قبل از آن دیده بودیم در تلاش برای سازگاری
56
00:02:03,840 –> 00:02:05,680
با این کتابخانه رسمی ناهمزمان جدید هستند
57
00:02:05,680 –> 00:02:08,160
و در سمت راست
58
00:02:08,160 –> 00:02:08,720
59
00:02:08,720 –> 00:02:11,520
یک قطعه کوتاه وجود دارد که نحوه مشاهده
60
00:02:11,520 –> 00:02:13,920
نحوه مشاهده باز کردن یک اتصال tcp
61
00:02:13,920 –> 00:02:16,560
و نحوه خواندن نوشتن از آن با استفاده از
62
00:02:16,560 –> 00:02:17,520
ناهمزمان
63
00:02:17,520 –> 00:02:20,959
با استفاده از async io به
64
00:02:20,959 –> 00:02:24,319
خوبی معنایی، همه اینها عالی است
65
00:02:24,319 –> 00:02:28,160
و یکی از اعضای تیم grpc ما نظری را ارسال
66
00:02:28,160 –> 00:02:30,400
کرد و گفت که ما قصد داریم این چیز را بسازیم
67
00:02:30,400 –> 00:02:31,840
68
00:02:31,840 –> 00:02:34,560
و این نظر خدا یکی از بیشترین
69
00:02:34,560 –> 00:02:35,360
70
00:02:35,360 –> 00:02:39,360
نظرات بارگذاری شده در کل مخزن درایوها است،
71
00:02:39,360 –> 00:02:41,760
اما با وجود تقاضای بالا
72
00:02:41,760 –> 00:02:44,319
و همه آن مزایا، ما در مورد آن صحبت کردیم.
73
00:02:44,319 –> 00:02:47,680
به دلیل کمبود منابع مهندسی هرگز این اتفاق نیفتاد،
74
00:02:47,680 –> 00:02:50,239
75
00:02:50,239 –> 00:02:53,120
بنابراین api async io هرگز
76
00:02:53,120 –> 00:02:54,319
77
00:02:54,319 –> 00:02:58,239
قبل از اینکه به او کمک کند اولویت بندی نشد،
78
00:02:58,239 –> 00:03:01,760
بنابراین یک مهندس به نام
79
00:03:01,760 –> 00:03:05,440
paul frixis و او از اسکنر اسکنر
80
00:03:05,440 –> 00:03:08,560
بود، یک ایمیل برای ما ارسال کرد و گفت خوب است،
81
00:03:08,560 –> 00:03:11,680
اکنون ما اکنون یک حرفه ای ساخته ام.
82
00:03:11,680 –> 00:03:15,200
اثبات مفهوم
83
00:03:15,200 –> 00:03:18,319
یک راننده بومی grpc async io و او
84
00:03:18,319 –> 00:03:20,480
85
00:03:20,480 –> 00:03:23,599
از تیم grcc درخواست همکاری می کند و بعد از اولین جلسه ما
86
00:03:23,599 –> 00:03:25,040
87
00:03:25,040 –> 00:03:27,120
قول دادند که چهار مجموعه پاره وقت را به اشتراک بگذارند
88
00:03:27,120 –> 00:03:29,840
89
00:03:29,840 –> 00:03:32,400
و حل شد که
90
00:03:32,400 –> 00:03:34,879
تمام منابع مهندسی مورد نیاز را به پروژه می دهد
91
00:03:34,879 –> 00:03:38,560
و سپس ما می توانیم بالاخره شروع کنید
92
00:03:38,560 –> 00:03:41,120
و با گذشت زمان، شرکتهای بیشتری
93
00:03:41,120 –> 00:03:42,000
94
00:03:42,000 –> 00:03:44,720
از جمله مهندسان
95
00:03:44,720 –> 00:03:45,599
دراپ باکس
96
00:03:45,599 –> 00:03:47,519
و برخی از uber و بسیاری دیگر از
97
00:03:47,519 –> 00:03:48,799
اعضای جامعه به این تلاشها
98
00:03:48,799 –> 00:03:51,200
میپیوندند. چشم نه تنها به کد کمک می کند،
99
00:03:51,200 –> 00:03:53,120
بلکه در طراحی خود
100
00:03:53,120 –> 00:03:57,920
و نظر دادن در مورد جهت ها و
101
00:03:59,439 –> 00:04:02,879
شرکت در مورد مسیرها، به طوری
102
00:04:02,879 –> 00:04:04,400
که همانطور که می بینید نظرات زیادی در مورد سگ طراحی وجود دارد،
103
00:04:04,400 –> 00:04:06,959
104
00:04:06,959 –> 00:04:09,439
این در خود داک طراحی و تمام
105
00:04:09,439 –> 00:04:10,799
موضوعات دیگر
106
00:04:10,799 –> 00:04:12,799
همه اینها فلاش ها همیشه آن را جایگزین می نامند،
107
00:04:12,799 –> 00:04:15,360
بنابراین ممکن است
108
00:04:15,360 –> 00:04:18,639
آنطور که
109
00:04:18,639 –> 00:04:22,000
انتظار می رود خواندن آن سخت نباشد، بنابراین در اینجا می
110
00:04:22,000 –> 00:04:23,680
خواهم از همه افرادی که در این پروژه مشارکت داشته اند تشکر کنم، می
111
00:04:23,680 –> 00:04:24,720
112
00:04:24,720 –> 00:04:28,479
دانم که ممکن
113
00:04:28,479 –> 00:04:30,160
است پایان به نظر برسد اما من فقط برای
114
00:04:30,160 –> 00:04:32,560
115
00:04:33,520 –> 00:04:37,199
شروع، در مرحله بعد اجازه دهید سعی کنم
116
00:04:37,199 –> 00:04:39,360
از طریق برخی از این موارد
117
00:04:39,360 –> 00:04:42,000
برجسته، async io
118
00:04:42,000 –> 00:04:43,360
119
00:04:43,360 –> 00:04:46,000
api را بفروشم.
120
00:04:46,000 –> 00:04:47,040
121
00:04:47,040 –> 00:04:50,080
122
00:04:50,080 –> 00:04:53,759
123
00:04:53,759 –> 00:04:56,320
با async برچسبگذاری شده است
124
00:04:56,320 –> 00:04:58,479
و اکنون به صورت حاشیهنویسی تایپ شده است، بنابراین
125
00:04:58,479 –> 00:05:00,000
برای پروژههای جدید و
126
00:05:00,000 –> 00:05:03,440
پروژههای بزرگتر در سمت راست دوستانهتر
127
00:05:03,440 –> 00:05:06,560
است.
128
00:05:06,560 –> 00:05:07,600
129
00:05:07,600 –> 00:05:11,039
130
00:05:11,039 –> 00:05:13,680
یک موج برای ایجاد یک کانال و
131
00:05:13,680 –> 00:05:14,639
استفاده از وزن
132
00:05:14,639 –> 00:05:17,600
برای صبر کردن تا پایان rpc در
133
00:05:17,600 –> 00:05:18,880
قسمت پایین استفاده
134
00:05:18,880 –> 00:05:21,520
کنید، میتوانید
135
00:05:21,520 –> 00:05:22,479
از طریق
136
00:05:22,479 –> 00:05:24,960
async defined، کنترلکنندههای اصلی ناهمزمان را تعریف کنید و در نهایت
137
00:05:24,960 –> 00:05:27,919
میتوانید سرور را به روش ناهمزمان راهاندازی
138
00:05:27,919 –> 00:05:31,280
کنید، نه تنها jpc python
139
00:05:31,280 –> 00:05:32,720
را به آن وارد کنید. دنیای async io
140
00:05:32,720 –> 00:05:34,960
مشکلات دیگری را نیز حل می کند، به
141
00:05:34,960 –> 00:05:38,160
عنوان مثال، مشکل تخلیه نخ ها، بنابراین
142
00:05:38,160 –> 00:05:39,199
در api فعلی،
143
00:05:39,199 –> 00:05:42,400
اگر می خواهید یک کامیون if بسازید،
144
00:05:42,400 –> 00:05:44,479
می خواهید یک سرور grpc را مقداردهی اولیه
145
00:05:44,479 –> 00:05:45,039
146
00:05:45,039 –> 00:05:46,960
کنید، باید یک مجری کشش نخ ارائه کنید
147
00:05:46,960 –> 00:05:48,479
که
148
00:05:48,479 –> 00:05:50,400
در حال حاضر از شما می خواهد حداکثر کارگر را مشخص کنید،
149
00:05:50,400 –> 00:05:52,160
150
00:05:52,160 –> 00:05:56,319
اما اگر تعداد کارگر محدود
151
00:05:56,319 –> 00:05:58,560
است، ممکن است یک مشکل فرسودگی تهدید وجود داشته باشد
152
00:05:58,560 –> 00:06:01,039
زیرا هر rpc حداقل یک رشته را مصرف می کند
153
00:06:01,039 –> 00:06:02,160
154
00:06:02,160 –> 00:06:04,080
و اگر 10 وام دارید که
155
00:06:04,080 –> 00:06:06,080
rpc استریمینگ را اجرا می کنند یا باید
156
00:06:06,080 –> 00:06:08,560
rpc کاربر را کند کنید، به این معنی که کل
157
00:06:08,560 –> 00:06:10,400
سرور به بن بست می رسد.
158
00:06:10,400 –> 00:06:12,880
159
00:06:13,600 –> 00:06:16,240
خوشبختانه این مشکل
160
00:06:16,240 –> 00:06:17,280
دیگر
161
00:06:17,280 –> 00:06:20,960
با async io api وجود نخواهد داشت و علاوه بر این،
162
00:06:20,960 –> 00:06:23,600
ما در تلاش هستیم تا ورودی اصلی را
163
00:06:23,600 –> 00:06:25,840
برای جریان سمت کلاینت یکسان کنیم.
164
00:06:25,840 –> 00:06:28,240
y سه راه برای فراخوانی برای
165
00:06:28,240 –> 00:06:29,520
فراخوانی یک rpc وجود دارد
166
00:06:29,520 –> 00:06:31,840
که میتوانید مستقیماً آن را فراخوانی کنید. آن را
167
00:06:31,840 –> 00:06:34,319
با یک روش هسته زباله
168
00:06:34,319 –> 00:06:37,840
فراخوانی کنید. آن را با روش آینده فراخوانی کنید.