О курсе
Go, или Golang, — быстрый и эффективный язык программирования, созданный для разработки масштабируемого программного обеспечения. Он широко используется в облачной инфраструктуре, веб-разработке и операционных системах. Благодаря растущему распространению Go, изучение Go позволит вам создавать надежные и высокопроизводительные решения для современных приложений.
Чему вы научитесь?
- Обслуживайте веб-страницы с помощью net/http и маршрутизируйте запросы с помощью http.HandleFunc.
- Безопасно визуализируйте HTML с помощью html/template, передавайте структуры в шаблоны и выводите динамические значения.
- Собирайте и проверяйте входные данные формы с помощью r.FormValue(...).
- Создайте небольшую интерактивную страницу (редактор бегущей строки), которая обновляет такие атрибуты, как scrollamount, scrolldelay, bgcolor, direction и loop.
- Используйте strings.EqualFold и switch для обработки параметров, нечувствительных к регистру (например, направления).
- Организуйте небольшой веб-проект на Go (модули, расположение файлов) и запустите его локально на :8080.
- Добавьте легкую стилизацию CSS и поймите, какое место статические ресурсы занимают в проекте Go.
Содержимое курса
Урок 1
В этом первом уроке курса Golang мы познакомимся с языком программирования Go, также известным как Golang. Вы узнаете о переменных и о том, как они используются для хранения информации в памяти, а также о типах данных, определяющих, какие значения могут содержать эти переменные. Go обеспечивает строгую типизацию и поддерживает такие типы данных, как целые числа, числа с плавающей точкой, строки, логические значения и другие. Мы рассмотрим, как объявлять переменные с помощью ключевого слова var, сокращённые объявления и концепцию нулевых значений по умолчанию в Go. Вы также узнаете, чем константы отличаются от переменных, и как Go обеспечивает типобезопасность для предотвращения ошибок. К концу этого урока вы будете иметь чёткое представление о представлении данных в Go и о том, как эффективно ими управлять, закладывая основу для создания реальных приложений на этом современном языке программирования.
-
Введение, типы данных и переменные
34:53 -
Тест 1
Урок 2
В этом уроке мы подробнее рассмотрим, как Go организует и запускает код. Начнём с концепции пакетов. В Go каждая программа принадлежит пакету, и Пакет — это то, где начинается выполнение. Вы узнаете, как пакеты помогают структурировать код, способствуют повторному использованию и поддерживают организованность проектов. Далее мы рассмотрим импорт. Go позволяет подключать стандартные библиотеки, такие как для печати или для работы с операционной системой. Вы также увидите разницу между импортом одной библиотеки и импортом нескольких библиотек с помощью скобок. Наконец, мы попрактикуемся в базовых операциях Go, включая математические операции, обработку строк и булеву логику. Вы увидите, как Go обеспечивает типобезопасность и как ведут себя такие операторы, как +, -, *, / и %. К концу этого урока вы поймёте, как структурированы проекты Go, как импортировать и использовать библиотеки, а также как выполнять распространённые операции, необходимые каждой программе Go.
-
Упаковка, импорт и эксплуатация
25:51 -
Тест 2
Урок 3
В этом уроке мы подробно рассмотрим операторы управления потоком выполнения в Go. Поток выполнения позволяет принимать решения, выполнять переходы и циклически перебирать код. В отличие от некоторых других языков, в Go управляющие структуры просты и понятны — без скобок вокруг условий, всегда с фигурными скобками.
-
Элементы управления в Go
44:57 -
Тест 3
Урок 4
В этом уроке мы рассмотрим функции, один из основных строительных блоков программ на Go. Функции позволяют группировать повторно используемые блоки кода, делая ваши приложения более модульными, поддерживаемыми и понятными. Вы научитесь: определять и вызывать функции с помощью ключевого слова func; работать с параметрами и возвращаемыми значениями, включая несколько возвращаемых значений; понимать разницу между значением и ссылкой при передаче аргументов; использовать именованные возвращаемые значения для более чистого кода; писать вариативные функции, принимающие переменное количество аргументов; организовывать код в повторно используемые пакеты, помещая связанные функции вместе. Освоив функции, вы сможете писать эффективные и масштабируемые программы на Go, избегая при этом повторения кода. Этот урок закладывает основу для более продвинутых тем Go, таких как методы, интерфейсы и параллелизм.
-
Функции в Go
26:06 -
Тест 4
Урок 5
Создайте готовый к использованию REST API на Go, используя GORM в качестве ORM и SQLite3 в качестве встроенной базы данных. Вы создадите чистый проект, подключите подключение к базе данных и смоделируете реальные сущности с помощью структурных тегов GORM для столбцов, первичных ключей, временных меток и связей. Благодаря маршрутизации и обработке JSON вы реализуете полноценные конечные точки CRUD, будете возвращать корректные коды состояния HTTP и добавите корректную обработку ошибок. Помимо основ, вы изучите практические шаблоны API, используемые в микросервисах: конфигурация на основе среды, конечные точки работоспособности и готовности, версионные маршруты, пагинация и фильтрация с помощью параметров запроса, проверка входных данных и контекстно-зависимые тайм-ауты. На уровне данных вы рассмотрите автоматическую миграцию, транзакции, построение запросов, жадную загрузку и заполнение. В уроке также будут затронуты CORS и промежуточное ПО для журналирования, тестирование конечных точек с помощью curl или Postman, а также организация кода для удобства поддержки. В результате у вас будет небольшой, но полноценный сервис Go, который сохраняет данные с помощью SQLite, предоставляет конечные точки JSON и следует надежным практикам проектирования API, готовый к расширению в более крупный микросервис или развертыванию в качестве облегченного бэкэнда.
-
Go Networking & API, SQL
41:16 -
Тест 5
Урок 6
Изучите основные коллекции Go и работу с текстом, которые вы будете использовать ежедневно. В этом сеансе вы узнаете, когда следует выбирать массивы фиксированного размера, как эффективно работать со строками (включая Unicode) и как моделировать данные «ключ-значение» с помощью карт. Что вы получите: Массивы: что такое [N]T фиксированной длины, семантика значений (копирование при присваивании), нулевые значения, литералы, индексирование, итерация с for/range, когда подходят массивы и как срезы соотносятся с массивами для динамического изменения размера. Строки: неизменяемые данные UTF-8, почему len считает байты (а не символы), итерация по байтам и рунам, преобразование между строками, []byte и []rune, а также самые полезные вспомогательные функции из пакетов strings и unicode/utf8. Карты: создание с помощью make и литералов, поведение при нулевых значениях (nil map), вставки/чтения/удаления, проверка существования «comma ok», особенности порядка итераций, допустимые типы ключей и поведение карт при передаче в функции. Подсказки и рекомендации: предотвращение непреднамеренного копирования больших массивов, безопасная обработка текста, отличного от ASCII, инициализация вложенных структур карт/срезов, защита карт для параллельного доступа и выбор между картами и срезами структур для поиска и сканирования. К концу курса вы будете уверенно хранить, запрашивать и преобразовывать данные с помощью массивов, строк и карт Go, а также будете знать подводные камни, которых следует избегать по мере роста ваших программ.
-
Массивы и строки Go и карта
46:47 -
Тест 6
Урок 7
Сегодняшний урок посвящен более глубокому изучению системы типов Go и ее мощных средств организации и анализа данных. Мы рассмотрим пользовательские типы данных с помощью структур, изучим встроенные структуры для повторного использования и композиции кода, познакомимся с интерфейсами как способом определения поведения и, наконец, рассмотрим рефлексию (пакет Reflect) для анализа типов и значений во время выполнения. К концу этого урока вы научитесь разрабатывать более гибкие, повторно используемые и интроспективные программы на Go.
-
Struct & Embedded Struct & Interface & Reflect
34:40 -
Тест 7
Урок 8
Изучите модель обработки ошибок Go и инструменты управления потоком управления, обеспечивающие надежность программ. Мы рассмотрим создание и возврат ошибок с помощью error.New и fmt.Errorf, обёртывание и проверку ошибок с помощью error.Is/errors.As, а также разработку собственных типов ошибок. Вы увидите, где defer эффективен для гарантированной очистки (файлы, блокировки, транзакции), как отложенные вызовы выполняются в порядке LIFO, и распространённые ошибки (захваченные переменные цикла, использование defer в горячих путях). Мы разберёмся, когда уместна паника (действительно неисправимые программные или инвариантные нарушения) вместо возврата ошибки, и как безопасно восстановить управление с помощью restore внутри отложенной функции, не злоупотребляя ею для нормального выполнения. К концу вы научитесь структурировать функции, которые предоставляют расширенный контекст, надёжно очищаются и быстро завершают работу с ошибками, когда это необходимо.
-
Ошибки Восстановление, Отсрочка, Паника
18:11 -
Тест 8
Урок 9
Узнайте, как Go делает параллельные программы простыми и безопасными. Вы научитесь запускать лёгкие задачи с помощью горутин, подключать их с помощью каналов и координировать работу без сложных обратных вызовов. Кроме того, вы научитесь правильно обрабатывать отмены, тайм-ауты и общие данные, чтобы избежать состояний гонки и утечек.
-
Параллелизм в Go — горутины, каналы и координация
26:49 -
Тест 9
Урок 10
Изучите практический файловый ввод-вывод и минимальный HTTP-стек в Go. Создавайте, читайте, записывайте, добавляйте и удаляйте файлы с помощью os, io и bufio; управляйте разрешениями, путями и каталогами; используйте defer для безопасного закрытия дескрипторов. Передавайте большие файлы потоком, не загружая их полностью в память, и сериализуйте данные в/из JSON или CSV. Создайте небольшой веб-сервер с помощью net/http, зарегистрируйте обработчики и маршруты, обслуживайте статические ресурсы с помощью http.FileServer и реализуйте загрузку/выгрузку файлов через multipart/form-data. Добавьте журналирование запросов и базовое промежуточное ПО, установите разумные тайм-ауты и корректно завершайте работу с учетом контекста. В заключение — советы по безопасности и надежности: очистка путей, ограничение размера загружаемых файлов, проверка на наличие ошибок и защита от обхода каталогов.
-
Файловый ввод-вывод и HTTP-сервер
14:36 -
Тест 10
Урок 11
Узнайте, когда и как использовать псевдонимы импорта, чтобы сохранить читаемость кода и избежать конфликтов имен, а затем примените их, создав небольшую игру по угадыванию чисел в командной строке.
-
Псевдонимы и игра с использованием Го
20:54 -
Тест 11
Урок 12
Узнайте, как создавать веб-страницы на Go, комбинируя net/http и html/template. Вы будете визуализировать динамические HTML-представления, передавать данные в шаблоны и организовывать повторно используемые макеты/частичные элементы (базовый, заголовок, нижний колонтитул). Вы будете обслуживать статические ресурсы (CSS/JS/изображения), подключать простые маршруты/обработчики и безопасно обрабатывать HTML-формы (GET/POST) с валидацией. Мы рассмотрим функции шаблонов, экранирование для предотвращения XSS и чистую структуру проекта (обработчики, шаблоны, ресурсы). В результате у вас будет небольшое многостраничное веб-приложение на Go, которое визуализирует шаблоны, обрабатывает пользовательский ввод и обслуживает все данные с одного сервера Go.
-
HTML-веб-приложение на Go
33:35 -
Тест 12
Оценки и отзывы студентов
Пока нет отзыва