لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش چگونه یک مشتری HTTP سازنده در Golang (Go) ایجاد کنیم
How to develop a productive HTTP client in Golang (Go)
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
انتخاب بین کلاینتهای HTTP کارآمد و قابل آزمایش را متوقف کنید. ما در حال ساختن یکی از ابتدا هستیم! پارادایم های پشت زبان برنامه نویسی Go را درک کنید. کلاینت HTTP چیست. نحوه انجام تماس های HTTP در Go. هنگام کار با کلاینت HTTP بومی مشکلات و بلوک می شود. چگونه با استفاده از ماژول ها یک کتابخانه Go را از ابتدا طراحی کنیم. نحوه طراحی یک API عمومی: رابط ها و روش ها. نحوه ارائه ویژگی های تمسخر آمیز خارج از جعبه. واحد، یکپارچه سازی و تست عملکردی مشتری HTTP ما. مهمتر از همه: به یک کلاینت HTTP آماده برای تولید برسید که میتوانید بدون نگرانی در مورد عملکرد از آن استفاده کنید! پیش نیازها: فقط کافی است تور Go را که در وب سایت Golang موجود است کامل کنید.
آیا تا به حال یک REST API از برنامه Go خود فراخوانی کرده اید؟ آیا کلاینت HTTP خود را پیاده سازی کردید یا در نهایت از هزاران کتابخانه موجود در آنجا استفاده کردید؟ آیا می دانید مشتری HTTP شما در پس زمینه چه کاری انجام می دهد؟
در این دوره ما از صفر شروع می کنیم! با کندوکاو در اشیاء پاسخ درخواست، به یاد می آوریم که یک تماس HTTP اولیه چگونه به نظر می رسد. ما یک کلاینت اصلی HTTP برای انجام درخواست های HTTP می نویسیم و سپس از آن در برنامه های کاربردی استفاده می کنیم. چه مسائلی داریم؟ آیا میتوانیم با پیروی از این رویکرد، برنامههای خود را مقیاسبندی کنیم؟ البته که نه! به همین دلیل است که ما یک کتابخانه سرویس گیرنده HTTP ایجاد می کنیم که:
را ارائه می دهد
اتصالات HTTP سریع، قابل اعتماد و بدون اصطکاک.
پشتیبانی از همه روشهای HTTP: GET، POST، PUT، DELETE، PATCH و موارد دیگر!
یک سرویس گیرنده HTTP ایمن همزمان که می توانید بدون نگرانی در مورد عملکرد از آن استفاده کنید.
مدیریت و بهینه سازی نوع محتوا.
ویژگی های تمسخر آمیز خارج از جعبه.
یک رابط تمیز در صورتی که میخواهید کد خود را بدون تکیه بر ویژگیهای آزمایش یکپارچهسازی واحد آزمایش کنید.
یک پیاده سازی قوی، بنابراین به هیچ گونه وابستگی خارجی نیاز نخواهید داشت.
رابط کاملاً قابل تنظیم: مهلت زمانی، لایه انتقال، مشتری HTTP سفارشی و بسیاری از ویژگیهای مفید.
کتابخانه ای که برای تولید آماده است!
اگر به دنبال ادغام APIهای REST شخص ثالث در کد خود هستید، باید یک تماس HTTP با آن انجام دهید. حتماً قبل از در نظر گرفتن جایگزین هایی که شما را مجبور به استفاده از وابستگی های مختلف برای اجرا، آزمایش و گسترش کد خود می کند، به این دوره نگاهی بیندازید! همانطور که رابرت پایک می گوید: "کپی کردن کوچک بسیار بهتر از کمی وابستگی است". در این دوره ما نه تنها از شر وابستگی ها خلاص می شویم، بلکه از شر کپی برداری نیز خلاص می شویم. ما از چیزی بیشتر از کتابخانه استاندارد Go برای طراحی توسعه کلاینت HTTP خود استفاده نمی کنیم.
این کلاینت پایه همه برنامههایی است که بعداً میسازیم، و مقیاس کسبوکار ما را افزایش میدهد و تا آنجا که میتوانیم رشد میکند.
برای داشتن ایده در مورد ساختار و محتوای دوره، به دروس پیش نمایشی که در دسترس دارید نگاهی بیندازید. می دانم که از آن لذت خواهید برد! اگر شک دارید، به دوره های دیگر من نگاهی بیندازید و ببینید دانش آموزان من چه می گویند!
تو را در طرف دیگر می بینم!
سرفصل ها و درس ها
معرفی
Introduction
معرفی
Introduction
خوش آمدی!
Welcome!
دلیل این دوره
The reason for this course
چیزی که قراره بسازیم
What we're going to build
معرفی
Introduction
معرفی
Introduction
خوش آمدی!
Welcome!
دلیل این دوره
The reason for this course
چیزی که قراره بسازیم
What we're going to build
تماس های HTTP
HTTP calls
یک تماس HTTP چگونه به نظر می رسد
How an HTTP call looks like
اتصالات و وقفه های زمانی
Connections and timeouts
پیاده سازی HTTP GET پایه
Implementing a basic HTTP GET
مشکلات پیش فرض
Default problems
دلیل ایجاد کتابخانه جدید
The reason for a new library
تماس های HTTP
HTTP calls
یک تماس HTTP چگونه به نظر می رسد
How an HTTP call looks like
اتصالات و وقفه های زمانی
Connections and timeouts
پیاده سازی HTTP GET پایه
Implementing a basic HTTP GET
مشکلات پیش فرض
Default problems
دلیل ایجاد کتابخانه جدید
The reason for a new library
کار روی هسته
Working on the core
مقدمه ای بر ماژول های Go
Introduction to Go modules
اصول Go: ساختارها، توابع، رابط ها و روش ها.
Go basics: Structs, functions, interfaces and methods.
افزودن رفتار اساسی
Adding basic behavior
تعریف هدرهای سفارشی و رایج
Defining custom & common headers
برخورد با سازمان درخواست
Dealing with the request body
تست، تست و تست!
Testing, testing and testing!
مراقب پوشش کد باشید
Be careful with code coverage
برخورد با تایم اوت ها
Dealing with timeouts
اجازه سفارشی سازی مهلت زمانی را بدهد
Allow timeout customization
غیرفعال کردن مهلت زمانی مجاز باشد
Allow timeout disabling
الگوی سازنده اعمال شد
Builder pattern applied
Refactoring پیاده سازی سازنده ما
Refactoring our builder implementation
ایمن کردن مشتری همزمان
Making the client concurrent-safe
با استفاده از پیاده سازی پاسخ سفارشی ما
Using our custom response implementation
کار روی هسته
Working on the core
مقدمه ای بر ماژول های Go
Introduction to Go modules
اصول Go: ساختارها، توابع، رابط ها و روش ها.
Go basics: Structs, functions, interfaces and methods.
افزودن رفتار اساسی
Adding basic behavior
تعریف هدرهای سفارشی و رایج
Defining custom & common headers
برخورد با سازمان درخواست
Dealing with the request body
تست، تست و تست!
Testing, testing and testing!
مراقب پوشش کد باشید
Be careful with code coverage
برخورد با تایم اوت ها
Dealing with timeouts
اجازه سفارشی سازی مهلت زمانی را بدهد
Allow timeout customization
غیرفعال کردن مهلت زمانی مجاز باشد
Allow timeout disabling
الگوی سازنده اعمال شد
Builder pattern applied
Refactoring پیاده سازی سازنده ما
Refactoring our builder implementation
ایمن کردن مشتری همزمان
Making the client concurrent-safe
با استفاده از پیاده سازی پاسخ سفارشی ما
Using our custom response implementation
ویژگی های تست و تمسخر
Testing & Mocking features
ایجاد نمونه های ما
Creating our examples
آیا باید ویژگی های تمسخر آمیز ارائه دهیم؟
Should we provide mocking features?
تعریف ساختار Mock
Defining the Mock struct
افزودن سرور ساختگی
Adding the mock server
پاسخ از سرور ساختگی
Responding from the mock server
اضافه کردن یک ماک پیش فرض
Adding a default mock
چگونه هر ماک فعالی را پاک کنیم
How to flush every active mock
بهبود بدنه و کلیدهای ساختگی
Improving mock body and keys
ویژگی های تست و تمسخر
Testing & Mocking features
ایجاد نمونه های ما
Creating our examples
آیا باید ویژگی های تمسخر آمیز ارائه دهیم؟
Should we provide mocking features?
تعریف ساختار Mock
Defining the Mock struct
افزودن سرور ساختگی
Adding the mock server
پاسخ از سرور ساختگی
Responding from the mock server
اضافه کردن یک ماک پیش فرض
Adding a default mock
چگونه هر ماک فعالی را پاک کنیم
How to flush every active mock
بهبود بدنه و کلیدهای ساختگی
Improving mock body and keys
انتشار و استفاده از کتابخانه ما
Publishing & using our library
نحوه انتشار ماژول Go
How to publish a Go module
نحوه استفاده از ماژول Go
How to use our Go module
به راحتی تماس های API را با کتابخانه خود آزمایش کنید
Easily testing API calls with our library
انتشار و استفاده از کتابخانه ما
Publishing & using our library
نحوه انتشار ماژول Go
How to publish a Go module
نحوه استفاده از ماژول Go
How to use our Go module
به راحتی تماس های API را با کتابخانه خود آزمایش کنید
Easily testing API calls with our library
تنظیم کتابخانه ما
Tuning our library
اجازه دادن به مشتری HTTP سفارشی
Allowing custom HTTP client
رابط عمومی ما را تمیز کنید
Clean our public interface
افزودن اسناد به کد ما
Adding documentation to our code
افزودن نمونه های بیشتر
Adding more examples
اجازه تعریف عامل کاربر
Allow user agent definition
تعریف ثابت های مشترک
Defining common constants
انتشار اولین نسخه پایدار!
Releasing the first stable version!
تمیز کردن رابط تمسخر آمیز ما
Cleaning our mocking interface
تغییر نحوه تمسخر درخواست ها
Changing how we mock requests
در حال تمیز کردن سرور ساختگی ما
Cleaning our mock server
تنظیم کتابخانه ما
Tuning our library
اجازه دادن به مشتری HTTP سفارشی
Allowing custom HTTP client
رابط عمومی ما را تمیز کنید
Clean our public interface
افزودن اسناد به کد ما
Adding documentation to our code
افزودن نمونه های بیشتر
Adding more examples
اجازه تعریف عامل کاربر
Allow user agent definition
تعریف ثابت های مشترک
Defining common constants
انتشار اولین نسخه پایدار!
Releasing the first stable version!
تمیز کردن رابط تمسخر آمیز ما
Cleaning our mocking interface
تغییر نحوه تمسخر درخواست ها
Changing how we mock requests
در حال تمیز کردن سرور ساختگی ما
Cleaning our mock server
نمایش نظرات