آموزش چگونه یک مشتری 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

فصل پایانی Final chapter

  • کاری که ما انجام داده ایم What we have done

فصل پایانی Final chapter

  • کاری که ما انجام داده ایم What we have done

نمایش نظرات

نظری ارسال نشده است.

آموزش چگونه یک مشتری HTTP سازنده در Golang (Go) ایجاد کنیم
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
9.5 hours
45
Udemy (یودمی) udemy-small
14 مهر 1399 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
1,713
4.6 از 5
ندارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Federico León Federico León

رهبر فنی

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.