• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Статья Visual Studio Code - установка и настройка для работы с Go (Golang)

Gopher-Codeby.png

Всем хорошего дня. В данной статье я пошагово расскажу и покажу установку IDE Visual Studio Code, компилятора и других утилит языка Go (Golang), клиента Git.
А затем расскажу как запустить вашу программу в отладчике.
Начнем.

Установка Go

Обратите внимание на устанавливаемую версию языка - если скачаете из источников отличных от оффсайта, то скорее всего получите устаревшую версию.
Поэтому советую сразу заходить на оффсайт
и скачивать оттуда версию по вашей операционной системе. Я использую Windows:

dbjWtOMcIrmLRIbsVUhT93ScaKCab1zESiMwJfX2ziC47MM7-fFkImYDgHAaqvvMvWbxQ9JRcGgt61fhbzcf2WyZLe-vJPIuPZ9EHzZyrUSuZhF7ZqAP9GTQgql5W61vPXUWfK9I_yvGiXyFLko45iU



Скачав файл, двойной клик и так далее. Если устанавливаете в директорию на диске C:, по умолчанию, то потребуются права администратора.
Проверяем успешность установки в командной строке (cmd в Windows/terminal Linux/macOS):
go version

uRWPOfo0c-dGSSpPcs2H3-AlnKRPVfwQ1U09G0rGWGA3HCXEsiH65DmlpgnaC6h9iZitB41ZpNAE0yZymh7kkUYqKh-fS2ZL686h5dTjvt073Pjxs89xS9SouNIAsNoCaL6KaXRP0pAMq9MC5aUuXCY


Установка VS Code

Теперь установим сам Visual Studio Code со страницы
Опять же, выбираем по своей операционной системе. Я выбираю Windows.

lxO83C9w3EQ3s7hy0vQjlazthAKPh5oIdE4YbhGboBC2_Yg6_gP1zo7VailZ-IcYA5VcS39UE7IHfnTI0GcgZxOg4RCVikVRPMDVEeQYHdqQctrgcDNAU3j3bLUsx2Nmac1V-5P9YESh4HfwvPysKZ0


По умолчанию (и рекомендации) загружается User Installer версия - эту версию можно установить и обычному пользователю и админу.
Установка будет в локальную директорию пользователя. System installer требует права админа и устанавливает для всех пользователей в системе.
Размер файла на скачивание примерно 90 Мб.

После скачивания как обычно - двойной клик и поехали.
Для моего пользователя установка будет в C:\Users\Polyglot\AppData\Local\Programs\Microsoft VS Code , требуемое место 333 Мб.
По окончание установки Visual Code (далее VS Code) будет запущен и увидим такое окно:

YVVJ5v3xLlu5czCbZTylDI2oyOIGGwYCART15aGi6f6mFEQ6WwtUakkguF9-lty2oVxzJ0TxDESWMXQlzUMWZAjvpu5lnLBKy9b81yn3id6wTk1Ho5QjumbS67JR940k-Q-tNR1AOaWULbP1G_MuLcM


Первым делом установим Go Extension - расширение VS Code собственно и дающее способность узнавать и подсвечивать синтаксис Go, показывать подсказки о дополнении функций,
свертывать/развертывать код и многое другое. Для этого жмем на кнопку Extensions слева на тулбаре, вводим в поле поиска Go, выбираем расширение от Google и жмем на Install -
шаги 1, 2, 3, и 4 в скрине:

sdKTyaeIID_pfWC5xITXaPv7duLOPxqL7-9d84T2zHRcWnXQP2U_n4AU-KoZuD0y9HCCXaLM-6EHNCPVvkIagBhMoebNaCYCiS3hI16pMFpK4kA6ME1ntba37qJ9SYn-9fWfoQuLJOa2Ccr2t4FQPUY



Следующий шаг это установить дополнительные утилиты - линтер для проверки кода на рекомендуемые практики, форматировщик кода, и главное - отладчик (дебаггер) Delve.
Сделаем это с помощью командного “центра” VS Code - Command Palette. Это отправная точка поиска/установки/компилирования/изменения параметров самого VS Code,
поэтому сразу запоминаем шорткат - Ctrl + Shift + P на Windows/Cmd + Shift + P на Маке.
В поле поиска пишем такую фразу:

Go: install/update

и нажимаем на появившийся результат.

dfAEpIpyYzlSLLf0nsAcjReIQuIBKUZI_C7qhxvwBlXjQkSpQBo8M3Z6eNdSJtkA1oPWhuhBCmY5vr2SnWC6GgrEW1Ovm5zOXCX5Ui0-2gC8GoFUT0wVXg49IRFl8rh6Lxz45j8uQfQ1_bOgqSbkxFY


Выбираем все утилиты:

YsCTdp53vRU_8CoItaV0SBafLM5k7SW_uqym38v-SnE8KqS0RsY9g5YPPJ6DcdZHHMYGORhHvvNT3TZ5XatzaXTeJeJRni66C1QxI0xd0HMJy-MmN3Y-RQUVCxKjlIp8Nj7XJAqUyN6ihHfOfyN0HYQ



И жмем OK.
В правом нижнем углу VS Code, в окне Output, появится окно результатов установки, все должно быть Succeeded:

2-w0s5ZDM5JB73g87-LwFpHxsVs0ayVO8K9qqF3Zr8eK2LPxSe2HvZc7Y-TPGl-T5IjKOp6H4ggST5fiBBxH7e_Fy2W0IkTqXCZPn6fYMNmWqsnbQL15hrbqk-HnJWzlGWd8eKKyLVXYwFi6lMXE3xk


Для надежности перезапускаем VS Code.
Проверим что все готово к написанию кода.
Откроем Проводник ( Ctrl + Shift + E), нажмем на Open Folder, зайдем в папку где можем создавать файлы и создадим новую папку

hello_world

Goc5o8KVisSr6pcqk_blXTfjBKXnCLMN6w6b9lDm5JT6Fm0SrD1VYcw1BpAJdGCRP43V760wXs0tX6Ml30G4gdpnegVuY3L91n9NILyM3OM4gGzf90lolMyqoT_dojW2-Tsdcw7Vj9ZEP64HkFvJjn4


l78BXpGRfW6k6tDrjURswh-k54W2I1OIx3Xfc_NYK0xPMLT2-XkZnCLSjEEbxXrwAe70_LvFccWBGLZfkG7Ty99JvFx2BujO9lrIN7aa5qlKc43bDcfEuRAjOowUDDtPvJaezbxN3vzuq27AzRnSMWU


На Windows может появится предупреждение “Доверяете ли вы себе?”, ответ очевиден:

oNxHBIgs6eLdbMID3MHVgi1SXdULmxfEauAvkEhZuKZQtaKa0DDIMUt166aUqlny7-RPLd2JZygwfMnAhgr3vUBV6c2aPBWh5JSFH6TZqcQ3RAYlVcl4cAWufvUuYBExcktsH1TcR81EPFCafBRzL9Q


После создания и добавления в VS Code папки hello_world, создадим в ней новый файл по имени

hello.go

cP24YAINzqKyPXVF4HM0VcyxG_ZGn8lQo1YivaDA6UJt65RUUkzM3vuK0NHO7HnPAVIXMXdAkOCBx7hhfOakPz5NRHDqvvb0kHimqWRdOtnqSS1RevFQfhzFY5V40ohCB0Gq_n_XuVNQsUJK4SFm6qI


Справа откроется окно редактора кода:

sid52NKB8IuJf0ZjCucCx-5UO1A1skz4Zq2RvBq325EZyI-93D3iugdJBNYnoY548sgO-aeu2LPdC1vdYBO3q1UTJf3Y5FUiNSEh7E0pknfyJu0rOpBkQOtVbHQOCGqSpS1ZSFdZjOV2W3QFqypKWZs


Кликнув внутри, введем следующий код:

package main

Если установка расширения Go в VS Code была действительно успешной, то при вводе слова package появится подсказка:

RYQjuqoWdHrHDsWGA4K6bQcc_o_ShJFdKBEPjEuGM_KPiG1SoXZAlRAskTLuhNsKBGd3ff9db888AvL6_bIpVXLNUZC1PvMGSPxlczd2wBdzo1C0nLQdjGQeduX96GQ5oiBo1QZ7CdlO8YADz5vSB4Q


Вся программа будет выглядеть так:

Код:
package main

func main() {

        fmt.Println("Привет, Мир! Привет, Кодбай!")
}

huVi4Plg-UnWpjusmiDO_LoFBA6RgtXA2TTFRgWiyTb7g1LhGhRbfOxwfoHYAeqOj1pbHI62K9pykGNaqIO0UiR95woaDBm6P5hqWcuinng7Nnjssx9wxkZ48cScFRsaAXkOsi0XHJcISHjYs6Ziq7Y


Как вы наверное заметили, красная извилистая линия под fmt говорит об ошибке. Если навести курсор на нее
то VS Code покажет в чем проблема с возможным решением.


IPnqhCXc_x2MZcGvEgql60M8Bklu63TF-ABgObqKhcgj-g4WdcL5J4qMN9LqIjXCvBr5CBEcyofB-vUC2F_kKe6M8DBw9IzdXS1t-UGYe26bp2aIlfUMbXzmnr8JhZgydu--U7Tg07tZaAPRXHas-2k


Увидеть расширенное сообщение о проблеме можно нажав мышкой на View Problem … или Alt + F8:

2xBgloYxVcYxD8DbrHaGg4Ulcdm3Mq5e_iGuMoZc1TUFIkjmJbEHspCGoVti3-AZMOyL0wOGhtgatCN4U16UgJ7mKb8l1jbCWglnrS1wH0CTZr7APujvWhxixc-QZYrclAQIfK13F0yPnUPA0TCL0aY


Проблема в том что мы используем функцию Println() из стандартной библиотеки fmt не импортируя ее.
Так же, мы можем посмотреть возможное решение (Ctrl + J):

XwbpdVlJ6UPz6e60x_KHh5Tp5rsU8FkH_Pjtz8tPZJj0qaLMeyM_ymzCZlDNBpkU5iRlb6NSoGOk3EVlr6Zp51g19llwKEjBkV2P-pq_ZwxijrY1fEuDbfnTY2U8UeyUxzb8bS8WPArSqhSHehHXC1c


Кликнув на это сообщение, мы получим:

qkD7hYKl4Rhy-dnMhMlGsoZXx53nDUQWQZcJXMTo8ngyHrsCkYTNw15Qr-SDa4IN-3iXF6EFOHAHbBhjJ6GWwpJ1pxkCy_Q0Vj-69VYZ_-_FTbbRHr26P_sxxCVsoeq4ez7Kb0IudsAh1hg3pQONPMQ

VS Codе добавил строку импорта.

Кстати об импортах библиотек в VS Code - редактор сделает это за нас при первом сохранении файла! То есть,
VS Code увидит что мы пользуем Println() из библиотеки fmt, и сам добавит import fmt.
Это касаемо синтакса, но для настоящего теста надо запустить нашу программу.
В Go это делается командой go run терминала/cmd/Powershell. Но если запустим сейчас то получим ошибку об отсутствии в папке hello_world файла go.mod -
файла зависимостей нашего кода. Открыть терминал/командную строку в VS Code это Ctrl + ` (обратная кавычка, обычно клавиша под Esc):

t-EClvn2XexToz21SRk6WjGJ-eLRMKXJc39njG4nGwlMxh-9TxAVOG8mT_226radcjdZ0oprIxTjDhBDZXmSkLRpI_7nFeUgV1Olrjp2fto0j8pSyyONyLP3iHo7MSfM_yXmDrKzZ6mTDrLiUAlM4To


Исправить положение легко, командой внутри той же папки hello_world: go mod init hello:


Код:
PS C:\Users\Polyglot\Documents\hello_world> go mod init hello
go: creating new go.mod: module hello
go: to add module requirements and sums:
        go mod tidy


И наконец-то, запустим нашу супер прогу: go run .

sZQZcipdrpNxKOTf5A9NTb8ldK4zFjabVHjA_4h4Vo8QggFeJ1dMeBFnzlNH30qcibTSg44_ulWjVAXgIxYViC1AJ4u9Pc3eImUADogdnVAJzNhEUo8TYFEz2axGTumITah85p4YfjgPg0CVWd__X-c


Ура, бежим добавлять “опыт разработки на Go” в LinkedIn, ну почти.
Чтоб почувствовать себя настоящими программистами, научимся отлаживать код в VS Code.

Отладка программы в дебаггере Delve

В списке утилит которые мы установили в начале, был и отладчик Delve. Он самый популярный в Go, наверное потому что единственный.
Для мазохистов есть поддержка Go в GDB, конечно.

Немного изменим нашу супер-программу, добавив срез строк names как локальную переменную:

Код:
package main


import "fmt"


func main() {

        fmt.Println("Привет, Мир! Привет, Кодбай!")

        names := []string{"я", "балдею", "от", "Го"}  // срез строк

        for _, i := range names {  //проходим в цикле печатая каждое слово

                fmt.Println(i)

        }

}

u30KMpGfa1CAwZjqTMd2ekpwvsIJNkOPHHMVHlE2_eL-Fr8mXHdJuBeMoR8YWQtgIij5l5co37CqjKrODrc_-Zl1ZuvicyapQma7ZB2oIZGO-_kfAMSdYJSNruY0op8owES6p9Sn2kvOUPFts-ge0Cs


Проверим что все еще работает: go run .
Поставим останов (breakpoint) на строке 6, кликнув мышкой напротив нее слева.

-IA4qcRO3xD5XjyjaTwwytv8TUxwhkweahlcN1m4PnNJmKHL-S7bwdYo5-_jUBqUYzW7fUOcwrCnm_ToA5f-9C528QNCfAuygOoEz6VLonCAbGdr72GAzvYuWMdckPuXF8kSAIb0uoTS5YiPwkT_5xM


И вызовем меню дебага кликом слева на тулбаре или Ctrl + Shift + D:

xFgNUTcCwODXmZO7nq69uVmtgI2HhbTo6lZ9fkyQZZeUHG8I2gk3JoE-iszwgQ9hTqAlZ6iYvU76VNl6cAkB_TBn9zJfXCf4LuE1_aQvrryVVH-cPaWprDy-R8wlaabsmEMQazXuzOii1IkRrwbNtHg


Затем смело жмем Run and Debug и программа запущена и остановлена на 6-ой строке как мы и хотели.

utNJYaRhLBuJdbgAGEqbzh1CokWvdw0cYS7HQvtpUw27mu8AAy8_Nva0uwCHsA299sBQC0L_Pf5XYi9l8hQSxrh-dd3SlKim5qsMq49tLM-QnEvznSiNfj_3hMOuUzjfOzK8CxYX4BaIp1XYA96-42k


Дополнительные окна и возможности:

1 - панель контроля отладки, можно продолжить исполнения кода пошагово, до конца, перескочить блок кода, остановить отладку совсем.
2 - Locals здесь появятся все локальные переменные и их значения с обновлением по ходу исполнения кода.
3 - Watch тут мы можем установить точки наблюдения с показом их состояния на каждом шаге отладки.
4 - стек вызова функций в нашей программе.
5 - Debug Console тут выводятся сообщения программой и/или отладчиком.
6 - командная строка отладчика (Delve) где мы можем отдавать команды напрямую отладчику.
7 - список точек останова, позволяет временно отключать их, удалять, добавлять новые.

Вот так будет выглядеть отладчик после нескольких шагов:

vtvviymv0nUogrH2QvXO74LCKSrCvccQll3ZwTkpCehGMWH6JA9MVyvr63YaxiSxLqUwTk5bFfDQkdTJqjipL0tpOFJcvVquaF33ro4IUWVxJh7rJ4ZraNxtiWHCRWigj6c-rHm-Inh07wFRaIeqOis



Еще одна возможность VS Code, а точнее форматировщика/линтера, это форматирование кода согласно принятым сообществом Gopher-ов при каждом сохранении файла.
Например возьмем наш код и сделаем его страшным на лицо, и хотя работает он также, согласитесь читать такой код бррр:

gAkhQlZj3Ucqw26URbw76Scp9wQyS1WqPxNrUIQafURcjbb5kdnmWwIVRReppytU3s_4cQCnw4qGeX7aJAD-9OSHcqcJgLiaZ7M24qXRwzMDn1OOrabqBagLz3ht6iWD1At-UZhz_FsNMvDKBlMT4Q8


Но как только мы сохраним файл Ctrl + S, встроенный форматировщик кода причешет его так:

Y7K1vcogLS0cynvG9iE9c_jw65bIxghfPxd1B8RDi-ohK-RL7CVrc_UuMrVDnYCC7zVgaPwMO9hFqPJ9cx5D4yOBry_7PW5jkJEk97odfZhRChVLkOV-zHbnXM2keuFkdrfbGxaiHwpdKUwHRA4uyNA



Установка Git

Опционально но рекомендую - установить клиент Git для работы с репозиториями.
Для написания программ на Go это не требуется, формально, но практически невозможно создавать код не используя нестандартные библиотеки вообще - и 99%
таких сторонних библиотек расположены на github.com. И это значит нам понадобится клонировать их оттуда на локальную машину разработки, что без Git клиента невозможно.

Самый простой способ - скачать и в пару кликов установить Git для Windows отсюда - . Альтернатива (я так пользую) - загрузить среду эмуляции Linux/Unix
для Windows Cygwin или MSYS2, и уже внутри их установить Git. На Мак-е Homebrew - brew install git.


Заключение

Это все что я хотел рассказать и показать сегодня - мы установили VS Code, go (golang) утилиты и компилятор, привязали все вместе в VS Code, написали обязательный Hello, World!,
опционально установили Git, и запустили нашу прогу в отладчике. Если вам интересна тема Go и все что вокруг, пишите в комментариях о чем хотели бы почитать.



Прим: По поводу холиваров которые вы увидите в поиске по VS Code, сам основанный на GUI фреймворк Electron (JavaScript) - о том что жрет память гигабайтами, тормозит систему не по-детски,
и вообще квинтэссенция зла. Не скажу что другие видели или думают, но мой опыт говорит о другом - и память не жрет, и летает все как надо. Так или иначе, VS Code сегодня (2023) самый
популярный IDE среди профессионалов и любителей, как видно ниже из опроса StackOverflow:

mpIjUquxrcqjpzjbt8Wv31XZSfAF6MevF_HiSrsKVtQNyQuYq34UdUaNbAUzme7kBk4MtyZd5RLZ18jsMyNDi0fUzb-Cmllaqwo3h2tToJwKy1fw21K_ibjqQb6ZEaWqDctf0pw6JFYDW13FYW2R8LA


Источник:

На моей системе (Windows 10, 8 Гб памяти) VS Code выглядит так:

Yv-u1jrGt7EG6ivq9I60y4xzP-3jhAYYJhPlwx6wo6lNmVyJHmQz5v24GZ4lm7ScWukcgoFvMwx1-FgTYgl-L8si17uW77XsQjM4guGaEhf5nZTpaHUCrz-09cJt5Zsqs3gTNwkJ1bXsXlT6STKUi78



Дополнительные материалы



  • Debugging Go Code with GDB - проблема с ним в том что отладчик не понимает специфики/контекста языка Go.
  • VS Code в браузере, если хотите познакомиться с редактором без установки на компе. Не поддерживает установку расширений и как следствие компиляцию Go кода.
---------------------------------------------------------------------------

Мои статьи на Codeby: polyglot
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!