На сегодняшний день интернет стал неотъемлемой частью жизни каждого из нас. Мы заказываем продукты, вещи, лекарства в интернете, смотрим фильмы в онлайн-кинотеатрах и общаемся с друзьями в социальных сетях. И этот список можно продолжать бесконечно. При этом в основе каждого из этих примеров лежит веб-приложение, которое выполняет определенную функцию.
Веб-приложение — это программное обеспечение, в котором пользователь взаимодействует с веб-сервером при помощи веб-браузера. Например, Google — это веб-приложение для поиска информации в интернете, а Youtube — это веб-приложение для просмотра видео.
Веб-приложения разделяются на два типа:
- Frontend (клиентская часть веб-приложения) — отвечает за отображение информации пользователю и взаимодействие с ним. Чаще подразумевается взаимодействие в веб-браузере
- Backend (серверная часть веб-приложения) — отвечает за управление данными и бизнес-логикой веб-приложения
В этом курсе мы сосредоточимся на backend, а именно на разработке веб-приложений на языке Go.
Почему именно Go
Golang — это достаточно молодой язык программирования. Его разработали в Google с учетом следующих требований:
- Простота. Язык Go должен быть простым в изучении и использовании. Чтобы быстро разрабатывать программное обеспечение, программисту нужно понимать, как работает язык и как его использовать
- Производительность. Язык Go должен быть быстрым в работе. Веб-приложения компании Google — одни из самых высоконагруженных в мире. Поэтому им важно использовать язык программирования, который не уступит по производительности низкоуровневым языкам, таким как "Си"
- Параллелизм. С современными веб-приложениями работают тысячи пользователей в один момент времени. Язык Go должен предоставлять удобные инструменты для эффективной параллельной обработки множества HTTP-запросов
Эти требования были учтены при разработке языка Go. По этим причинам на сегодняшний день он активно используется при разработке социальных сетей, финтех и блокчейн платформ.
В таких проектах часто присутствуют большие нагрузки, обработка данных в режиме реального времени и микросервисная архитектура. И именно Go позволяет решить эти вопросы достаточно просто и эффективно.
Цели курса
В этом курсе мы научимся разрабатывать веб-приложения на языке Go с использованием микрофреймворка Fiber. Мы узнаем, как:
- работать со стандартной библиотекой HTTP в Golang
- использовать логирование в приложениях
- читать запросы и отправлять ответы с микрофреймворком Fiber
- описывать роутинг в Fiber веб-приложениях
- сериализовать и десериализовать данные в JSON в Golang
- строить слой хранения данных в Golang-приложении
- проверять HTTP-запросы в Go
- использовать middleware при обработке HTTP-запросов в Go
- настраивать JWT-авторизацию на сервере
- работать с шаблонами HTML-страниц в Go-приложениях
- обрабатывать, логировать и возвращать ошибки клиенту
Дополнительные материалы
- Установка Go
- Анатомия веб-сервиса от Highload
- Вытесняющий планировщик Go
- Сравнение производительности веб-сервера на Go с другими языками
- Communicating sequential processes (теория о шаблонах взаимодействия в конкурентных системах)
- Конкурентность — Асинхронность
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.