Go
Простой и быстрый язык для облака и серверов
Изучи Go с нуля: от первой программы и базовых типов до функций, срезов, map, структур и интерфейсов. Затем ты научишься обрабатывать ошибки как значения и писать конкурентные программы с горутинами и каналами. В конце курса ты создашь небольшой REST API сервис с модулями, тестами и стандартной библиотекой.
Содержание курса
Основы Go
НачальныйУстанови Go, запусти первую программу и познакомься с переменными, типами, условиями и циклами.
- 1Что такое Go? Первая программаУзнай, зачем создали Go и где он применяется, установи его и запусти первую программу с помощью `go run`.12 мин
- 2Переменные, типы и константыОбъявляй переменные через `var` и `:=`, изучи основные типы, нулевые значения, преобразования типов, строки и константы с `iota`.14 мин
- 3Условия, циклы и switchПринимай решения с помощью `if` и инструкции инициализации, изучи все формы `for` — единственного цикла Go — и `switch` без `break`.14 мин
Функции и коллекции
НачальныйПиши функции с несколькими результатами, замыкания и defer, работай с массивами, срезами и map.
- 4Функции, замыкания и deferПиши функции с несколькими и именованными результатами и переменным числом аргументов, изучи замыкания и `defer`, откладывающий действие до конца функции.15 мин
- 5Массивы, срезы и mapИзучи массивы фиксированного размера, срезы, растущие через `append`, их скрытые ловушки и map для хранения пар «ключ–значение».18 мин
Типы, интерфейсы и ошибки
СреднийСоздавай собственные типы — структуры, методы, указатели, интерфейсы и дженерики — и обрабатывай ошибки в стиле Go.
- 6Структуры, методы и указателиСоздавай свои типы с помощью структур, пойми, зачем нужны указатели, пиши методы с получателями-значениями и указателями, используй композицию.16 мин
- 7Интерфейсы и дженерикиРаботай с неявно реализуемыми интерфейсами, `any`, утверждениями типа и type switch, пиши обобщённые функции и типы.18 мин
- 8Обработка ошибокПойми, почему в Go ошибки — обычные значения, и научись работать с `errors.New`, `fmt.Errorf` и `%w`, `errors.Is` и `errors.As`, а также с `panic` и `recover`.16 мин
Конкурентность и реальный проект
ПродвинутыйИспользуй горутины, каналы и мьютексы, а затем собери полноценный проект с модулями, тестами и REST API.
- 9Горутины, каналы и syncВыполняй работу конкурентно с помощью горутин, передавай данные через каналы и `select`, синхронизируй через `WaitGroup` и `Mutex` и построй пул воркеров.22 мин
- 10Модули, тесты и проект REST APIСоздавай модули и пакеты, познакомься со стандартной библиотекой, пиши табличные тесты и собери небольшой REST API для задач на `net/http`.25 мин