Верно ли то что в go нет конкретной структуры проекта?
Подскажите пожалуйста, действительно ли в go нет конкретной структуры проекта? То есть можно писать хоть все в main.go , хоть создавать папки как тебе хочется итд? Знаю про golang standard project-layout, но замечаю что у каждого по разному кто-то использует standard project-layout, кто-то нет и делает как сам захочет
loljapanes, хз, у нас в .NET тоже у всех структура разная.
В целом сколько проектов - столько и разных подходов, ибо не может быть одного универсального подхода, который для всех будет одинаково хорош.
loljapanes, в большинстве языков есть фреймворки, которые определяют структуру проекта. В Go фреймворками не принято пользоваться, из-за чего многие теряются.
Придерживайтесь project-layout.
Если пишете какой-то пакет, то можно вообще обойтись двумя файлами - сам пакет и тесты.
loljapanes, mux и gin это библиотеки. gin хоть и определяет себя как фреймворк, но если вы работали с фреймворками в Java или PHP, то понимаете почему это не так)
loljapanes, стройте приложение из библиотек как конструктор, придерживаясь project-layout. И все у вас будет в порядке.
В Go библиотеки (на сколько я понимаю) не могут тебе диктовать структуру проекта.
loljapanes, gin — это микрофреймворк в терминах других языков. Фрейморков уровня Django, которые пытаются вобрать в себя всё на свете, на го нет. mux — это вообще роутер, даже не микрофреймворк
конкретной структуры проекта нет вообще ни в каком языке.
конкретная структура может быть только при наличии соглашений, например, в конкретном фреймворке или собственном представлении o прекрасном.
да и ту можно (иногда и нужно) менять.
Кто как хочет, тот так и делает. Однородность структуры в некотором роде упрощает понимание что где находится.
Скажем, взять структуру проекта на фреймворке Ruby on Rails: любой новый разработчик, знакомый с RoR будет знать что где искать. Конфигурация в одном месте, модели в другом, миграции БД в третьем и т.д.
DevMan, ну если разработчик подсел на иглу maven или gradle то у него будте 99% одинаковая структура фолдеров. Я готов спорить на это. Просто наблюдая проекты в github. У разраба конечно будет опция - менять назначение фолдеров. Но он этого делать не будет. Вот отсюда и возникает типичная структура проекта.
mayton2019, сборщики типа maven/gradle могут предлагать "стандартную" структуру: convention over configuration. то есть "соглашения".
но, они именно предлагают, а не навязывают.
следовать или менять, каждый решает уже сам.