23 ноября 2023

🦫 Самоучитель по Go для начинающих. Часть 1. Особенности и сфера применения Go, установка, настройка

Энтузиаст-разработчик, автор статей по программированию.
В этой статье разберем основные особенности Go, его преимущества и недостатки, а также настроим рабочее пространство для комфортной разработки.
🦫 Самоучитель по Go для начинающих. Часть 1. Особенности и сфера применения Go, установка, настройка

Немного о Go

Язык программирования Go, также известный как Golang, разрабатывался инженерами Google с 2007 года и был представлен широкой публике в 2009 году. С тех пор он стал популярным инструментом разработки, привлекая внимание многих программистов и компаний за счет своих возможностей. На данный момент Go активно развивается и поддерживается разработчиками и сообществом энтузиастов, ежегодно входит в рейтинги самых востребованных языков программирования.

Изначально Go проектировался с упором на производительность, масштабируемость и надежность, поэтому отлично зарекомендовал себя в микросервисной архитектуре, облачных и серверных приложениях, DevOps, CLI-приложениях, программировании микроконтроллеров.

👨‍💻 Библиотека Go разработчика
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека Go разработчика»
💼 Библиотека Go для собеса
Подтянуть свои знания по Go вы можете на нашем телеграм-канале «Библиотека Go для собеса»
🧩 Библиотека задач по Go
Интересные задачи по Go для практики можно найти на нашем телеграм-канале «Библиотека задач по Go»

Преимущества Go

Преимущества Go
Преимущества Go

Понятный синтаксис

Go был создан с целью упростить разработку и сделать код легким для чтения. Разработчики намеренно убрали многие лишние элементы, чтобы синтаксис языка стал лаконичным и простым для понимания.

Эффективная работа с конкурентностью

Одним из ключевых преимуществ Go является его встроенная поддержка конкурентности. Это позволяет создавать высокопроизводительные программы, способные эффективно использовать многопроцессорные системы.

Высокая производительность

Go компилируется в машинный код, что ускоряет выполнение программы. Благодаря своей высокой производительности, он широко используется в разработке серверных приложений и микросервисов.

Обширная стандартная библиотека

Разработчики Go позаботились над созданием обширной стандартной библиотеки, в которой найдутся готовые инструменты для решения большинства задач. К примеру, из коробки поставляются утилиты для форматирования и тестирования, создания документации, анализа исходного кода на наличие ошибок и утечек памяти, а также другие полезные решения.

Развитое сообщество

Go имеет активное сообщество разработчиков, которые всегда готовы ответить на любые вопросы и помочь с изучением языка. Также они постоянно создают новые инструменты и библиотеки, облегчающие жизнь многим программистам.

Недостатки Go

Недостатки Go
Недостатки Go

Ограниченная сфера применения

Go отлично зарекомендовал себя в создании сетевых и серверных приложений, но в других областях, напримеркак мобильная разработка, машинное обучение и анализ данных, он навряд ли составит конкуренцию другим языкам.

Излишняя простота

Это одновременно и плюс, и минус. Из-за урезанного синтаксиса многие конструкции разработчикам приходится реализовывать самостоятельно, а отсутствие современного ООП накладывает определенные ограничения на создание крупных проектов.

Установка Go

Установка Go
Установка Go

Переходим к установке Go для локальной разработки программ. Для этого понадобится скачать необходимые пакеты с официального сайта и правильно установить их с помощью настроек системы и консольных команд.

После установки пакетов перейдем к настройке переменных среды. Они необходимы системе, чтобы найти расположение файлов Go. Всего нам понадобится две переменные среды:

  • PATH – позволяет системе находить исполняемые файлы без указания полного пути
  • GOPATH – указывает на место, где Go хранит скомпилированные и загруженные пакеты.

Для проверки после любого из способов выполните команду go version, которая должна указать установленную в системе версию Go.

Установка Go на Windows

  1. Скачиваем мастер установки с официального сайта.
  2. Запускаем скачанный файл и следуем инструкциям на экране.

Настройка переменных среды

  1. Создаем папку для проектов на Go в любом удобном месте. Для примера возьмем C:\\GoWorkspace.
  2. Добавляем в созданный каталог две папки: bin для хранения исполняемых файлов и src для исходного кода.
  3. Переходим в панель управления → Система и безопасность → Система → Дополнительные параметры системы → Переменные среды.
  4. Нажимаем на кнопку Создать под переменными средами пользователя.
  5. В строке Имя переменной указываем GOPATH, в поле Значение переменной пишем путь к созданной раннее папке (в нашем примере C:\\GoWorkspace).
  6. Сохраняем внесенные изменения.
  7. Проверяем значение PATH. Для этого переходим по пути из пункта 3 и находим Path. Нажимаем два раза для просмотра значения, которое должно содержать путь до папки bin языка Go. Чаще всего это C:\\Program Files\\Go\\bin. Если значение отличается от того, которое вы указывали при установке Go, меняем его на необходимое с помощью кнопки Изменить.

Установка Go на Linux

С помощью Snap

Проще всего установить Go с помощью системы управления пакетами Snap, которая предоставляет, как правило, актуальные версии языка. Для этого потребуется выполнить всего лишь одну команду:

        sudo snap install go --classic

    

С помощью менеджера пакетов apt

Другой не менее простой способ – установить Go с помощью менеджера пакетов apt. Недостаток этого метода заключается в том, что репозиторий apt может содержать неактуальные версии языка.

Обновляем пакеты до последних версий

        sudo apt update && apt upgrade

    

Устанавливаем Go

        sudo apt install golang

    

С официального сайта

Этот способ рекомендуют использовать разработчики, так как он предоставляет самые актуальные версии и позволяет правильно установить все необходимые зависимости.

  1. Скачиваем архив с официального сайта
  2. Распаковываем архив в папку /usr/local. При необходимости изменяем номер версии на тот, который указан в названии скачанного архива.
        sudo tar -C /usr/local -xzf go1.21.4.linux-amd64.tar.gz

    

3. Добавляем путь к исполняемым файлам в PATH и применяем изменения.

        sudo export PATH=$PATH:/usr/local/go/bin && source $HOME/.profile

    

Настройка переменных среды

1. Создаем папку для проектов на Go в любом удобном месте, а также две подпапки: bin для хранения исполняемых файлов и src для исходного кода:

        mkdir -p $HOME/go/{bin,src}

    

2. Добавляем переменную GOPATH в систему. Для этого открываем файл ~/.profile:

        sudo nano ~/.profile

    

3. Вводим следующие строчки в файл /.profile:

        export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin

    

4. Обновляем оболочку:

        . ~/.profile

    

5. Проверяем обновление $PATH с помощью команды echo:

        echo $PATH

    

6. В строке вывода должен быть установленный нами путь /usr/local/go/bin:

        /root/go/bin:/usr/local/go/bin

    

Установка Go на MacOS

  1. Скачиваем мастер установки с официального сайта.
  2. Запускаем скачанный файл и следуем инструкциям мастера установки.

Настройка переменных среды аналогична той, которая была описана выше для Linux, за одним единственным исключением – вместо файла ~/.profile в MacOS нужно открывать файл ~/.bash_profile.

Редакторы кода и IDE

Редакторы кода и IDE для Go
Редакторы кода и IDE для Go

Писать код можно хоть на листе бумаги, но современные разработчики чаще всего пользуются редакторами кода и IDE (интегрированная среда разработки), которые предоставляют расширенный функционал для работы.

  1. Значительная часть программистов выбирает Visual Studio Code (VS Code) из-за легковесности, доступности и возможностей индивидуальной настройки. Советуем начать именно с этого редактора, так как он отлично подходит для новичков за счет своей простоты и эргономичности.
  2. Другой популярный вариант для Go разработчиков – проприетарная IDE Goland от JetBrains. Она заточена под язык и поэтому обладает более обширным функционалом, в отличие от Visual Studio Code.

Установка и настройка VS Code

Для комфортной разработки установим VS Code и настроим официальный плагин для поддержки синтаксиса Go.

  1. Скачиваем файл программы с официального сайта.
  2. Запускаем скачанный файл и следуем инструкциям на экране.
  3. Открываем VS Code и переходим в панель расширений с помощью горячих клавиш CTRL + SHIFT + X.
  4. Ищем расширение Go от Go Team at Google и скачиваем его.
  5. После установки может появится сообщение вида gopls command is not available. Чтобы это исправить, установите пакет gopls, нажав на появившуюся кнопку.
  6. Для детальной настройки расширения советуем ознакомиться с его документацией.

Онлайн-редакторы кода

Существует множество онлайн-редакторов для написания кода. Самый популярный из них – Go Playground. Он находится на официальной странице Go и развивается командой разработчиков. Go Playground поддерживает последние версии языка, позволяет форматировать код и делиться им с другими.

Подведем итоги

В первом уроке мы познакомились с Go, обсудили его преимущества и недостатки, а также настроили рабочее пространство для локальной разработки.

Во втором уроке рассмотрим материалы для самостоятельного изучения Go и выберем из них наиболее подходящие для начинающих.

***

Содержание самоучителя

  1. Особенности и сфера применения Go, установка, настройка
  2. Ресурсы для изучения Go с нуля
  3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
  4. Переменные. Типы данных и их преобразования. Основные операторы
  5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
  6. Функции и аргументы. Области видимости. Рекурсия. Defer
  7. Массивы и слайсы. Append и сopy. Пакет slices
  8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
  9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
  10. Наследование, абстракция, полиморфизм, инкапсуляция
  11. Обработка ошибок. Паника. Восстановление. Логирование
  12. Обобщенное программирование. Дженерики
  13. Работа с датой и временем. Пакет time
  14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
  15. Конкурентность. Горутины. Каналы
  16. Тестирование кода и его виды. Table-driven подход. Параллельные тесты
  17. Основы сетевого программирования. Стек TCP/IP. Сокеты. Пакет net
  18. Протокол HTTP. Создание HTTP-сервера и клиента. Пакет net/http
***

Статьи по теме

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ