@gogolang

Страница 1551 из 1630
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
Когда кто вообще использует инит и глобальные переменные?
Ld флаги пропихать, в частности версию билда

Vasiliy
13.10.2018
13:22:28
не важно, пусть будет файла

ISO/IEC 14496-12

Nikolay
13.10.2018
13:23:03
он допускает кастомные ветви, то есть расширемый
MsgPack допускает произвольную структуру документа

но это не значит, что ты будешь любое говно через него гонять

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 и как нетипизированные данные он вдруг в нужном формате запишет?

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

Daniel
13.10.2018
13:26:08
а они там известные заетйники

но

задача ваша какая?

Nikolay
13.10.2018
13:26:42
ок, как встречу кого-то из ISO, так и передам
ты серьезно не видишь разницу между “стандарт допускает произвольную структуру“ и “пересылкой абсолютно произвольных данных в реальном проекте”?

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

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

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

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
Но мир же не только из HTTP и JSON состоит )
использую Golang как затычку во все дырки , не использую рефлексию , не использую мапы , почти не использую интерфейсы

Nikolay
13.10.2018
13:37:34
Но мир же не только из HTTP и JSON состоит )
ага, есть еще msgpack, protobuf, avro, thrift

и все они базируются на типизированных схемах

даже для json есть jsonschema

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

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

у меня на оба вопроса ответ - нет

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

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

Vladimir
13.10.2018
13:47:20
Nikolay
13.10.2018
13:47:43
@Enchantner это нормально, я выберу этот вариант, если разработка займет в два раза меньше трудозатрат и не будет ощутимой разницы в производительности
я выберу вариант, где у меня не будет абсолютно произвольных структур, чтобы меня не убил следующий архитектор

и это офигенно сэкономит трудозатраты

статическая схема данных для того и придумана

Google
Vladimir
13.10.2018
13:48:59
ручками конечные автоматы писать?
могу показать аналогичный текст C++ особой разницы не будет, пора на вокзал

Alexander
13.10.2018
13:50:36
могу показать аналогичный текст C++ особой разницы не будет, пора на вокзал
Какая разница, на чём писать конечные автоматы, которые должны быть сгенерированны? В C++ хотя-бы буст спирит есть, в го же ничего.

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

перфоманс таких штук вполне поддается оптимизации

например приведение к интерфейсу и автогенерация

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

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

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
тесты - ок ) но у меня нет столько ресурсов на выполнение этой задачи, сейчас мне достаточно из спеки перенести структуру и я уверен что заработает, без тестов ))

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

напоминаю что структур - сотни

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 ну я думал ты ошибаешься и поправил )

Danil
13.10.2018
14:25:23
через bytes.Buffer?
мне на выходе нужно именно строку получить

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

Страница 1551 из 1630