Начальный
Go
Изучите Go от начала до конца. Начните с пакетов, переменных и управления потоком выполнения, затем углубитесь в структуры, интерфейсы, конкурентность, тестирование, HTTP-серверы, базы данных, дженерики, профилирование и публикацию готовых бинарных файлов в продакшен.
20 уроков12.3h практика11 языков
Начни учиться бесплатноGo курс20 уроков по порядку
- 125 мин
Привет, Go
Package mainImportFunc mainFmt.PrintlnGo run - 225 мин
Переменные и типы
Var declarationShort declaration :=IntFloat64StringBool+2 - 330 мин
Управление потоком: if и for
IfElse ifElseFor loopFor as whileInfinite for+2 - 430 мин
Функции
Func keywordParametersReturn valuesMultiple return valuesNamed return valuesBlank identifier - 535 мин
Срезы и карты
Slice literalAppendLenIndexingRangeMap literal+2 - 640 мин
Мини-проект на основе CLI
Os.ArgsStrconv.AtoiError handling with if err != nilOs.ExitGo buildPutting it together - 735 мин
Структуры и указатели
Struct definitionField accessZero values for structsPointer types& and * operatorsPointer receivers vs value receivers+1 - 835 мин
Методы и интерфейсы
Method declarationReceiver typesPointer vs value receiversInterface definitionImplicit interface satisfactionSmall interfaces+1 - 935 мин
Обработка ошибок
Error interfaceFmt.Errorf with %wErrors.IsErrors.AsCustom error typesPanic vs error+1 - 1040 мин
Горутины и каналы
The go keywordGoroutine lifetimeUnbuffered channelsBuffered channelsSend and receiveRange over channel+1 - 1145 мин
Паттерны параллелизма
Select statementContext.Context for cancellationSync.WaitGroupSync.MutexWorker pool patternFan-out fan-in idea - 1240 мин
Обзор стандартной библиотеки
FmtStringsStrconvTimeOsBufio+1 - 1340 мин
Тестирование и бенчмарки
Go testTesting.TTable-driven testsT.Run subtestsTesting.B benchmarks_test.go file naming+1 - 1435 мин
Модули и структура проекта
Go mod initGo.mod and go.sumImport pathsPackage vs moduleInternal/ folderCmd/ layout+1 - 1545 мин
HTTP-серверы
Net/httpHttp.HandleFuncHttp.ServerJSON responsesRequest routingMiddleware via http.Handler wrapping+1 - 1645 мин
Базы данных с database/sql
Database/sql packageDriver importsSql.Open and sql.DB poolExec vs Query vs QueryRowPrepared statementsScanning rows+1 - 1735 мин
Обобщённые типы
Type parameters with [T any]ConstraintsComparableTilde approximation ~intGeneric Map and FilterWhen generics help, when they do not - 1840 мин
Производительность и профилирование
Go test -benchPprof CPU and heap profilesEscape analysis with -gcflags=-mAvoiding unnecessary allocationsPreallocating slicesSync.Pool intuition - 1940 мин
Паттерны проектирования в Go
Functional options patternRepository patternDependency injection via interfacesContext propagation through call stacksConstructor functions - 2045 мин
Развёртывание и эксплуатация
CGO_ENABLED=0 static binariesCross-compile with GOOS and GOARCHGraceful shutdown with http.Server and signal.NotifyContextMinimal Dockerfile with scratch or distrolessReading config from environment variables
Изучай Go на своём языке
Каждый урок, тест и ответ наставника показывается на вашем языке. AI-наставник отвечает на том языке, на котором вы пишете.
