Size: a a a

2021 May 25

К🇦

Коала 🇦🇺 in Go-go!
Кто про что, кто про папку кто про менеджер пакетов?
источник

J

Johnny in Go-go!
Я изначально о структуре папок в проекте спрашивал
источник

KP

Kirill Penzin in Go-go!
Ну, я лично их пока не нашёл, всё более чем устраивает
источник

RL

Ragnar Lodbrok in Go-go!
А pkg/cmd - это какая структура папок?
источник

J

Johnny in Go-go!
источник

KP

Kirill Penzin in Go-go!
Надо было развернуть мысль. Не best practice — не является чем-то максимально принятым в сообществе. Да, используют. А ещё используют иные подходы и активно сравнивают.
источник

J

Johnny in Go-go!
И там холивар в репе
источник

RL

Ragnar Lodbrok in Go-go!
Так там нет структуры папок, кроме как "почти весь код в pkg засуньте". То есть, как внутри pkg структурировано, не сказано
источник

ДЛ

Дмитрий Лысенко... in Go-go!
Народ, порекомендуйте общую книгу по программированию, где бы объяснили о современных методиках и где их можно применить. Сейчас вот нахожусь в tour of go на function closures (пример с фибоначчи). Пример то я решил, хотя проще было через рекурсию сделать и поэтому не могу понять зачем оно надо.
источник

J

Johnny in Go-go!
А внутри по документации, я думаю. Типо одна папка - один пакет, ""what-is", not "can-do"" и т.д.. Вот только лично мне не очень нравится pkg в пути импорта, вот и спрашивал, может кто альтернативу скажет. Хотя сейчас понял, что в первоначальном вопросе немного т'плое с мягким перепутал
источник

J

Johnny in Go-go!
Многие советуют "чистый код", но как по мне она тяжелая для понимания, "Паттерны проектирования" банды четырех (хоть она и не полностью применима в случае go). Ещё все хвалят "clean architecture" Мартина, но и эта не очень базовая. А по поводу closures, то в том примере суть что функция - переменная (first-class function) то бишь ты её можешь таскать за собой, она может иметь состояние (в примере фибоначи базовое состояние задаётся при первом вызове, когда лямбда создается, и меняется при последующих вызовах лямбды). Там лямбда является чистым примером command паттерна. Если где ошибся - поправьте
источник

RL

Ragnar Lodbrok in Go-go!
Надо делать без pkg
Что нельзя экспортировать в другие проекты, лежит в /internal
Что можно экспортировать, лежит просто в корне проекта
источник

w

whoami in Go-go!
Структура и интерпретация компьютерных программ (SICP)
источник

J

Johnny in Go-go!
твою...
Выходит два лагеря: как в репе с pkg и как в статье (https:// eli. thegreenplace. net/2019/simple-go-project-layout-with-modules/)
(хоть на этот раз не сагрится бот?)
источник

ДЛ

Дмитрий Лысенко... in Go-go!
спасибо за рекомендации
источник

RL

Ragnar Lodbrok in Go-go!
Собственно в репе там был спор недавно, что с pkg не совсем верно, но многие повторяют за репой, потому что она называется golang-standarts, хотя не является стандартной для го
источник

J

Johnny in Go-go!
Но тогда встаёт вопро куда пихать всякие ямилы
источник

J

Johnny in Go-go!
Прихожу к мнению, что как в репе, но без pkg - наиболее правильный вариант (хотя тогда есть большой шанс запутаться где служебные, а где сурсы). Мож кто опрос закинет?
источник

DF

Durty Free in Go-go!
Ну дык, тот лэйаут посмотрите. Там есть папка docs, понимаю что сваггер туда можно пристроить... pkg это исторически сложилось. А internal не всегда нужен.
источник

DF

Durty Free in Go-go!
https://www.zhashkevych.com/clean-architecture вот тут неплохо вроде, у него есть более свежий вариант, но и этот неплох.
источник