nvkv
телепортация в масло
One
в пейотный кактус
One
Алкоголя хочется, а в магазин идти лень... Шоделать?
nvkv
Для этого состояния есть определение
nvkv
"Бес лени победил беса винопития"
One
"Бес лени победил беса винопития"
я нехристь и пионером был, мне можно ;)
Slava
Друзья, может вам в канал шуток перейти?
nvkv
Схема обработки ошибок в го семантически ему эквивалентна, какбе
nvkv
Минус чейнинг, что плохо, конечно
Alexander 🐕
Oh no it’s retarded
nvkv
Oh no it’s retarded
Ты опять выходишь на связь!
Мерль
Схема обработки ошибок в го семантически ему эквивалентна, какбе
Почти так, но не совсем. Во первых, ничто не мешает возвратить из функций и значение и ошибку (и конечно же забыть прописать это в документации). Во-вторых, нельзя оборачивать функции друг в друга - хотя, честно говоря, это не слишком большая проблема. К тому же, передавать Result в канал как результат работы горутины было бы прельстиво и приятно, но нет же, будем хреначить через интерфейсы, костыльные структуры или два канала - для результата и для ошибок
Kirill
Люк, я твой атэц!
Глюк, я твой атэц!
Мерль
Бле, шутники
Kirill
утро в хату
nvkv
говорю же, го — ужасный язык
nvkv
не для умных
One
утро в хату
здарова, сюслик )
nvkv
для трудолюбивых
🏳️ Phil
Филип, я вот от природы туповат. Я могу в 9 местах поправить, а в 10 забыть
Я тоже туповат. И мой кейс - изменения нужны в 9 местах из 10, а вот это одно я зыбываю. Это реальные совершенно проблемы. А поправить в 10 местах - заодно вспомнишь как оно работает. Если это реально повторябющаяся логика - непонятно почему она у тебя в функцию не оформлена
🏳️ Phil
Что такое гороутина?
Подозреваю, что функция, с записью структуры указателя в реестр в рантайме. Надо посмотреть кстати в код
nvkv
Это кстати уже ближе к лимбо ))))
лимбо не взлетел, к сожалению
nvkv
а вот хадуп взлетел
🏳️ Phil
Я уж не говорю о бесконечных interface{}, которые нужно кастовать, когда работаешь с не нативными контейнерами(либо приходится городить кодогенератор). Хотя нет, даже в гребаном контексте надо кастовать типы!
Я кстати не совсем понимаю зачем это повальное interface{}. Всё что я видел - это попытка впихать невпихуемое и абстрагировать формат структур между функциональными частями. Т.е. что-то делали не так
🏳️ Phil
лимбо не взлетел, к сожалению
Ну тип того. А Alef взлетел )
engelbart
Ну вот у меня вчера задача была, парсить динамические структуры, без interface{} не обошлось
nvkv
есть слайс с произвольным типом данных внутри
nvkv
нужно отфильтровать его произвольным предикатом
nvkv
попробуй это сделать без interface{} и без бесконечного копипаста
🏳️ Phil
нужно отфильтровать его произвольным предикатом
Папа, ты сейчас с кем разговаривал?
🏳️ Phil
Ну вот у меня вчера задача была, парсить динамические структуры, без interface{} не обошлось
Напомни задачу, в которой потредбовались динамические структуры
🏳️ Phil
Напомни задачу, в которой потредбовались динамические структуры
Если предположить, что такая задача неизбежна, то почему в ней - мне понятно
engelbart
снаружи пришли данные в виде php serialize
🏳️ Phil
снаружи пришли данные в виде php serialize
Да причем тут откуда пришли. Как так получилось, что они динамические? В чем динамика?
Мерль
Напомни задачу, в которой потредбовались динамические структуры
Если тебе приходят jsinы с динамической структурой. Если тебе нужно строить какие-нибудь графы-деревья. Если тебе хочется десериализации без кувыркания с рефлексией
🏳️ Phil
Если тебе приходят jsinы с динамической структурой. Если тебе нужно строить какие-нибудь графы-деревья. Если тебе хочется десериализации без кувыркания с рефлексией
1. Зачем ко мне приходят динамические джсоны? Насколько они динамические, что нельзя подогнать структуры? В чем проблема дерева? 2. Ну а чем рефлексия плоха? Думаешь у какого-нибудь питона под капотом чтото другое?
nvkv
1. Вопрос адресованный женщине по поводу её возраста
nvkv
2. Вопрос "почему ко мне приходят такие данные"
nvkv
Рефлексия плоха тем, что она усложняет понимание происходящего
nvkv
как гримуар читаешь
nvkv
"Абракадабра! И появляется левая нога мёртвого кота-альбиноса"
🏳️ Phil
2. Вопрос "почему ко мне приходят такие данные"
Очевидно, что этот вопрос выглядит как "ты же все равно знаешь какие данные ты ожидаешь". Ты же не волшебник и не можешь обработать структры о которых ты не знаешь
Anonymous
ну как сказать
nvkv
это не просто возможно, это ещё и довольно часто случается
engelbart
Но надо признать что рядом с реальным миром есть и мир с единорогами.
engelbart
Там всегда знают какие данные, там всегда запас по машинам и памяти, и там неудобные задачи просто отказываются решать.
engelbart
Вот спорить с такими сложно, что тут поделаешь. Дайте ему не тот json и он уже поменял работу.
engelbart
И снова коммент про реальный мир. Не тот что в смузи-кофейнях, а как оно прямо на этой земле.
🏳️ Phil
И снова коммент про реальный мир. Не тот что в смузи-кофейнях, а как оно прямо на этой земле.
Не понимаю в чем проблема. Мы сейчас мусолим способ обработки данных. Закинешь ты его в какие-то струкутры "на всякий случай" или просто не обработаешь.
Мерль
Не понимаю в чем проблема. Мы сейчас мусолим способ обработки данных. Закинешь ты его в какие-то струкутры "на всякий случай" или просто не обработаешь.
В реальном мире вполне существуют API, которые отдают динамические структуры и решать эти проблемы административно никаких яйц не хватит, особенно у джуна. Это раз. Во-вторых, ограничения языка как раз стимулируют костылестроение в виде всяких наколеночных генераторов и уродливых интерфейсов. Это два.
nvkv
в смысле нытьё тут неуместно?
nvkv
на свете полно языков, которые позволяют тебе работать с такими данными
nvkv
без костылей
Daniel
например?
nvkv
<irony>руби</irony>
nvkv
а вообще любой, где есть аппликативные парсеры
Мерль
Мерль
Не, я не спорю, можно и без этих всех изысков. Просто это как аргументы js-еров - типизация не нужна, пушто есть юнит тесты. Ведь делать работу за компилятор - это так увлекательно , ага
engelbart
Да мы ж разве против компиляторов то. как бы мы здесь оказались то.
nvkv
solvedIncidents := 0 for _, incident := range incidents { if incident.IsClosed() { solvedIncidents++ } } вот ну как так-то? solvedIncidents = incidents.filter((incident) => incident.isClosed()).count()
Alexander 🐕
Блажен муж, иже не иде на совет нечестивых
Yehor
варвары, кыш отсюда
😜
https://twitter.com/rob_pike/status/835313898815283201
Мерль
go-callvis is a development tool to help visualize call graph of your Go program using Graphviz's dot format. https://github.com/TrueFurby/go-callvis
Yehor
Нужная вещь
Мерль
@onokonem https://habrahabr.ru/post/322532/
engelbart
Кстати я прочёл, все норм, но не особо отвечает как мне кажется.