Daniel
я бы хотел обратить внимание публики на то, что json медленный не потому, что посимвольное чтение, а потому, что текстовый
engelbart
Получится невалидное сообщение передать
Nikolay
я бы хотел обратить внимание публики на то, что json медленный не потому, что посимвольное чтение, а потому, что текстовый
он медленный потому что такой формат если быть точнее, человекочитаемый как называют
Nikolay
Получится невалидное сообщение передать
если некорректно сериализовать то да, целостность данных проверятся на TCP поэтому транспорт гарантирует доставку и берет это на себя, а если сериализатор с ошибками то можно передать и не валидный вариант. Если говорим что сериализатор без ошибок то приедет все корректно - ровно то, что передано и превратится ровно в то, что передано после десериализации
engelbart
Второй вопрос, на клиенте js -ры, будут иметь проблемы его читать ?
Daniel
либы есть
Daniel
но он бинарный же
engelbart
А тулинг , ну типа там курлом послать ?
Nikolay
Второй вопрос, на клиенте js -ры, будут иметь проблемы его читать ?
js в браузере если то msgpack проигрывает серьезно по производительности
engelbart
А проверить сообщение на соответствие схемы ? Пусть после чтения в буфер.
Nikolay
А проверить сообщение на соответствие схемы ? Пусть после чтения в буфер.
давай по простому - mspack это альтернатива json. более компактная за счет бинарного представления и годится для потоковых передач по сети за счет своего формата и самое главное он более быстрый опять же из-за формата и более компактного представления. все остальное как с json, только он не человеко читаемый и забросить его по http курлом задача не такая простая как с json. API работы обычно совпадает с привычной работой с JSON во многих реализациях. В msgpack есть зарезервированные байты для реализации собственных типов - я брал описывал в одной задачке все свои типы прям в сериализаторе и гонял по сети очень быстро, соотвественно в процессе десериализации сразу валидировался формат, который приехал - все типы были жестко описаны и это покрывало все возможные потребности по этой задачке на 10 лет вперед
engelbart
Я понял, спасибо.
Nikolay
стандартные типы а-ля словарь или массив идут из коробки
Nikolay
чуть сложнее описывал ручками там прям
engelbart
Получается что простым смертным у которых прблемы быстродействия нет, геморроится незачем.
Nikolay
а смысл гемороя если его и так нет?) решать проблемы нужно по ходу их поступления. А вот если заранее известно что данных будет дохрена и нагрузка будет большая то лучше гемороится сразу под это дело, что я собстно и делал
Daniel
я проводил микробенчмарки
Daniel
там выигрыш не так уж и велик
Nikolay
а я проводил реальные замеры JSON vs msgpack - в msgpack на ядро не самого быстрого ксеона ложилось порядка 2,5 гигабит, json рядом не стоял от слова совсем
Daniel
сильно зависит от данных, я подозреваю
Daniel
числовые должны быстрее текстовых быть
Nikolay
числовые быстрые + представление чисел с фиксированной точкой пришлось писать самому для msgpack, через строки гнать не эффективно было
Nikolay
но там и строки и числа и даты и булево - все вперемешку скажем так, наборы данных очень разнятся
Daniel
ну на моих данных я получил 50% выигрыша на msgpack
Nikolay
2.5 гигабита привел на основании загрузки интерфейса - так было проще проверять и смотреть на живых данных, ну скачет оно в пределах 20% в две стороны ну ничего страшного
Daniel
на фоне потребления ssl оказалось несущественно
Nikolay
ну ssl и так понятно что добавляет своего.
Daniel
он добавляет так, что полный привет
Daniel
мне не удалось принять больше 500 ssl сессий в секунду на ядро. на этом фоне проблемы json меня перестали беспокоить
Vladimir
кроме msgpack'а еще есть protobuf :)
Nikolay
кроме msgpack'а еще есть protobuf :)
угу, отличный формат - работал с ним на одной прикольной задачке с кучей микросервисов, мне понравился. есть определенные неудобства конечно небольшие, но зато все явно.
Nikolay
вот не удалось ни разу flatbuffers и capnproto в проде поюзать из интересных мне
Nikolay
Просто msgpack какой-то уж совсем простой
верно. свою реализацию msgpack набросал с нуля за вечер с ходу, потом тюнинг конечно еще около недели грязного времени занял, чистого может часов 10, чтоб алокации лишние убрать и тд и тп
Vladimir
для го притом есть хороший форк родного - https://github.com/gogo/protobuf
Nikolay
угу, все видел, все пользовал, в тему погружался нормально с protobuf в части Go и других ЯП
Nikolay
https://github.com/graphql-go/graphql не пробовал никто использовать это в Go еще?
Oleg
Есть у кого программа на примете для построения UML с сорцов Go?
nvkv
UML с сорцов го?
nvkv
Really?
Oleg
UML с сорцов го?
Ну с сорцов C#, Джавы и прочего создает же)
An7on
Для grpc мб и есть чего
nvkv
1. А ничего, что в Го нет классов?
nvkv
2. А ничего, что UML это исчадье воспалённого ума, которое имеет практической ценности меньше, чем концерты Джастина Бибера?
Oleg
1. А ничего, что в Го нет классов?
Моему преподавателю глубоко по*уй будет:D
Oleg
Это универсальный ответ на первый и второй вопросы
nvkv
Прими мои искренние соболезнования, бро
Oleg
Дипломы в вузе
Oleg
адское говно
серёжа
https://github.com/grant/go-diagram Чем не устраивает?
Oleg
особенно по древним методам
Oleg
https://github.com/grant/go-diagram Чем не устраивает?
Уже неплохо, спасибо, гляну
серёжа
адское говно
Удваиваю
серёжа
Уже неплохо, спасибо, гляну
Первая ссылка в гугле, ну
Oleg
Первая ссылка в гугле, ну
Да я не гуглил, решил спросить мб есть знающие)
nvkv
я просто искренне не понимаю, как можно со структурного кода собрать UML
nvkv
UML изначально разрабатывался под ООП
nvkv
UML has been evolving since the second half of the 1990s and has its roots in the object-oriented methods developed in the late 1980s and early 1990s.
nvkv
смотрите вот, что про это говно в википедии написано
Oleg
я просто искренне не понимаю, как можно со структурного кода собрать UML
Чем структура с методами принципиально отличается от класса? :)
Oleg
наследованием?
Embedding тоже позволяет наследовать поля и методы :)
серёжа
Meh
nvkv
Embedding тоже позволяет наследовать поля и методы :)
embedding всё-таки отличается немножко
серёжа
UML-диаграмму нарисовать можно, тем не менее
серёжа
Блин, а мне же тоже наверняка придётся в дипломе это говно рисовать
Oleg
Блин, а мне же тоже наверняка придётся в дипломе это говно рисовать
сочувствую бро, у меня защита летом, и мне придется это говно рисовать)
Oleg
Так и у меня защита летом
👍🏻 мы в одинаковой жопе