Найти тему
Заметки об ИТ

Создание web-сервиса для winetricks на языке программирования GoLang

Оглавление

Создание окружения для GoLang

Обновляем ОС AltLinux:

$ apt-get update && apt-get dist-upgrade -y

Устанавливаем язык программирования GoLang:

$ apt-get install golang gcc -y

Смотрим версию golang:

$ go version

go version go1.21.7 linux/amd64

Смотрим переменные окружения GoLang:

$ go env

$GOPATH = "/home/user/go" - каталог, где располагаются наши проекты

$GOROOT = "/usr/lib/golang" - каталог, где хранятся пакеты golang

...

Создаем каталог для go-проектов:

$ mkdir -p ~/develop/golang

Меняем переменную окружения $GOPATH:

$ go env -w GOPATH="/home/user/develop/golang"

Проверяем установленную переменную окружения GOPATH:

$ go env GOPATH

/home/user/develop/golang

Выбор среды разработки go-программ

Для разработки go-программ будем использовать текстовый процессор, который идет из коробки в ОС GNU/Linux, в частности в ОС AltLinux - это vim.

Что надо знать о vim:

1. vim работает в двух режимах, первый режим командный, второй - режим редактирования текста;

2. Переход из командного режима в режим редактирования текста выполняется нажатием клавиши "i". Переход из режима редактирования текста в командный режим выполняется нажатием клавиши Esc или сочетанием клавиш Ctrl + C.

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

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

":w" - сохранить изменения в файле;

":q" - выйти из программы;

":wq" - сохранить изменения в файле и выйти из программы.

Это тот минимум, который необходимо знать для написания go-программ.

Если работа с vim Вам покажется сложной, попробуйте использовать текстовый редактор "nano".

Определение структуры каталогов для нашего проекта

Для хранения нашего проекта и последующих проектов, включая проектов на других языках программирования, будем использовать следующую структуру каталогов:

В домашнем каталоге пользователя ("~", команда "cd ~" переведёт вас в домашний каталог), в нашем случае имя пользователя `user`.

~/develop

~/develop/golang - каталог для хранения go-программ

~/develop/golang/testproject - go-коды программ для проекта "Test Project"

Создание первой программы на GoLang с простой структурой каталогов

Создаем каталог для тестового проекта и переходим в него:

$ mkdir -p ~/develop/golang/testproject && cd ~/develop/golang/testproject

Создаем файл main.go со следующим содержанием:

$ vim main.go

[нажимаем клавишу "i" для перевода vim в режим редактирования текста]

/*

Это много строчный комментарий. В первых строках программного кода всегда пишите информацию о себе. Например.

author: Author Name

email: Author email

blog: Author blog

*/

package main

import (

"fmt"

)

func main() {

fmt.Println("Hello, word!")

}

[нажимаем Esc или Ctrl+C Для перевода vim в командный режим и набираем ":wq", для сохранения изменения в файле и выхода из vim. Вводимые команды в командном режиме будут отображаться в левом нижнем углу программы vim]

Запустим программу на выполнение в режиме JIT-интепретации:

$ go run main.go

Hello, word!

Посмотрим список файлов в каталоге нашего проекта "ls":

$ ls

main.go main.go~

Файл main.go~ хранит версию файла main.go до сохранения изменений.

Скомпилируем программу под ОС GNU/Linux:

$ go build main.go

В результате получим исполняемый ELF-файл, который можем запустить для проверки:

$ ./main

Hello, word!

Выполним компиляцию main.go для выполнения программы на ОС Windows:

$ GOOS=windows GOARCH=amd64 go build main.go

В результате выполнения команды, в каталоге нашего проекта появится файл main.exe, которые если вы перенесете на Windows и запустите на выполнение, то увидите наше сообщение:

d:\>main.exe

Hello, word!

В связи с тем, что пользователям нашей программы понадобится справочная система, в каталоге проекта надо создать каталог `docs`, а чтобы файлы проекта `main.go` не находились в корне проекта, в каталоге проекта надо создать каталог `src`, более подробно такую структуру каталогов мы рассмотрим далее.

Создание второй программы на GoLang с более интересной структурой каталогов

(статья не закончена)