Структуры моделей на go
Свитчусь с шарпа на go. Если мой какой-то Service использует некоторые модели (к примеру, DTA-классы), я привык создавать рядом какую-нибудь папку Models и класть модели туда. Когда я пытаюсь провернуть что-то подобное на go, компилятор выражает свой протест. Отсюда 2 вопроса:
- Могу ли я вообще организовать файлы таким образом, например: файл с "сервисом" лежит в директории .\service, файл модели: .\service\models\defaultModel.go?
- В чем смысл помещать файлы модели рядом с сервисом? Их же может быть много, легко будет потеряться во всех файлах. Поделитесь из своей практики, как это принято организовывать
Ответы (1 шт):
Создаёшь папку service, и в её папку кладёшь файл service.go что-бы получилось как service/service.go после вся service будет доступна как
import (
"github.com/youruser/yourapp/service"
)
стит помнить стандартные правила экпсортирования в golang что экспортируються только объекты которые начинаются с заглавной буквы.
к примеру
type Service struct {
}
func GetServices(): []Service {
}
Теперь будут доступны как
service.GetServices() и service.Service{}
А по поводу моделек, вообще глянь доку по gorm как они рекомендуют экспортировать модели. Я бы сказал что они предлагают практический идеальную структуру проекта.