GOLANG_INTERVIEW Telegram 230
👣 В чём разница между пакетами и модулями Golang?

Модуль - это дерево пакетов. Имя модуля задаётся в go.mod

Пакет - это набор исходных .go файлов, находящихся в одном каталоге и с одинаковой директивой package.

Файлы для одного пакета обязаны находиться в одном каталоге. Полное имя для пакета строится из имени модуля и пути к каталогу с файлами. Например,

в go.mod написано module example.org/mylib, тогда все пакеты из модуля example.org/mylib должны быть в дочерних каталогах относительно go.mod.
и путь к каталогу определяет имя пакета.
Например, в дереве исходников вашей библиотеки есть файлы в каталоге ./cmd/root.

Тогда эти файлы должны быть либо с директивой package root, либо package root_test. И полное имя пакета для этих файлов будет либо example.org/mylib/cmd/root, либо example.org/mylib/cmd/root_test[1].

Для автоматического поиска пакетов в Гугле придумали протокол goproxy Он реализован в GitHub, поэтому любой модуль, размещённый там, автоматически будет найден командами go get, go mod tidy, go build и подобными.

Но никто не ограничивает вас пользоваться только гитхабом. К примеру, поддержка goproxy есть в GitLab. Разворачиваете у себя на сервере гитлаб, настраиваете домены и прокси - и готово, go get начинает находить модули с вашим доменным именем.

На худой конец можно развернуть исходники стороннего модуля у себя в файловой системе, а в go.mod прописать зависимость с replace:

require example.org/some/module v1.01.02
replace example.org/some/module => ../some_module_src

В этом случае go build вообще не полезет в интернет, а возьмёт исходники модуля example.org/some/module из каталога ../some_module_src

[1] Пакет example.org/mylib/cmd/root_test должен содержать тесты для пакета example.org/mylib/cmd/root

#junior

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍213🔥3



tgoop.com/golang_interview/230
Create:
Last Update:

👣 В чём разница между пакетами и модулями Golang?

Модуль - это дерево пакетов. Имя модуля задаётся в go.mod

Пакет - это набор исходных .go файлов, находящихся в одном каталоге и с одинаковой директивой package.

Файлы для одного пакета обязаны находиться в одном каталоге. Полное имя для пакета строится из имени модуля и пути к каталогу с файлами. Например,

в go.mod написано module example.org/mylib, тогда все пакеты из модуля example.org/mylib должны быть в дочерних каталогах относительно go.mod.
и путь к каталогу определяет имя пакета.
Например, в дереве исходников вашей библиотеки есть файлы в каталоге ./cmd/root.

Тогда эти файлы должны быть либо с директивой package root, либо package root_test. И полное имя пакета для этих файлов будет либо example.org/mylib/cmd/root, либо example.org/mylib/cmd/root_test[1].

Для автоматического поиска пакетов в Гугле придумали протокол goproxy Он реализован в GitHub, поэтому любой модуль, размещённый там, автоматически будет найден командами go get, go mod tidy, go build и подобными.

Но никто не ограничивает вас пользоваться только гитхабом. К примеру, поддержка goproxy есть в GitLab. Разворачиваете у себя на сервере гитлаб, настраиваете домены и прокси - и готово, go get начинает находить модули с вашим доменным именем.

На худой конец можно развернуть исходники стороннего модуля у себя в файловой системе, а в go.mod прописать зависимость с replace:

require example.org/some/module v1.01.02
replace example.org/some/module => ../some_module_src

В этом случае go build вообще не полезет в интернет, а возьмёт исходники модуля example.org/some/module из каталога ../some_module_src

[1] Пакет example.org/mylib/cmd/root_test должен содержать тесты для пакета example.org/mylib/cmd/root

#junior

@golang_interview

BY Golang вопросы собеседований


Share with your friend now:
tgoop.com/golang_interview/230

View MORE
Open in Telegram


Telegram News

Date: |

Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. How to create a business channel on Telegram? (Tutorial) Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations.
from us


Telegram Golang вопросы собеседований
FROM American