لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش ساخت ماژول در Go (Golang)
Building a module in Go (Golang)
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:
آموزش ساخت یک ماژول قابل استفاده مجدد و به خوبی آزمایش شده در Go چگونه یک ماژول Go agnostic و قابل استفاده مجدد بسازیم چگونه ماژول خود را با دیگر توسعه دهندگان Go به اشتراک بگذارید چگونه برای ماژول خود تست بنویسید چگونه چندین نسخه از ماژول خود را مدیریت کنید استفاده از ویژگی جدید Go 1.18، فضاهای کاری پیش نیازها: تجربه کمی با زبان برنامه نویسی Go الزامی است.
کار با برنامههای وب در Go بسیار آسان است، اما زمان زیادی طول نمیکشد تا متوجه شویم که در بسیاری از موارد، هر بار که پروژه جدیدی را شروع میکنیم، در نهایت همان کد را مینویسیم. ممکن است لازم باشد JSON را بخوانید، JSON بنویسید، فایلها را آپلود کنید، یا هر یک از ویژگیهای معمول مورد استفاده یک برنامه وب خاص. به عبارت دیگر، ما اغلب کدهایی را که قبلاً نوشته ایم، چندین بار بازنویسی می کنیم.
به جای کپی و چسباندن کد از پروژه ای به پروژه دیگر، منطقی است که از ماژول های Go استفاده کنید -- کد قابل استفاده مجدد که می تواند با صدور فرمان "go get" در پروژه گنجانده شود. به این ترتیب، اگر عملکرد جدیدی به آن ماژول اضافه شود، هر پروژه ای که آن را وارد می کند، می تواند صرفاً با به روز رسانی وابستگی های آن، از آن قابلیت استفاده کند و اگر اشکالی کشف شد، می توانید با به روز رسانی ماژول آن را برطرف کنید. هر پروژه ای که از آن ماژول استفاده می کند با یک دستور "go get -u" رفع اشکال می کند.
ساخت یک ماژول قوی، ایمن و آزمایش شده دشوار نیست، اما نیاز به برنامه ریزی دقیق دارد تا اطمینان حاصل شود که در سیستم عامل های مختلف کار می کند.
این دوره شما را طی مراحل لازم برای تولید یک ماژول که شامل بسیاری از کارهایی است که معمولاً در برنامه های کاربردی وب استفاده می شود، از جمله:
خواندن JSON
نوشتن JSON
تولید پیام های خطا با قالب بندی خوب و آموزنده
آپلود کردن یک یا چند فایل در سرور، و محدود کردن آپلود بر اساس نوع mime و اندازه فایل
ایجاد دایرکتوری ها در سرور
ایجاد رشته های تصادفی
دانلود فایل های ثابت
پست کردن JSON به یک سرویس راه دور
ایجاد یک URL امن از یک رشته
ما ماژول خود را با استفاده از ابزارهای جدید فضای کاری Go 1.18 می سازیم و مطمئن می شویم که کل ماژول به خوبی آزمایش شده است.
ماژول نهایی ما هیچ گونه وابستگی خارجی ندارد و فقط از عملکرد موجود در کتابخانه استاندارد Go استفاده می کند.
تا زمانی که این دوره را به پایان رساندید، یک ماژول Go خواهید داشت که راه اندازی یک برنامه وب جدید را بسیار سریعتر می کند و برای انجام این کار به کد شخص دیگری وابسته نخواهید بود.
سرفصل ها و درس ها
معرفی
Introduction
معرفی
Introduction
درمورد من
About me
نحوه درخواست کمک
How to ask for help
راه اندازی پروژه
Project Setup
در حال نصب Go
Installing Go
نصب IDE
Installing an IDE
راه اندازی Go Workspace ما
Setting up our Go Workspace
شروع کار با ماژول
Getting Started with the Module
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
ایجاد یک رشته تصادفی
Generating a random string
ماژول جدید خود را در یک برنامه ساده Go امتحان می کنیم
Trying out our new module in a simple Go application
نوشتن یک تست برای تابع RandomString
Writing a test for our RandomString function
ماژول خود را به GitHub منتقل می کنیم
Pushing our module up to GitHub
آپلود یک یا چند فایل
Uploading one or More Files
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
شروع با روش UploadFiles
Getting started with the UploadFiles method
افزودن یک پروژه به فضای کاری ما برای آزمایش آپلود فایل ها
Adding a project to our workspace to test uploading files
در حال آزمایش عملکرد آپلود جدید ما
Trying out our new upload functionality
اضافه کردن یک روش راحت، UploadOneFile
Adding a convenience method, UploadOneFile
نوشتن یک تست برای روش UploadFiles در ماژول ما
Writing a test for the UploadFiles method in our module
نوشتن تست برای UploadOneFile
Writing a test for UploadOneFile
فشار دادن تغییرات ما به GitHub
Pushing our changes to GitHub
ایجاد دایرکتوری ها در صورت عدم وجود
Creating Directories if they do not exist
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
نوشتن متد CreateDirIfNotExists
Writing the CreateDirIfNotExists method
در حال امتحان کردن روش جدید ما
Trying out our new method
نوشتن تست برای CreateDirIfNotExists
Writing a test for CreateDirIfNotExists
به روز رسانی روش UploadFiles برای استفاده از روش جدید ما
Updating the UploadFiles method to take advantage of our new method
در حال بهروزرسانی readme و اعمال تغییرات در GitHUB
Updating our readme and pushing changes to GitHUB
تولید راب
Generating Slugs
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
نوشتن متد Slugify برای ماژول ما
Writing the Slugify method for our module
اضافه کردن یک پروژه app-slug به فضای کاری Go ما و امتحان کردن چیزها
Adding an app-slug project to our Go workspace and trying things out
تست های ما را به روز کنید
Update our tests
فشار دادن تغییرات ما به GitHub
Pushing our changes to GitHub
دانلود یک فایل استاتیک
Downloading a Static File
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
نوشتن تابع DownloadStaticFile
Writing the DownloadStaticFile function
امتحان کردن چیزها
Trying things out
نوشتن تست برای DownloadStaticFile
Writing a test for DownloadStaticFile
فشار دادن تغییرات ما به GitHub
Pushing our changes to GitHub
کار با JSON
Working with JSON
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
خواندن JSON
Reading JSON
بهبود پیام های خطا در ReadJSON
Improving error messages in ReadJSON
نوشتن تست برای ReadJSON
Writing a test for ReadJSON
اضافه کردن موارد اضافی به تست جدول ما برای ReadJSON
Adding additional cases to our table test for ReadJSON
نوشتن JSON
Writing JSON
نوشتن تست برای WriteJSON
Writing a test for WriteJSON
ایجاد تابع ErrorJSON
Creating the ErrorJSON function
نوشتن تست برای ErrorJSON
Writing a test for ErrorJSON
فشار دادن JSON به یک سرویس راه دور
Pushing JSON to a remote service
نوشتن تست برای PushJSONToRemote
Writing a test for PushJSONToRemote
راه اندازی برنامه وب ساده ما و افزودن مقداری HTML
Setting up our simple web app and adding some HTML
شروع کار با برنامه وب
Getting started with the web app
مدیریت یک پست JSON ساده
Handling a simple JSON Post
مدیریت هل دادن به یک سرویس از راه دور
Handling pushing to a remote service
برچسب گذاری نسخه و نسخه معنایی
Tagging a release & Semantic Versioning
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
نسخه سازی معنایی چیست؟
What is semantic versioning?
برچسب زدن نسخه 1.0.0 ماژول ما
Tagging version 1.0.0 of our module
به روز رسانی نسخه به 2.0.0
Updating the version to 2.0.0
ماژول ما را امتحان می کنیم
Trying our module out
آنچه در این بخش به آن خواهیم پرداخت
What we'll cover in this section
ایجاد یک API ساده (ساختگی).
Creating a simple (dummy) API
وارد کردن ماژول جعبه ابزار ما به پروژه و امتحان یک نقطه پایانی
Importing our toolkit module to the project and trying one endpoint
در حال امتحان کردن کنترل کننده ورود
Trying out the login handler
نمایش نظرات