Илья
чтобы обновить файл деплоя
Grigorij
так он для этого ребайс и делает
leejoys
он в мастере обновился. я в мастер пулом забрал, теперь мне ребейз моей ветки на мастер надо
Null
📲 Потребление оперативной памяти в языке Go: проблемы и пути решения Смотреть @Golang_google
Максим
Прособеседуйте меня по приколу😂😂😂
Ну давай пара вопросов с телефонных скринингов: 1. что такое слайсы 2. оператором range по каким данным можно оперироваться 3. что такое defer, порядок выполнения если они вложенные
Alexander
📲 Потребление оперативной памяти в языке Go: проблемы и пути решения Смотреть @Golang_google
Короче, я не понял где там решения особо. Было немного теории и варианты как именно стопнуться при превышении лимита
Alexander
Обидно было
Максим
надо было Наде в ЛС писать тогда, а не в чат))))
Абылхайыр
Что значит вложенные?
Это если есть несколько точек выхода
Абылхайыр
Выполнится первый дефер у которого есть аргументы а дальше в оьратном порядке
Илья
какой вывод?)
Абылхайыр
Ошибка компляции + извращение
Абылхайыр
😂
Илья
Максим
надо просто запомнить,что defer hf,работает по LIFO
Максим
вот очень наглядный пример
Максим
https://go.dev/tour/flowcontrol/13
Максим
Это на джуна?
скорее на мидла/сеньора-помидора
Илья
https://go.dev/tour/flowcontrol/13
https://go.dev/play/p/xBi4JlmzWnk
Emin Zalaev
Emin Zalaev
От того что увидел
Emin Zalaev
Вывод паниковать
Emin Zalaev
А вывод программы 2
Emin Zalaev
Last in first out
Alexander
какой вывод?)
"Очень интересно. Я думаю в вашей компании можно многому научиться. Можно посмотреть как рандомный специалист это решает? "
Emin Zalaev
Я обычно сверху вниз смотрю
Максим
*LIFO
да, верно, я ошибся)
Максим
Спасибо, поправил.
Илья
вообще интересно что компилятор игнорирует defer recover() defer func() { defer func { recover() }() }()
Илья
и даже не пишет в govet об этом
Emin Zalaev
Типа код не доходит?
Илья
то есть твой recover может и не отработать
Emin Zalaev
Мы можем обрабатывать
Илья
Типа код не доходит?
нет, он просто скипает
Emin Zalaev
Возможно из за того что паник меньше чем обработок
Emin Zalaev
Ищет слабое звено
Илья
Ищет слабое звено
recover must be called directly by a deferred function
Илья
может стоит proposal написать?
Emin Zalaev
Сразу новый язык
Emin Zalaev
Ilyalang
Илья
*LIFO
почему?
xarakiri
почему?
https://go.dev/tour/flowcontrol/13
Илья
https://go.dev/tour/flowcontrol/13
так если Last in First Out, то должно быть от 1 до 9 или я путаю
xarakiri
Максим
fifo - очередь, первый зашел, первый ушел
Максим
я их тоже путаю постоянно
Илья
да, спасибо
Alexey
Друзья, а подскажите, что вот эта конструкция обозначает и где почитать подробнее ? `json:"name" binding:"required"` Это что-то типа сериализатора ?
Alexey
Emin Zalaev
https://blog.logrocket.com/gin-binding-in-go-a-tutorial-with-examples/
Alexey
понял, спс
Nadia
Прособеседуйте меня по приколу😂😂😂
😀😀😀😀 если бы это от меня зависело- с удовольствием! а так, меня уже скоро выгонят, за то, что мои кандидаты не проходят))))))
Сергей
всем привет, кому не лень, можете накидать какие архитектурные ошибки приложения в моем репозитории и указать критичные и некритичные моменты https://github.com/sku4/corrector? спасибо)
Andrey
всем привет, кому не лень, можете накидать какие архитектурные ошибки приложения в моем репозитории и указать критичные и некритичные моменты https://github.com/sku4/corrector? спасибо)
открыл ради праздного интереса посмотреть, NewClient(ctx context.Context, cfg *configs.Config) мне вот такие конструкторы не нравятся, cfg *configs.Config как по мне таких зависимостей не должно быть
Сергей
в хендлерах 2 контекста, почему?
на верхнем уровне в одном из них логгер засовываю
Сергей
я бы в мейне переделал работу с сигналами на signal.NotifyContext
на случай если на внутренних уровнях кто-то дернет cancel, чтобы приложение завершить?
Andrey
имеешь ввиду через интерфейс конфиги передавать?
нет, я имею в виду что модуль должен получать данные которые нужны для его работы явно, ты передаешь все конфиги, и что там лежит в конфигах не известно, и как это будет использоваться тоже не известно, если через конфиги передается много всего, то можно сделать структуру настроек самого модуля в этом же файле, если из конфигов мало что надо то прям в параметрах можно перечислить что надо
Andrey
на случай если на внутренних уровнях кто-то дернет cancel, чтобы приложение завершить?
если ты используешь для окончания программы сигнал, то тебе желательно пробросить контекст в низ по стеку программу, и все позакрывать
Andrey
на верхнем уровне в одном из них логгер засовываю
т.е. в одном контексте одни данные лежат. в другом контексте другие, и какие данные где знаешь только ты )
Andrey
прокидывай логер через gin.Context если хочется логер в контексте, но не делай 2 разных контекста с непонятным временем жизни, что бы в gin.Context что-то добавить обычно добавляют middleware и там добавляют что-то в контекст, и ты прям там можешь при добавлении логера добавить ему уже какие-то данные запроса, и тогда когда надо будет что-то залогировать то в логере уже будут нужные данные что бы разобраться что произошло
Andrey
правда gin.Context на сколько я помню появился раньше чем в go добавили интерфейс контекста, по этому он там кривоватый немного, и мы когда работали с джином, нам приходилось доставать контекст гошный из джиновского