آموزش برو - راهنمای کامل

Go - The Complete Guide

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: با ساختن چندین پروژه آزمایشی، از جمله، Go ("Golang") را از ابتدا در عمق زیاد بیاموزید. یک REST API Learn Go از پایه و عمیق در مورد مقادیر، متغیرها، توابع، نشانگرها، بسته‌ها و موارد دیگر بیاموزید نحوه ساختاردهی و ذخیره داده‌ها با ساختارها، آرایه‌ها، برش‌ها و نقشه‌ها را بیاموزید با ویژگی‌های همزمانی Go مانند گوروتین‌ها و کانال‌ها کار کنید. ساخت چندین پروژه آزمایشی ساخت REST API با احراز هویت و پایگاه داده SQL به عنوان پروژه درسی اصلی به بیش از 2500000 دانش آموزی بپیوندید که در تمام دوره هایم توسط من آموزش داده شده است. ) اکیداً توصیه می شود، هیچ دانش قبلی در نظر گرفته نمی شود

پتانسیل خود را آزاد کنید - با Go و این دوره!

به "Go - The Complete Guide" خوش آمدید، دوره آنلاین قطعی که هم برای تازه واردان و هم برای افراد حرفه ای که مشتاق به برتری در قلمرو پویای برنامه نویسی Go هستند طراحی شده است.


چرا برو؟

در عصری که کارایی و عملکرد در درجه اول اهمیت قرار دارند، Go به عنوان یک نیروگاه برجسته است. این برنامه که توسط Google طراحی شده است، سادگی، استحکام و سرعت را با هم ترکیب می کند و آن را به زبانی مناسب برای توسعه باطن مدرن، سرویس های ابری و برنامه های کاربردی با کارایی بالا تبدیل می کند.

نمای کلی دوره

این دوره سفر جامع شما در دنیای Go است. از نحو اولیه تا ویژگی‌های پیشرفته، این دوره تمام جنبه‌های مورد نیاز برای تسلط بر Go را پوشش می‌دهد.

آنچه یاد خواهید گرفت در اینجا آمده است:

  1. Go Fundamentals: عمیقاً در دستور Go، متغیرها، انواع و ساختارهای کنترل غوطه ور شوید.

  2. برنامه نویسی همزمان: قدرت مدل همزمانی Go را با گوروتین ها و کانال ها کشف کنید.

  3. ساختارهای داده پیچیده: آرایه‌های اصلی، برش‌ها، نقشه‌ها و انواع ساختار برای دستکاری کارآمد داده‌ها.

  4. ویژگی‌های پیشرفته: رابط‌ها، مدیریت خطا و مدیریت بسته را کاوش کنید.

  5. برنامه های کاربردی دنیای واقعی: برنامه های کاربردی و واقعی بسازید تا یادگیری خود را تثبیت کنید.

  6. تکنیک‌های بهینه‌سازی: بهترین شیوه‌ها و تکنیک‌های بهینه‌سازی برای نوشتن کد Go کارآمد را بیاموزید.

در این دوره آموزشی، با ساختن چندین پروژه نمایشی - از جمله یک REST API کامل با دسترسی به پایگاه داده SQL احراز هویت کاربر، با تمام مفاهیم اصلی Go آشنا خواهید شد!

چه کسی باید ثبت نام کند؟

این دوره برای:

طراحی شده است
  • توسعه دهندگانی که به دنبال افزودن یک زبان قدرتمند به جعبه ابزار خود هستند.

  • مهندسین Backend که مشتاق ساخت برنامه های کاربردی مقیاس پذیر و با کارایی بالا هستند.

  • حرفه‌ایانی که به دنبال درک عمیق و عملی از Go هستند.

چرا این دوره را انتخاب کنید؟

  • دستورالعمل‌های تخصصی: از مربی دوره‌های آنلاین پرفروش برنامه‌نویس Go با تجربه بیاموزید.

  • یادگیری انعطاف پذیر: در هر زمان، هر مکان و با سرعت خود به دوره دسترسی داشته باشید.

  • پروژه‌های نمایشی: دانش خود را با ساختن چندین پروژه آزمایشی به کار ببرید - به عنوان مثال، یک REST API کامل

  • گواهی تکمیل: برای نشان دادن تخصص جدید خود در Go، گواهی کسب کنید.

آماده رفتن هستید؟

سفر خود را برای تسلط بر Go آغاز کنید. اکنون ثبت نام کنید و حرفه خود را با قدرت برنامه نویسی Go تغییر دهید.


سرفصل ها و درس ها

شروع شدن Getting Started

  • به دوره خوش آمدید! Welcome To The Course!

  • Go چیست؟ و چرا عالی است؟ What Is Go? And Why Is It Awesome?

  • نصب Go (جایگزین: راه اندازی مبتنی بر وب) Installing Go (Alternative: Web-based Setup)

  • راه اندازی ویرایشگر کد محلی برای توسعه Go Local Code Editor Setup For Go Development

  • نوشتن برنامه First Go Writing a First Go Program

  • درباره دوره و محتوای دوره About The Course & Course Content

  • چگونه از این دوره بیشترین بهره را ببرید How To Get The Most Out Of This Course

  • به انجمن آموزشی ما بپیوندید Join Our Learning Community

برو به ملزومات Go Essentials

  • معرفی ماژول Module Introduction

  • کار با توابع و ارزش ها Working with Functions & Values

  • سازماندهی کد با بسته ها Organizing Code with Packages

  • اهمیت نام "اصلی" The Important Of The Name "main"

  • آشنایی با ماژول‌های Go و برنامه‌های Building Go Understanding Go Modules & Building Go Programs

  • عملکرد "اصلی" مهم است! The "main" Function Is Important!

  • پیش به سوی یک پروژه جدید Onwards To A New Project

  • کار با متغیرها، ارزش ها و اپراتورها Working with Variables, Values & Operators

  • درک انواع ارزش Understanding Value Types

  • برو انواع و مقادیر تهی Go Types & Null Values

  • خروجی مقادیر Outputting Values

  • تبدیل نوع و تخصیص نوع صریح Type Conversions & Explicit Type Assignment

  • استفاده از سبک های اعلان متغیرهای جایگزین Using Alternative Variable Declaration Styles

  • ایجاد حس ارزشهای ثابت ("ثابت") Making Sense of Constant Values ("Constants")

  • درک اهمیت متغیرها Understanding the Importance Of Variables

  • واکشی ورودی کاربر بهبود یافته است Improved User Input Fetching

  • محدودیت‌های fmt.Scan() fmt.Scan() Limitations

  • تمرین: ساخت ماشین حساب سود Exercise: Building a Profit Calculator

  • راه حل تمرین Exercise Solution

  • قالب بندی رشته ها (متن) - مبانی Formatting Strings (Text) - Basics

  • قالب بندی شناورها در رشته ها Formatting Floats in Strings

  • ایجاد رشته های قالب بندی شده Creating Formatted Strings

  • ساخت رشته های چند خطی Building Multiline Strings

  • درک توابع Understanding Functions

  • توابع: مقادیر بازگشتی و دامنه متغیر Functions: Return Values & Variable Scope

  • نحو ارزش بازگشتی جایگزین An Alternative Return Value Syntax

  • تمرین: کار با توابع Exercise: Working with Functions

  • به بعد به سمت ساختارهای کنترلی Onwards to Control Structures

  • معرفی "اگر" عبارات و Booleans Introducing "if" Statements & Booleans

  • کار با "دیگر اگر" Working with "else if"

  • تمرین: بیانیه های "اگر". Exercise: "if" Statements

  • استفاده از "دیگر" Using "else"

  • عبارات "if" تودرتو و استفاده از "return" برای توقف اجرای تابع Nested "if" Statements & Using "return" To Stop Function Execution

  • تکرار کد با حلقه های "for". Repeating Code With "for" Loops

  • حلقه های بی نهایت، "شکستن" و "ادامه" Infinite Loops, "break" & "continue"

  • شرطی برای حلقه ها Conditional For Loops

  • ایجاد حس بیانیه های "تغییر". Making Sense of "switch" Statements

  • نوشتن در فایل ها Writing To Files

  • خواندن از فایل ها Reading From Files

  • رسیدگی به خطاها Handling Errors

  • زمان وحشت! Time to Panic!

  • بخش تمرین - وظیفه Section Exercise - The Task

  • بخش تمرین - راه حل Section Exercise - Solution

  • خلاصه ماژول Module Summary

کار با پکیج ها Working with Packages

  • معرفی ماژول Module Introduction

  • تقسیم کد در بین فایل ها در یک بسته Splitting Code Across Files In The Same Package

  • چرا از بیش از یک بسته استفاده می کنید؟ Why Would You Use More Than One Package?

  • تهیه کد برای بسته های چندگانه Preparing Code For Multiple Packages

  • تقسیم کد در چندین بسته Splitting Code Across Multiple Packages

  • واردات بسته ها Importing Packages

  • صادرات و وارد کردن شناسه ها (متغیرها، توابع و موارد دیگر) Exporting & Importing Identifiers (Variables, Functions & More)

  • استفاده از بسته های شخص ثالث Using Third-Party Packages

  • خلاصه ماژول Module Summary

درک اشاره گرها Understanding Pointers

  • معرفی ماژول Module Introduction

  • درک اشاره گرها Understanding Pointers

  • نوشتن کد بدون اشاره گر Writing Code Without Pointers

  • ایجاد یک اشاره گر Creating a Pointer

  • اشاره گر به عنوان ارزش Pointers as Values

  • مقدار صفر اشاره گر A Pointer's Null Value

  • استفاده از اشاره گرها و انتقال اشاره گر به توابع Using Pointers & Passing Pointers To Functions

  • استفاده از اشاره گر برای جهش داده ها Using Pointers For Data Mutation

  • مثال: تابع Scan() از اشاره گرها استفاده می کند Example: The Scan() Function Uses Pointers

  • خلاصه ماژول Module Summary

ساختارها و انواع سفارشی Structs & Custom Types

  • معرفی ماژول Module Introduction

  • پروژه شروع The Starting Project

  • سازه ها کدام مسئله را حل می کنند؟ Which Problem Do Structs Solve?

  • تعریف یک نوع ساختار Defining A Struct Type

  • Instantiating Structs & Struct Literal Notation Instantiating Structs & Struct Literal Notation

  • نمادهای متنی ساختار جایگزین و مقادیر پوچ ساختار Alternative Struct Literal Notation & Struct Null Values

  • گذراندن مقادیر ساختار به عنوان آرگومان Passing Struct Values As Arguments

  • سازه ها و اشاره گرها Structs & Pointers

  • معرفی روش ها Introducing Methods

  • روش های جهش Mutation Methods

  • استفاده از توابع ایجاد/سازنده Using Creation / Constructor Functions

  • استفاده از توابع سازنده برای اعتبارسنجی Using Constructor Functions For Validation

  • سازه ها، بسته ها و صادرات Structs, Packages & Exports

  • روش‌های آشکارسازی و نام تابع سازنده متفاوت Exposing Methods & A Different Constructor Function Name

  • Struct Embedding Struct Embedding

  • سازه ها - خلاصه Structs - A Summary

  • ایجاد انواع سفارشی دیگر و افزودن روش ها Creating Other Custom Types & Adding Methods

  • پروژه تمرین: دریافت ورودی کاربر Practice Project: Getting User Input

  • پروژه تمرین: ایجاد یک تابع سازه و سازنده Practice Project: Creating a Struct & Constructor Function

  • پروژه تمرین: افزودن یک روش Practice Project: Adding a Method

  • پروژه تمرین: مدیریت متن ورودی طولانی کاربر Practice Project: Handling Long User Input Text

  • پروژه تمرین: آماده سازی قابلیت ذخیره در فایل Practice Project: Preparing Save To File Functionality

  • پروژه تمرین: رمزگذاری محتوای JSON Practice Project: Encoding JSON Content

  • پروژه تمرین: رفع Practice Project: Fixes

  • درک تگ های ساختاری Understanding Struct Tags

رابط ها و کد عمومی Interfaces & Generic Code

  • معرفی ماژول Module Introduction

  • آماده کردن یک رابط کاربری Preparing An Interface Use-Case

  • تکمیل آماده سازی رابط Finishing Interface Preparations

  • ایجاد اولین رابط Creating a First Interface

  • با استفاده از رابط Using The Interface

  • رابط های تعبیه شده Embedded Interfaces

  • نوع ویژه "هر مقدار مجاز". The Special "Any Value Allowed" Type

  • کار با سوئیچ های نوع Working with Type Switches

  • استخراج اطلاعات نوع از مقادیر Extracting Type Information From Values

  • رابط ها، انواع پویا و محدودیت ها Interfaces, Dynamic Types & Limitations

  • معرفی Generics Introducing Generics

مدیریت داده های مرتبط با آرایه ها، برش ها و نقشه ها Managing Related Data with Arrays, Slices & Maps

  • معرفی ماژول Module Introduction

  • معرفی آرایه ها Introducing Arrays

  • کار با آرایه ها Working with Arrays

  • انتخاب بخش هایی از آرایه ها با برش ها Selecting Parts of Arrays With Slices

  • روش های بیشتر برای انتخاب برش ها More Ways Of Selecting Slices

  • غواصی عمیق تر در برش ها Diving Deeper Into Slices

  • ساخت لیست های پویا با برش ها Building Dynamic Lists With Slices

  • ورزش - مشکل Exercise - Problem

  • تمرین - راه حل Exercise - Solution

  • باز کردن مقادیر فهرست Unpacking List Values

  • معرفی نقشه ها Introducing Maps

  • تغییر نقشه ها Mutating Maps

  • نقشه ها در مقابل سازه ها Maps vs Structs

  • با استفاده از عملکرد ویژه "ساخت". Using The Special "make" Function

  • "ساخت" نقشه ها "make"ing Maps

  • کار با نام مستعار نوع Working with Type Aliases

  • برای حلقه‌ها با آرایه‌ها، برش‌ها و نقشه‌ها For Loops with Arrays, Slices & Maps

توابع: شیرجه عمیق Functions: Deep Dive

  • معرفی ماژول Module Introduction

  • توابع به عنوان مقادیر و انواع تابع Functions as Values & Function Types

  • برگرداندن توابع به عنوان مقادیر Returning Functions As Values

  • معرفی توابع ناشناس Introducing Anonymous Functions

  • درک بسته شدن Understanding Closures

  • ایجاد حس بازگشت Making Sense Of Recursion

  • استفاده از توابع Variadic Using Variadic Functions

  • تقسیم برش ها به مقادیر پارامتر Splitting Slices Into Parameter Values

پروژه تمرین: ماشین حساب قیمت Practice Project: Price Calculator

  • معرفی ماژول Module Introduction

  • ساختن اولین نسخه اولیه برنامه Building a First, Basic Version Of The Program

  • راه اندازی اولین ساختار Setting Up A First Struct

  • اضافه کردن یک تابع سازنده Adding a Constructor Function

  • اضافه کردن یک روش Adding a Method

  • بارگیری داده ها از یک فایل Loading Data From A File

  • کار با داده های فایل Working With The File Data

  • برون سپاری منطق قابل اشتراک گذاری در یک بسته Outsourcing Sharable Logic Into A Package

  • برون سپاری دسترسی به فایل به یک بسته Outsourcing File Access Into A Package

  • ذخیره داده های JSON در فایل ها Storing JSON Data In Files

  • اضافه کردن ساختار FileManager Adding a FileManager Struct

  • افزودن و استفاده از تگ های ساختاری Adding & Using Struct Tags

  • کار بر روی یک ساختار قابل تعویض Working on a Swappable Struct

  • رابط برای نجات Interfaces To The Rescue

  • رسیدگی به خطا Error Handling

  • خلاصه ماژول Module Summary

همزمانی - اجرای وظایف به صورت موازی Concurrency - Running Tasks In Parallel

  • معرفی ماژول Module Introduction

  • معرفی گوروتین ها Introducing Goroutines

  • در حال اجرا به عنوان گوروتین ها عمل می کند Running Functions As Goroutines

  • درک رفتار گوروتین Understanding Goroutine Behavior

  • معرفی و استفاده از کانال ها Introducing & Using Channels

  • کار با چندین کانال و گوروتین Working with Multiple Channels & Goroutines

  • برنامه ها و کانال ها در یک پروژه Goroutines & Channels in a Project

  • راه اندازی یک کانال خطا Setting Up An Error Channel

  • مدیریت کانال ها با بیانیه "انتخاب". Managing Channels with the "select" Statement

  • به تعویق انداختن اجرای کد با "Defer" Deferring Code Execution with "defer"

پروژه دوره: ساخت API REST (شامل احراز هویت و پایگاه داده SQL) Course Project: Build a REST API (incl. Authentication & SQL Database)

  • معرفی ماژول Module Introduction

  • برنامه ریزی API Planning The API

  • نصب فریم ورک جین Installing the Gin Framework

  • راه اندازی اولین مسیر و رسیدگی به اولین درخواست Setting Up A First Route & Handling a First Request

  • راه اندازی یک مدل رویداد Setting Up An Event Model

  • ثبت مسیر POST Registering a POST Route

  • تست درخواست ها و رفع مشکل POST Request Handler Testing Requests & Fixing the POST Request Handler

  • افزودن پایگاه داده SQL Adding a SQL Database

  • ایجاد جدول پایگاه داده SQL Creating A SQL Database Table

  • ذخیره سازی داده ها در پایگاه داده (INSERT) Storing Data in the Database (INSERT)

  • دریافت رویدادها از پایگاه داده (SELECT) Getting Events From Database (SELECT)

  • آماده سازی بیانیه ها در مقابل اجرای مستقیم پرس و جوها (Prepare() در مقابل Exec()/Query()) Preparing Statements vs Directly Executing Queries (Prepare() vs Exec()/Query())

  • دریافت داده های رویداد واحد با شناسه Getting Single Event Data By ID

  • کد Refactoring و مسیرهای برون سپاری Refactoring Code & Outsourcing Routes

  • ثبت مسیر و مدیریت "رویداد به روز رسانی". Registering an "Update Event" Route & Handler

  • به روز رسانی رویدادها Updating Events

  • حذف رویدادها Deleting Events

  • اضافه کردن یک جدول "کاربران" به پایگاه داده SQL Adding a "Users" Table To The SQL Database

  • اضافه کردن ثبت نام کاربر Adding User Signup

  • رمزهای عبور متن ساده را ذخیره نکنید! Don't Store Plain-text Passwords!

  • هش کردن رمزهای عبور Hashing Passwords

  • شروع کار با توکن های تأیید اعتبار (JWT) Getting Started with Auth Tokens (JWT)

  • شروع با مسیر ورود Getting Started with the Login Route

  • اتمام منطق ورود Finishing The Login Logic

  • تولید JWT Generating JWT

  • اتمام منطق JWT Finishing The JWT Logic

  • افزودن تایید رمز Adding Token Verification

  • افزودن Route Protection Adding Route Protection

  • بازیابی و ذخیره شناسه های کاربر و رویداد Retrieving & Storing User and Event IDs

  • افزودن یک میان افزار احراز هویت Adding an Authentication Middleware

  • تقویت و استفاده از میان افزار Enhancing & Using The Middleware

  • اضافه کردن مجوز برای محدود کردن کاربران از ویرایش و حذف Adding Authorization To Restrict Users From Editing & Deleting

  • اضافه کردن جدول ثبت نام Adding a Registrations Table

  • ثبت نام کاربران Registering Users

  • تست و اصلاح مسیر "ثبت نام". Testing & Fixing the "Register" Route

  • لغو ثبت نام ها Cancelling Registrations

  • خلاصه ماژول Module Summary

خلاصه دوره Course Roundup

  • خلاصه دوره Course Roundup

  • سخنرانی پاداش Bonus Lecture

نمایش نظرات

آموزش برو - راهنمای کامل
جزییات دوره
15.5 hours
197
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
3,035
4.8 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Maximilian Schwarzmüller Maximilian Schwarzmüller

دارای گواهینامه AWS، توسعه دهنده وب و مدرس حرفه ای