Size: a a a

2020 July 28

MB

Max Block in Go-go!
Алексей Долгов
зачем в UserService посты, если там в нем методы типа Login(), Register(), UpdateProfile()?
в пакете user есть фунцкия Delete(userID), который удаляет юзера по его айди.
Но при удалении юзера, надо еще удалить все его посты. Для этого в post сделал функцию DeleteByUser(userID). Вот и получилась из пакета user вызов ф-ии пакета post.

Я еще в питоне намучан циклическими импортами, печаль это страшная. Но в питоне есть относительно легкие кастыли для решения этой проблемы.

Попробую сейчас все сделать в виде одного пакета service с кучей структур типа UserService, PostService — вроде как при таком подходе не будет этих циклических импортов
источник

ШН

Шерзод Немножко Токс... in Go-go!
Просто сильно глаза мозолит, чувство неполноценности когда вижу полоски под словами, выделения и прочее )
источник

АД

Алексей Долгов... in Go-go!
Шерзод Немножко Токсик
Просто сильно глаза мозолит, чувство неполноценности когда вижу полоски под словами, выделения и прочее )
так добавьте обработку ошибки. в логи писать например, как вариант
источник

DP

Daniel Podolsky in Go-go!
Ну вот разве что в логи. Но зачем?
источник

ШН

Шерзод Немножко Токс... in Go-go!
Спасибо, гоферы.
источник

АП

Александр Попов... in Go-go!
Max Block
в пакете user есть фунцкия Delete(userID), который удаляет юзера по его айди.
Но при удалении юзера, надо еще удалить все его посты. Для этого в post сделал функцию DeleteByUser(userID). Вот и получилась из пакета user вызов ф-ии пакета post.

Я еще в питоне намучан циклическими импортами, печаль это страшная. Но в питоне есть относительно легкие кастыли для решения этой проблемы.

Попробую сейчас все сделать в виде одного пакета service с кучей структур типа UserService, PostService — вроде как при таком подходе не будет этих циклических импортов
имхо лучше бы в одну сущность все обьеденить на уровне кода
источник

АД

Алексей Долгов... in Go-go!
Daniel Podolsky
Ну вот разве что в логи. Но зачем?
ну тут да, зависит от того критична ли ошибка для нас в kek.Puk(). если закрытие коннекшена какого-нибудь, может и не надо знать. хотя логи лишними не бывают.
источник

DP

Daniel Podolsky in Go-go!
Ещё как бывают
источник

МП

Мимо Проходящий... in Go-go!
Понять какие логи лишние какие нужны, какой уровень поставить для сообщения - одна из самых сложных задач в программировании. У меня с этим в всегда проблемы
источник

RS

Roman Sergheevich in Go-go!
Ребят не подскажите что-то на подобие pm2 для Go ?
источник

DP

Daniel Podolsky in Go-go!
pm2?
источник

МП

Мимо Проходящий... in Go-go!
Если всё подряд пихать в журнал и всё делать info, то потом читать такой журнал - ад
источник

N

Nazar in Go-go!
Roman Sergheevich
Ребят не подскажите что-то на подобие pm2 для Go ?
systemd units)
источник

AK

Anton Kucherov in Go-go!
Roman Sergheevich
Ребят не подскажите что-то на подобие pm2 для Go ?
А какую проблему вы хотите с помощью этого аналога решить?
источник

RS

Roman Sergheevich in Go-go!
Пока что не какую, просто интересно )
источник

AK

Anton Kucherov in Go-go!
Roman Sergheevich
Пока что не какую, просто интересно )
А с какой целью интересуетесь? Вы же не просто так pm2 используете в node.js приложениях. Просто возможно вам вообще не нужен аналоги и в go можно решить вашу задачу средствами языка
источник

И

Игорь in Go-go!
Мимо Проходящий
Если всё подряд пихать в журнал и всё делать info, то потом читать такой журнал - ад
Читать журнал - это пол беды. Я однажды отлаживал  один сервис с дикими просадками по производительности (rpm ~3000 и дальше лавинный эффект, в очередь запросы набивались быстрее чем их обслуживали).

Был удивлен когда понял, что проблема была именно в логах. Писали так много, что эта писанина занимала 80% времени. Не было разделения по уровню логгирования, все логи были считай уровня дебаг))
источник

И

Игорь in Go-go!
Поэтому, когда слышу "логов лишних не бывает" постоянно вспоминаю эту историю))
источник

VL

V L in Go-go!
Шерзод Немножко Токсик
Посоны, есть такой код (куча такого):

defer kek.Puk()

при этом kek.Puk() возвращает error

Нормально ли делать так: defer func() { _ = kek.Puk() }()?
P.S.: Я в курсе, что ошибки нужно проверять, а не скипать.
Вставлю свои пять копеек.
Чаще всего это Close и по сигнатуре он может вернуть ошибку. А в некоторых реализациях никогда не возвращает.
Я бы рекомендовал логировать как info, т.к. это не влияет на ход выполнения. Если в логах будет много такой ошибки, то это повод пересмотреть обработку этой ошибки и код вокруг, а не избавляться от логов.
источник

IK

Ilya Kaznacheev in Go-go!
Господа, а как правильно сделать конфиг, который можно менять у бегущего приложения?
источник