
Vasiliy
13.10.2018
13:19:51
там есть кастомные ветви
реализации структур ветвей поступают от третьих лиц

Vladimir
13.10.2018
13:20:15
сериализация? Мать мать ... это откуда табурет уж не с С++??

Nikolay
13.10.2018
13:20:20
я с ним не работал, MsgPack сойдет как альтернатива?

Google

Vasiliy
13.10.2018
13:20:31
нет

Daniel
13.10.2018
13:20:36
почему?

Nikolay
13.10.2018
13:21:04
ну просто когда ты используешь протокол - ты на двух концах устанавливаешь соглашение о формате
если этого соглашения нет - то ты что-то не то делаешь

Vasiliy
13.10.2018
13:21:37
формат определен, в стандарте ISO
он допускает кастомные ветви, то есть расширемый

Daniel
13.10.2018
13:22:15
а о формате чего идет речь?
и в каком стандарте он определен?

Artem
13.10.2018
13:22:27

Vasiliy
13.10.2018
13:22:28
не важно, пусть будет файла
ISO/IEC 14496-12

Nikolay
13.10.2018
13:23:03
но это не значит, что ты будешь любое говно через него гонять

Google

Nikolay
13.10.2018
13:23:20
нетипизированное

Daniel
13.10.2018
13:24:12
Когда кто вообще использует инит и глобальные переменные?
я люблю синглтоны и пользуюсь ими не стесяняясь.
а init(), по-моему, только вокруг прометеевских метрик, потому, что им register надо сделать.
и то - от лени, можно было бы слабать функцию, которая и метрику строит, и регистрирует ее, и возвращает

Vasiliy
13.10.2018
13:24:24
@Enchantner и как нетипизированные данные он вдруг в нужном формате запишет?

Nikolay
13.10.2018
13:24:33
у тебя не может быть ВООБЩЕ произвольной структуры
если такое возникает, то архитектура - говно

Vasiliy
13.10.2018
13:25:28
ок, как встречу кого-то из ISO, так и передам

Daniel
13.10.2018
13:26:08
а они там известные заетйники
но
задача ваша какая?

Nikolay
13.10.2018
13:26:42

Vasiliy
13.10.2018
13:29:56
Я не говорю о возможностях передавать или не передавать. Еще раз вернусь к теме спора. Ты рассуждаешь что все кто юзает рефлексию - по дефолту нубы. Я же говорю что цель - это функция и не важно использует ли она рефлексию или нет если выполняются все требования: простой и чистый код, есть огромный запас по вычислительной емкости.

Nikolay
13.10.2018
13:30:19

Vasiliy
13.10.2018
13:30:32
Ну ты говорил что они не знают го

Nikolay
13.10.2018
13:30:49
я говорил, что надо сто раз подумать перед тем, как начинать его юзать, потому что это из рук вон редкий юзкейс

Vladimir
13.10.2018
13:31:05

Nikolay
13.10.2018
13:31:13

Vasiliy
13.10.2018
13:33:07
Ну тогда не честно эти рассуждения ко всем применять, согласен? )

Nikolay
13.10.2018
13:33:40

Google

Nikolay
13.10.2018
13:34:01
я только попросил привезти юзкейс реальный, потому что, имхо, это прям редкость-редкость
и парсинг “произвольного” бинарного формата - это хреновый юзкейс, потому что это проблема архитектуры, если такая задача вообще возникает

Vasiliy
13.10.2018
13:36:10
Но мир же не только из HTTP и JSON состоит )

Vladimir
13.10.2018
13:37:27

Nikolay
13.10.2018
13:37:34
и все они базируются на типизированных схемах
даже для json есть jsonschema

Vasiliy
13.10.2018
13:41:26
да, сложно спорить с тем кто не концентрируется на основном вопросе, а видит слово - ищет повод, ну или картинку в гугле

Nikolay
13.10.2018
13:42:15
основной вопрос - “нормально ли в реальной системе пересылать абсолютно нетипизированные данные между компонентами и использовать для их парсинга рефлект?”
у меня на оба вопроса ответ - нет

Alexander
13.10.2018
13:44:08
/sarcasm

Vladimir
13.10.2018
13:45:43
пока в москве ....как только вернусь домой сделаю снифер и примером покажу как отражать UDP TCP ICMP пакеты с парсингом основных параметров без рефлексий

Nikolay
13.10.2018
13:46:57

Vasiliy
13.10.2018
13:46:57
@Enchantner это нормально, я выберу этот вариант, если разработка займет в два раза меньше трудозатрат и не будет ощутимой разницы в производительности

Vladimir
13.10.2018
13:47:20

Nikolay
13.10.2018
13:47:43
и это офигенно сэкономит трудозатраты
статическая схема данных для того и придумана

Google

Alexander
13.10.2018
13:48:07

Vladimir
13.10.2018
13:48:59

Alexander
13.10.2018
13:50:36

Vasiliy
13.10.2018
13:50:45
@Enchantner а ты знаешь что в итоге код с рефлексией оказался - проще, понятнее и самое главное - без багов, потому что сам тип, наличие и порядок полей определяют способ сериализации
перфоманс таких штук вполне поддается оптимизации
например приведение к интерфейсу и автогенерация

Alexander
13.10.2018
13:52:06
не, велосипедостроение конечно помогает бороться с безработицей, но может лучше просто людям БОД платить?

Nikolay
13.10.2018
13:54:20

Vasiliy
13.10.2018
13:55:22
@Enchantner речь не про выбор языка, а применение рефлексии в задачах, опять фокус расплывается

Nikolay
13.10.2018
13:56:02

Vasiliy
13.10.2018
13:57:11
а что бы ты сделал? вот например у структуры есть штук 20 полей разных от uint8 до uint64 в определенном порядке
надо их упаковать в той последовательности как в структуре
напишешь руками MarshalBinary?
и какова вероятность допустить ошибку?
чем просто перебрать через рефлексию и написать генератор

Nikolay
13.10.2018
14:11:52

Vasiliy
13.10.2018
14:13:16
тесты - ок ) но у меня нет столько ресурсов на выполнение этой задачи, сейчас мне достаточно из спеки перенести структуру и я уверен что заработает, без тестов ))

Nikolay
13.10.2018
14:14:44

Google

Vasiliy
13.10.2018
14:15:17
но ты предлагаешь самостоятельно маршалить, следить за порядком и типом да еще и на все это тесты писать )
напоминаю что структур - сотни

Nikolay
13.10.2018
14:18:32

Vasiliy
13.10.2018
14:18:41
через рефлексию?
ну можно еще на ast

Nikolay
13.10.2018
14:19:02

Vasiliy
13.10.2018
14:19:31
это не протокол, это документ, но принципиальной разницы нет )

Nikolay
13.10.2018
14:19:41
через рефлексию?
нет, через инструментарий конкретный в каждом случае. Потому что спеки на формат уже должны писаться в нужном виде, который можно использовать, скажем, для кодогенерации
как и делает protobuf, например

Vasiliy
13.10.2018
14:20:44
я про документ не тот в котором спека написана ) а про документ, файл, который создает либа )
в нашем понимании документы не только текстовые и в ворде )

Nikolay
13.10.2018
14:21:33
перефразировать тезисы оппонента и пытаться их выдать, как возражение - это забавный способ ведения дискуссии ?

Danil
13.10.2018
14:24:07
Товарищи, дайте совет
есть две строки, одна строка состоит из англ символов, а другая из русских, как мне их правильно конкетировать?

Vasiliy
13.10.2018
14:24:33
@Enchantner ну я думал ты ошибаешься и поправил )

Nikolay
13.10.2018
14:24:52

Danil
13.10.2018
14:25:23

Nikolay
13.10.2018
14:25:41

Vasiliy
13.10.2018
14:25:51
@Enchantner эммм ) a+b то тебе чем не нравится? )