Anonymous
🤦♂
другого слова не нашел 😊
🏁Александр
к темной стороне ведет это
Anonymous
не все так однозначно! Вопрос был поднят про TCP/IP не совсем это так , нужно думать о судьбе сокета
Anonymous
листенер не нужно а вот привязанный хандлер должен все за собой почистить и закрыть сокет на котором висит
Roman
https://github.com/golang/go/issues/22876 - Permission Genericity
кстати интересная тема которую я почему-то совсем пропустил
Dk
аэа
Dk
Я тут придумал архитектуру и у меня всё упёрлось в глобальные переменные. Их же нет, да?
Anonymous
Dk
Если я в пакете сделал var x, то этот x функция в том же пакете увидит?
Anonymous
да
Dk
Спасибо
Anonymous
она и в других увилит если будет var X
Anonymous
ну увлекаться глобальными не стоит (МИНИМУМ с контролем гонки за доступ к переменной)
Dk
Ну, у меня идея в инит создать 3 канала, загрузить типабд там же и запустить горутину как менеджер, которая будет работать через эти каналы
Anonymous
и при чем init не ясно😂
Anonymous
почуствуйте разницу .... задать параметры соединения с БД и создать коннект к БД
Dk
Ну я не стал пока бд прикручивать, сделал на json
Dk
Пока интерфейс проработаю, потом бд прикручу
Dk
поэтому "типабд"
Anonymous
все равно функциональные вещи не нужно прятать в init
Anonymous
эта привычка позволит вам быстрее ориентироваться в своем приложении , когда соурс будет измеряться сотнями килобайт
Dk
func init() {
session := make(sessions)
session.load(sessionfile)
}
у меня вес инит
Dk
Dk
просто хотел как можно раньше их инициализировать
Anonymous
молодец! У программера всегда 2 цели : написать код и не запутаться в своем коде!
Dk
А что там добавить в default?
Dk
не понял как
Dk
типа if <-tick?
Dk
sleep не будет спать, когда что-то в канал придёт разве?
Dk
ну, так мне кажется лучше
Anonymous
но позволяет к асинхронной логике case-В добавлять поступательную логику
Dk
Сделал, понял. Неужели так дорого? И сколько наносекунд ставить?
Dk
т.е. можно не вставлять?
Anonymous
нет не буду советовать сам должен к какой то мысли прийти
Dk
Ну, я сделал выводы
Anonymous
пища для размышлялок! Тикер - корректное решение но не единственное
Dk
На сегодня всё. Спасибо за помощь
Anonymous
Altay unstppbl
Кто как хранит state юзера в телеграм боте?
Altay unstppbl
Redis? Cache?
🎉
Вот это юзал https://github.com/muesli/cache2go
Artem
Ничего нельзя забивать, нужно все завершать штатно при поступлении сигнала, называется graceful shutdown и в интернетах есть видосы про него. Если просто забить, то ты не знаешь в каком состоянии остаётся приложение: мб там останется не закрытая транзакция к базе которая повиснет там
ThunderAL
помогите: мне надо показать юзеру видео с ютуба без звука
решил юзать github.com/zserge/webview
вставляю html через webview.Settings{URL:url.PathEscape("<iframe .....")}
на windows не отображается само видео, хотя любой другой html отображает и даже видно, что под фрейм выделено место, но видео не работает
что не так может быть?
ThunderAL
ну, решение было таким: надо было всего создать временный файл и открывать его
Pavel
Artem
Pavel
это не важно -- целостность данных не будет нарушена
Artem
Для одной бд - мб и нет, а для всей системы конечно же да
Pavel
если в системе много источников данных (аля много транзакций в разные базы) -- то, если ты пишешь приложение исходя из того, что данные всегда целостны -- ну это...
Pavel
битые данные в таких системах -- это штатное состояние должно быть
Pavel
в общем, я не говорю, что грейсфул шатдаун -- плохо, но опять же -- никто не гарантирует, что он выполнится
Artem
Офк нет, но это полезно, что б не обрывать процессы, а завершить и штатно
Pavel
полезно, но смысла большого нет
Pavel
с таким же успехом можно забить 🙂
Daniel
Для начала - не надо создавать подключения в init
.
Вы валидируете входящие данные запроса, которые не идут на запись в базу? Так как я повсюду использую подобные конструкции как на скрине, а регулярки ну очень дорогие
.
Daniel
Daniel
.
Это зачем?
Валидировать только те что будут записываться?
Lucky
отказался от подключения в инит для удобства тестирования, настраиваю там конфиги
Daniel
Misha
Всем доброго времени суток. Использую gin, нужно вызвать шаблон внутри другого шаблона. Такое чувство, что gin это игнорирует. Загружаю шаблоны глобально на engine. Что с этим сделать?
elton
мужики, сори новичек, есть ли в го интерактивная оболочка
Roman
Nikita
неа
Viktor
Nikita
gotk3?
то байдинги к гтк, а ему надо repl
Viktor
Roman
@onokonem
func TakeSlice(s const? []int) s const? []int {
s[0] = 12 // Compile-time error
s[0] // reading is okay
return s
}
immutability genericity как решение const poisoning
Michael
что за ругань
Daniel
я не понимаю, зачем const в возврате
Daniel
зачем в параметре - понимаю
🏁Александр
а это гоу или что?
🏁Александр
что-то я запутался
Daniel
это пропозал
🏁Александр