🄽🄸🄺🄸🅃🄰
Daniel
не так
🄽🄸🄺🄸🅃🄰
ну да, catch может ловить точный тип а остальное мимо
Илья
обрабатываешь интересные тебе ошибки, или эскалируешь ошибку дальше
Илья
чего-же тут не так? :)
Dmitry
На текущий момент самый правильный путь кмк - смириться и надеяться что когда-нибудь у нас появится что-то типа Result из rust :)
Dmitry
🄽🄸🄺🄸🅃🄰
с ошибками придется четко писать
Daniel
чего-же тут не так? :)
ручной контроль раскрутки стека тут не так
Axm
"этот пес не кусается, он делает больно иначе"
Vladislav
На текущий момент самый правильный путь кмк - смириться и надеяться что когда-нибудь у нас появится что-то типа Result из rust :)
Тут как бы вполне обычные енамы с синтаксическим сахаром. Нужны просто енамы. Но для этого ещё дженерики не помешают.
Dmitry
Ну и паттерн-матчинг тоже
Daniel
енамы эмулируются на типизованных константах
Vladislav
енамы эмулируются на типизованных константах
Енамы бывают не только по множеству значений, но и по множеству типов.
Daniel
рили?!
Vladislav
https://doc.rust-lang.org/book/second-edition/ch06-01-defining-an-enum.html
Vladislav
Кстати, есть у кого идеи как различать после анмаршала json в Go отсутствие поля и поля со значением nil?
Vladislav
А то не хочу писать свой парсер.
Daniel
использовать поле-указатель
Vladislav
Ну при отсутствии поля там Нил. При значении nil json вроде тоже.
Vasily
Не самое красивое решение, но задачу решает
Alexey 〒.
分解物質
может есть у кого эта книга? https://www.ozon.ru/context/detail/id/1927500/
http://gen.lib.rus.ec/search.php?req=Практика+программирования
分解物質
хорошая книга
分解物質
а хорошие книги лучше читать в оригинале
Kirill
Всем привет Пишу систему очередей на go + redis Хочу реализовать бесконечные попытки извлечения элемента из списка и его обработку, если он не пустой Пока придумал только такой способ: https://play.golang.org/p/cfx_EUXdUO Подскажите, есть ли способы сделать лучше? Вечный цикл очень смущает 🙂
ceiling cat
о_о Он у тебя опрашивает редис без задержек?
Kirill
Да Я не могу использовать Pub/Sub, т.к. насколько понял история Pub’ов не сохраняется, а значит часть информации пропадет, если сервис, являющийся подписчиком, упадет
ceiling cat
А что такое Pub/Sub? Немного архитектурный вопрос: Чего кстати редис, а не голое соединение с сокетами?
Anonymous
Да Я не могу использовать Pub/Sub, т.к. насколько понял история Pub’ов не сохраняется, а значит часть информации пропадет, если сервис, являющийся подписчиком, упадет
хм, не понятно, почему когда Sub упадет, сообщения пропадут? Потеря информации по схеме Pub/Sub, по-моему, возможна только если Redis нежданчиком упадёт, до сохранения дампа на диск
Илья
я что-то сылшал неплохое про https://github.com/adjust/rmq, и да, проблему Pub/Sub опишите
Kirill
Только ставится слип с интервалом, который ты сам можешь выбрать
Kirill
Про Pub/Sub Я открыл две консоли с redis-cli В одной наопубликовал несколько записей, в другой подписался после этого Никаких оповещений из канала не получил При включенной подписке - новые оповещения, как и ожидается, видны Из увиденного сделал вывод, что Pub/Sub работает в реальном времени и нигде не хранит историю Может это и не так, но кодом пока что лениво проверять
Dmitry
Ну тк это pub/sub, а не MQ, всё правильно, не успел подписаться - не получил
Anonymous
Про Pub/Sub Я открыл две консоли с redis-cli В одной наопубликовал несколько записей, в другой подписался после этого Никаких оповещений из канала не получил При включенной подписке - новые оповещения, как и ожидается, видны Из увиденного сделал вывод, что Pub/Sub работает в реальном времени и нигде не хранит историю Может это и не так, но кодом пока что лениво проверять
мб запись просто в один ключ идёт? хотя по логике нужно в разные, это же типа очередь. Не должно быть такой связи по логике. Если сообщения публикуются в очередь, то их может хоть 100500 там накопиться, сколько RAM позволит, а когда подписчик(и) подключи(а)тся к работе, они эту очередь и обработают
Dmitry
Хотите очередь - попробуйте nsq. Я пока сам только присматриваюсь к нему, но то что он распределённый мне уже нравится
Anonymous
ну или покажите мне где чётко прописано, что Pub/Sub не может быть реализовано очередью, мб я неграмотный
Kirill
это деталь реализации, имхо
Не знаю при чем тут деталь реализации Эта штука работает не так, как мне нужно Остальное не интересует
Dmitry
ну или покажите мне где чётко прописано, что Pub/Sub не может быть реализовано очередью, мб я неграмотный
Реализовано то может быть, а вот очередь на pub/sub не может быть реализована просто так(нужно где-то хранить метки читателей сообщений из очереди - что вычитано, а что нет) и обычно это просто такой "event emitter"
Pawel
спасибо, я уже и на русише нашёл, могу скинуть если надо. книжка оч гут кстати
Pawel
если перевод хороший - однозначно надо
лана, я тебе завтра скину, у меня на работе торрент скачен, ща лень искать повторно
Anonymous
очередь на редисе это lpush + rpop
Anonymous
пабсаб хорош но это не очередь, а скорее паттерн обсервер но с распределенными подписчиками
Kirill
Anonymous
пабсаб хорош но это не очередь, а скорее паттерн обсервер но с распределенными подписчиками
ну вот разве паттерн обсервер не может быть очередью? или уже другой паттерн?
Anonymous
ну вот разве паттерн обсервер не может быть очередью? или уже другой паттерн?
в моем понимании: очередь - это нечто, что хранит сообщения в нее поставленные. эти сообщения могут быть запрошены воркером (или несколькими) пабсаб ничего не хранит, а отправляет данные тем, кто на них подписался. я не силен в паттернах, но помоему такая логика это паттерн обсервер - подписался - получил.
Alexey 〒.
Anonymous
В роскомнадзоре работаешь?)
не, я его побаиваюсь. Как-то пропал у меня интернет, звонил в поддержку - они мне назвали все мои домашние девайсы подключенные к сети, включая те, что за NAT`ом роутера... с тех пор не качаю "контрабанду")
Alexander
Дайте пожалуйста my.cnf разогнаной базы. (12 cores, 32 Gb RAM)
Anonymous
Alexander
Холиваром ТЗ не поменяешь
Ilya
Доброе утро! Товарищи, а sqlite3 при дефоолтных настройках автоматически поддерживает многопоточную работу, или же при каждом запросе она блокируется на время выполнения запроса?
Konstantin
Парни подскажите. мне нужно в pg получить detail ошибки бд это возможно?. в pq ошибку к типу приводил err.(*pq.Error)
Michael
тут у кого-то в rocks db данные рассыпались, в репо кокроача прилетают фиксы https://github.com/cockroachdb/cockroach/pull/18397 может кому будет интересным
Alexander
Grigoriy
👍🏻 спасибо
Да не за что. Только аккуратнее с ней, не стоит бездумно верить советам.
Alexander
чёрт. кому ж верить? :)
Grigoriy
Не, оно дело подсказывает, но не стоит копипастить все рекомендации, полезно иногда советы обгуглить и обдумать.
Anonymous
Мерль
[last news] How we use gRPC to build a client/server system in Go