Структуры моделей на go

Рейтинг: 0Ответов: 1Опубликовано: 11.06.2023

Свитчусь с шарпа на go. Если мой какой-то Service использует некоторые модели (к примеру, DTA-классы), я привык создавать рядом какую-нибудь папку Models и класть модели туда. Когда я пытаюсь провернуть что-то подобное на go, компилятор выражает свой протест. Отсюда 2 вопроса:

  1. Могу ли я вообще организовать файлы таким образом, например: файл с "сервисом" лежит в директории .\service, файл модели: .\service\models\defaultModel.go?
  2. В чем смысл помещать файлы модели рядом с сервисом? Их же может быть много, легко будет потеряться во всех файлах. Поделитесь из своей практики, как это принято организовывать

Ответы

▲ 0Принят

Создаёшь папку 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 как они рекомендуют экспортировать модели. Я бы сказал что они предлагают практический идеальную структуру проекта.