@spaiki007
Программирую на javascript, python, golang, rust

Как правильно импортировать локальные пакеты?

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

Как я когда то делал и это работало.

app
- package
-- package.go
- main.go

в main просто делал вот так и все работало... Там конечно был ньюанс с рекурсивным вызовом пакета, но это так... Но с новой версией так не работает.

package main

import (
        "./package"
)

func main() {
	package.Print("Hello world!")
}


Почитав немного доки, мне че теперь каждый локальный пакет надо как субмодуль в гит пушить? И потом делать весь этот замороч с гитом? Ребята поделитесь опытом кто как делает.

Пример импорта Python
from .app.folder.file import func_name

Пример Javascript
import {ThingA, ThingB, ThingC} from './lib/things';

Пример на Rust
mod include_me;

На Go то почему не так же просто? Это здорово отталкивает...
  • Вопрос задан
  • 1367 просмотров
Решения вопроса 1
@spaiki007 Автор вопроса
Программирую на javascript, python, golang, rust
Посидев по эспериментировав ответил на свой же вопрос, ссылка на пример структуры приложения вот, и да действительно удобно получается... главный момент это использовать модули и все... Неудобств все таки есть парочка, это именование и тесное сотрудничество с гитом, который может отвалится и придется заморачиваться как то по другому...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@darst
Если проект пишите для себя, то не обязательно его привзывать к github. Можете дать название своего проекта, например, "проект" при инициализации (go mod init) или переименовать в go.mod. Тогда обращаться нужно будет "проект/названиеПакета". Привязывать к github имеет смысл, если пакет делаете для других и будете размещать на сторонних сервисах, тогда полные ссылки помогут избежать потери пакетов. И как писал Александр Павлюк выше, чтобы не потерять используемые сторонние пакеты нужно использовать go mod vendor.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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