Немного о Go
Язык программирования Go, также известный как Golang, разрабатывался инженерами Google с 2007 года и был представлен широкой публике в 2009 году. С тех пор он стал популярным инструментом разработки, привлекая внимание многих программистов и компаний за счет своих возможностей. На данный момент Go активно развивается и поддерживается разработчиками и сообществом энтузиастов, ежегодно входит в рейтинги самых востребованных языков программирования.
Изначально Go проектировался с упором на производительность, масштабируемость и надежность, поэтому отлично зарекомендовал себя в микросервисной архитектуре, облачных и серверных приложениях, DevOps, CLI-приложениях, программировании микроконтроллеров.
Преимущества Go
Понятный синтаксис
Go был создан с целью упростить разработку и сделать код легким для чтения. Разработчики намеренно убрали многие лишние элементы, чтобы синтаксис языка стал лаконичным и простым для понимания.
Эффективная работа с конкурентностью
Одним из ключевых преимуществ Go является его встроенная поддержка конкурентности. Это позволяет создавать высокопроизводительные программы, способные эффективно использовать многопроцессорные системы.
Высокая производительность
Go компилируется в машинный код, что ускоряет выполнение программы. Благодаря своей высокой производительности, он широко используется в разработке серверных приложений и микросервисов.
Обширная стандартная библиотека
Разработчики Go позаботились над созданием обширной стандартной библиотеки, в которой найдутся готовые инструменты для решения большинства задач. К примеру, из коробки поставляются утилиты для форматирования и тестирования, создания документации, анализа исходного кода на наличие ошибок и утечек памяти, а также другие полезные решения.
Развитое сообщество
Go имеет активное сообщество разработчиков, которые всегда готовы ответить на любые вопросы и помочь с изучением языка. Также они постоянно создают новые инструменты и библиотеки, облегчающие жизнь многим программистам.
Недостатки Go
Ограниченная сфера применения
Go отлично зарекомендовал себя в создании сетевых и серверных приложений, но в других областях, напримеркак мобильная разработка, машинное обучение и анализ данных, он навряд ли составит конкуренцию другим языкам.
Излишняя простота
Это одновременно и плюс, и минус. Из-за урезанного синтаксиса многие конструкции разработчикам приходится реализовывать самостоятельно, а отсутствие современного ООП накладывает определенные ограничения на создание крупных проектов.
Установка Go
Переходим к установке Go для локальной разработки программ. Для этого понадобится скачать необходимые пакеты с официального сайта и правильно установить их с помощью настроек системы и консольных команд.
После установки пакетов перейдем к настройке переменных среды. Они необходимы системе, чтобы найти расположение файлов Go. Всего нам понадобится две переменные среды:
- PATH – позволяет системе находить исполняемые файлы без указания полного пути
- GOPATH – указывает на место, где Go хранит скомпилированные и загруженные пакеты.
Для проверки после любого из способов выполните команду go version
, которая должна указать установленную в системе версию Go.
Установка Go на Windows
- Скачиваем мастер установки с официального сайта.
- Запускаем скачанный файл и следуем инструкциям на экране.
Настройка переменных среды
- Создаем папку для проектов на Go в любом удобном месте. Для примера возьмем
C:\\GoWorkspace
. - Добавляем в созданный каталог две папки:
bin
для хранения исполняемых файлов иsrc
для исходного кода. - Переходим в панель управления → Система и безопасность → Система → Дополнительные параметры системы → Переменные среды.
- Нажимаем на кнопку Создать под переменными средами пользователя.
- В строке Имя переменной указываем GOPATH, в поле Значение переменной пишем путь к созданной раннее папке (в нашем примере
C:\\GoWorkspace
). - Сохраняем внесенные изменения.
- Проверяем значение PATH. Для этого переходим по пути из пункта 3 и находим Path. Нажимаем два раза для просмотра значения, которое должно содержать путь до папки bin языка Go. Чаще всего это
C:\\Program Files\\Go\\bin
. Если значение отличается от того, которое вы указывали при установке Go, меняем его на необходимое с помощью кнопки Изменить.
Установка Go на Linux
С помощью Snap
Проще всего установить Go с помощью системы управления пакетами Snap, которая предоставляет, как правило, актуальные версии языка. Для этого потребуется выполнить всего лишь одну команду:
С помощью менеджера пакетов apt
Другой не менее простой способ – установить Go с помощью менеджера пакетов apt. Недостаток этого метода заключается в том, что репозиторий apt может содержать неактуальные версии языка.
Обновляем пакеты до последних версий
Устанавливаем Go
С официального сайта
Этот способ рекомендуют использовать разработчики, так как он предоставляет самые актуальные версии и позволяет правильно установить все необходимые зависимости.
- Скачиваем архив с официального сайта
- Распаковываем архив в папку
/usr/local
. При необходимости изменяем номер версии на тот, который указан в названии скачанного архива.
3. Добавляем путь к исполняемым файлам в PATH и применяем изменения.
Настройка переменных среды
1. Создаем папку для проектов на Go в любом удобном месте, а также две подпапки: bin
для хранения исполняемых файлов и src
для исходного кода:
2. Добавляем переменную GOPATH в систему. Для этого открываем файл ~/.profile
:
3. Вводим следующие строчки в файл /.profile
:
4. Обновляем оболочку:
5. Проверяем обновление $PATH
с помощью команды echo
:
6. В строке вывода должен быть установленный нами путь /usr/local/go/bin
:
Установка Go на MacOS
- Скачиваем мастер установки с официального сайта.
- Запускаем скачанный файл и следуем инструкциям мастера установки.
Настройка переменных среды аналогична той, которая была описана выше для Linux, за одним единственным исключением – вместо файла ~/.profile
в MacOS нужно открывать файл ~/.bash_profile
.
Редакторы кода и IDE
Писать код можно хоть на листе бумаги, но современные разработчики чаще всего пользуются редакторами кода и IDE (интегрированная среда разработки), которые предоставляют расширенный функционал для работы.
- Значительная часть программистов выбирает Visual Studio Code (VS Code) из-за легковесности, доступности и возможностей индивидуальной настройки. Советуем начать именно с этого редактора, так как он отлично подходит для новичков за счет своей простоты и эргономичности.
- Другой популярный вариант для Go разработчиков – проприетарная IDE Goland от JetBrains. Она заточена под язык и поэтому обладает более обширным функционалом, в отличие от Visual Studio Code.
Установка и настройка VS Code
Для комфортной разработки установим VS Code и настроим официальный плагин для поддержки синтаксиса Go.
- Скачиваем файл программы с официального сайта.
- Запускаем скачанный файл и следуем инструкциям на экране.
- Открываем VS Code и переходим в панель расширений с помощью горячих клавиш
CTRL + SHIFT + X
. - Ищем расширение
Go
от Go Team at Google и скачиваем его. - После установки может появится сообщение вида
gopls command is not available
. Чтобы это исправить, установите пакетgopls
, нажав на появившуюся кнопку. - Для детальной настройки расширения советуем ознакомиться с его документацией.
Онлайн-редакторы кода
Существует множество онлайн-редакторов для написания кода. Самый популярный из них – Go Playground. Он находится на официальной странице Go и развивается командой разработчиков. Go Playground поддерживает последние версии языка, позволяет форматировать код и делиться им с другими.
Подведем итоги
В первом уроке мы познакомились с Go, обсудили его преимущества и недостатки, а также настроили рабочее пространство для локальной разработки.
Во втором уроке рассмотрим материалы для самостоятельного изучения Go и выберем из них наиболее подходящие для начинающих.
Содержание самоучителя
- Особенности и сфера применения Go, установка, настройка
- Ресурсы для изучения Go с нуля
- Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
- Переменные. Типы данных и их преобразования. Основные операторы
- Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
- Функции и аргументы. Области видимости. Рекурсия. Defer
- Массивы и слайсы. Append и сopy. Пакет slices
- Строки, руны, байты. Пакет strings. Хеш-таблица (map)
- Структуры и методы. Интерфейсы. Указатели. Основы ООП
- Наследование, абстракция, полиморфизм, инкапсуляция
- Обработка ошибок. Паника. Восстановление. Логирование
- Обобщенное программирование. Дженерики
- Работа с датой и временем. Пакет time
- Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
- Конкурентность. Горутины. Каналы
- Тестирование кода и его виды. Table-driven подход. Параллельные тесты
- Основы сетевого программирования. Стек TCP/IP. Сокеты. Пакет net
- Протокол HTTP. Создание HTTP-сервера и клиента. Пакет net/http
Комментарии