Aleksandr
смотрел docdown для перевода doc.go в readme не впечатлило
Artem
Artem
Aleksandr
@vetcher а вы хостите документацию по приватному проекту в облаке? Или в ридми пишете про запуск сервера с докой (godoc -http...)
Andrey
Парни, привет. Есть вот такой примерчик https://play.golang.org/p/JhgLHv7zUJP
Могу я как-то в prepareNewID2 сделать то, что там описал?)
Andrey
Возможно, конечно, что я хочу странного. Но вот есть такой вопрос. Я немного плаваю в этом
Daniel
а почему вы там Cacher получаете, а не *MemCache
Andrey
Хм, вот так? func prepareNewID2(c *MemCache) {
newMemCache := MemCache{ID: 40}
*c = newMemCache
}
Andrey
Сейчас посмотрю, насколько это ко мне применимо. Возможно, просто загнался
Andrey
Но это в какой-то момент мне надо будет разветвляться в зависимости от реализации интефейса и для каждой реализации свои функции делать
Daniel
смотрите
Andrey
А этого как раз хотелось бы избежать
Daniel
если две структуры у вас совпадают абсолютно - можно их присваивать одну другой
Daniel
а если не абсолютно - только копирование по полям
Andrey
Сек, опишу пару строк более конкретно
Subbotin
Andrey
Хотя быстро не получится, надо будет сейчас еще про себя все пройти разок)
Andrey
Возможно, способ с разветвлением по конкретным реализация для меня будет достаточным (хоть и не очень красивым)
Daniel
Subbotin
А. Так да
Daniel
а как еще
Daniel
но если нет полного совпадения - конверсия не пройдет
Daniel
даже если порядок полей другой
Daniel
это имплицитная была бы конверсия, а она зашквар
Subbotin
Во всяком случая я так понял фразу про приравнивание и офигел
Konstantin
Daniel
Konstantin
👌
Anonymous
Aleksandr
Хотел бы еще мнение послушать косательно "Всем привет, разбирался ли кто с godoc ? Какой bestway для документирования проекта? У golang в некоторых cmd/...... и readme.md есть и doc.go.. Не хочется вести документацию в двух разных файлах, или там иной смысл?"
Anonymous
Pawel
Daniel
мой ответ - structlog, и логировать ошибку на каждом уровне, где она пробрасывается выше
Daniel
и стектрейс, и лог
Daniel
но я осознаю, что мой путь - маргинальный
.
Допустим есть у нас пул БД. как архитектурно предпочтительнее: инициализировать в мейне и пробрасывать указатель сквозь слои, либо же инициализировать в переменной в отдельном пакете и импортировать где надо?
Daniel
архитектурно предпочтительнее пробрасывать
Daniel
это делает очевидным использование db в том или ином модуле
Pawel
Daniel
ага
p0rsche
такой вопрос - есть у меня воркеры, спавнят процессы. Их количество заранее неизвестно, но между процессами передают контекст. Если остановить пул, спавненные процессы не помирают, нужно их убивать отдельно. Вопрос: какой механизм синхронизации добавить в контекст, чтобы внутри кода исполнения процесса слушать его и при появлении там, скажем, сигнала, рубить процесс?
p0rsche
я не совсем догоняю, как "расшарить" один канал на неизвестное количество воркеров, и чтобы каждый из этих воркеров слушал его, и при появлении определенного сигнала (или, скажем, при закрытии канала) исполнялся бы код\
Daniel
что такое "процессы"?
p0rsche
внешние по отношению к Go процессы, системные
p0rsche
не горутины
p0rsche
но сами воркеры работают внутри горутины
Daniel
тогда туда вы канал не расшарите никак
p0rsche
туда нет, но в горутину же можно
Daniel
но если этот системные процессы - система сама прибьет их при убийстве родителя
Daniel
если они detach не сделали, конечно
p0rsche
я скрестил gocraft/work для очередей и go-cmd/cmd для спавна процессов
Pavel
p0rsche
получается, пул я могу остановить, но вот отспавненные процессы продолжают работать
p0rsche
sync.Cond
тоже смотрел туда, а есть пример?
Pavel
в доке есть пример, вроде
p0rsche
Once
Pool
WaitGroup
p0rsche
загуглю
🏁Александр
я вот все в сомнениях
🏁Александр
dao держать каждую сущность отдельно или в общем пакете dao_имябд
🏁Александр
с точки зрения:
* тестирования
* архитектуры (что бы не получить циклическую зависимость)
Me
Джентс, какую либу посоветуете для веб скрепинга а-ля bs4 ?
Me
Нужно заглянуть в табличку и проверить, что там есть значения
Это для мониторинга приложения
Artem
я вот все в сомнениях
ты вроде уже полгода все спрашиваешь про дао, но так и не закончил? сделай репами уже наконец
🏁Александр
я все еще не могу определиться 🙂
🏁Александр
и так и так пробывал
Daniel
коллега, подбросьте монетку
🏁Александр
да причем тут монетка
Daniel
раз вы не можете определиться - у вас просто не хватает знаний
🏁Александр
все таки у меня был вопрос как "религиозно правильно"
🏁Александр
Daniel
раз вам тут никто не отвечает - этих знаний нет ни у кого
Daniel
значит - надо просто идти вперед и набивать шишки
🏁Александр
🏁Александр
мне охото же "окончательную версию архитектуры"
Daniel
это заболевание профессиональное