Как организовать проект на go?

Не могу найти подробный туториал по best-practices по организации go-проекта.

Как хранить зависимости?

В чем хранить сборочные скрипты? Makefile?

Как разбить проект на под-пакеты (как я понял, текущая директория не добавляется в GOPATH и нельзя просто использовать package из соседней папки?)?

Читал, что рекомендуют сразу располагать приложение по пути src/github.com/name/project... И так же их импортировать.
А что будет если понадобится переехать в другой репозиторий? Такое, конечно, не каждый день, но бывает. Что, все исходники перелопачивать?
  • Вопрос задан
  • 4963 просмотра
Решения вопроса 2
artem_kovardin
@artem_kovardin
Как вариант, можно пользоваться структурой, описанной в этой статье. Сейчас еще набирает обороты тулза gb. И есть классическая статья "How to Write Go Code".
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Как хранить зависимости?

С зависимостями отлично справляется go get ./...
Если нужны конкретные версии: http://gopkg.in

В чем хранить сборочные скрипты? Makefile?

Если сишные либы юзать не будешь хватит обычного go build. Если нет - Makefile

Как разбить проект на подмодули (как я понял, текущая....

Не используй относительные пути, вместо них подключай примерно так:
import "github.com/index0h/my-project/sub/package"

Читал, что рекомендуют сраз располагать приложение по пути...

Лично я разрулил за счет символических ссылок в стиле:
ln -s /path/to/my/project $GOPATH/src/github.com/index0h/my-project
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mututunus
@mututunus
Backend developer (Python, Golang)
Для зависимостей использую https://github.com/pote/gpm
Локальные пакеты можно импортировать прямо из текущей директории (import "./mypackage")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы