Aleksandr
А зачем там опшн?
Aleksandr
Пишите как на сишарпе
Roman
ну уж нет
Hog
Shub
@fillpackart бомбанул статью. Рекламирую за него https://habr.com/ru/post/443466/
на первых абзацах хотел было написать “eto ya”, но потом пошло бухло, нытье и VS code и я все понял
Hog
формат такой
Ayrat
А мне понравилось. Люблю когда правдиво.
Hog
да. всё так.
Ayrat
Я думал я видел самые ужасные способы сериализации/десериализации в мире. Однако ж есть код который бьёт все мои рекорды охуевания. Орал в голос. До сих пор ору.
Ayrat
никогда так не делайте. Убейте того кто так делает.
Ayrat
как из говнорекорда на три строчки создать проблем на всю жизнь
x
И это в джете? 🤔
Ayrat
Компания большая, кода очень много, бывает разное
x
Может и мне пойти апплаиться 😂
Ayrat
Да изи, это как с лотерейным билетом - надо его купить хотя бы!
Ayrat
Конкретно этот говнометод ToJson/FromJson встречается повсеместно. Сжигать эти раковые клетки можно только вместе с носителями, т.к. вокруг багов сериализации уже навалили бизнес логикой плотным слоем.
Ayrat
То есть их нельзя просто убрать и сказать - а теперь переходим на Newtonsoft.Json например, потому что всё сломается
x
Кто же одобрял такие пул реквесты?
Ayrat
Кто же одобрял такие пул реквесты?
я не знаю, коду много лет.
x
Не более четырёх!
Ayrat
ну это дохуя, тех людей уже нет с нами!!11
Ayrat
(наверное)
Ayrat
я надеюсь
x
Чорт, я думал хоть на джете есть порядок и щастье
Shub
к сожалению
Ayrat
этот переход сути дела не меняет
он убирает необходимость мейнтейнить ВРУЧНУЮ эту ебанину при измениии типа
Shub
ты про reflection-based сериализацию?
x
Рефлекшон должен служить людям
Ayrat
Я б весь Marvel.Json сжёг вместе с авторами
Shub
есть положняк ее не использовать, т.к. просадка по производительности порядка 8-10 раз по внутренним бенчмаркам
Shub
Я б весь Marvel.Json сжёг вместе с авторами
это вообще-то копия FSharp.Data.Json
Shub
какие есть
Shub
Да ладно! Там 1 раз запускали что ли?
нормально там все запускали
Ayrat
это вообще-то копия FSharp.Data.Json
я заметил по багам в IDE, которая путает FSharp.Data.JsonValue и FSharp.Data.JsonValue
Shub
я заметил по багам в IDE, которая путает FSharp.Data.JsonValue и FSharp.Data.JsonValue
история такая: коре тим не хотел\не успевал\не мог добавить какую-то там фичу в FSharp.Data.Json
Shub
поэтому его скопировали локально.
x
нормально там все запускали
Тогда непонятно. Каждый раз тип заново что ли рефлексией разбирали
Shub
через пару лет фичу таки добавили
Ayrat
поэтому его скопировали локально.
оставив тот же неймспейс если чо
Shub
Тогда непонятно. Каждый раз тип заново что ли рефлексией разбирали
у нас миллионы типов и миллионы сериализаций
Shub
оставив тот же неймспейс если чо
кто сам без греха - пусть кинет в меня камнем
Shub
я лично тоже не пойму, в чем суть ручной сборки жсонов в $CURRENT_YEAR
Shub
“монадичность” мне тоже не аргумент
Shub
поэтому переезд с нашего Json на Newtonsoft “каноническим образом” (через Json.Linq) - это шило на мыло по сути.
Ayrat
у нас миллионы типов и миллионы сериализаций
тем не менее тот же батман изи пользуется ньютонсофтом. Это команда куда комитит Эрик, солнце наш, Тсарпалис. Он же на поддержке марвела, и он на хую вертел свою же говно либу Жсона
Shub
это не его либа
Ayrat
ну похуй, он в марвеле
Ayrat
я к тому что это прохладно слушать что рефлекшн бейзд сериализация медленная
Ayrat
там же всё кешируется после первого раза
x
Вот и я не пойму, что ж там за бенчмарки
x
Может все разрушают перед следующим запуском?
Ayrat
Ну ладно, это всё такое.
Shub
Может все разрушают перед следующим запуском?
я смотрел код, никакого криминала не нашел. все прогревается, ничего не уничтожается. тем не менее, рефлекшн-бейзд медленнее linq
x
я смотрел код, никакого криминала не нашел. все прогревается, ничего не уничтожается. тем не менее, рефлекшн-бейзд медленнее linq
А можно для тех кто в танке, что с чем сравнивается? Я думал сериализатор на рефлекшене с ручным выпиливанием сериализационного кода
Shub
сравнивается Newtonsoft, сам с собой
Shub
Serialize\DeserializeObject с конструированием объектов вручную с помощью JObject и присные из Newtonsoft.Json.Linq
Shub
проблема второго подхода в том, что у нас есть типы с полсотней полей, в буквальном смысле слова
Ayrat
Я на досуге сам погоняю бенчи, чот мне сомнительно это всё. Ну точнее ньютонсофт скорее всего будет медленнее, да, но есть же мать его за ногу другие сериализаторы.
Ayrat
тем более сейчас, когда мы дохуя всего читаем как голый byte[], вообще бы взять UTF8ToJson
Shub
так я не против
Shub
я бы вообще хотел какой-то аттрибут класса и писать кастомные методы сериализации только там, где требуется
Shub
пакет такой
Shub
https://en.wikipedia.org/wiki/Beamer_(LaTeX)
Андрей
https://en.wikipedia.org/wiki/Beamer_(LaTeX)
Ах латекс... а как же гифки-видюхи-анимации-переходы и вот это всё
Hog
это вообще-то копия FSharp.Data.Json
вот тока хотел про все эти json?prop написать. Но - я тут игрался с линейкой и получается, что FSharp.Data чуток побыстрее Newtonsoft. Не знаю, как так получается, правда...
Hog
тем более сейчас, когда мы дохуя всего читаем как голый byte[], вообще бы взять UTF8ToJson
вот этот тоже пемирил ленейкой - гист дома запилю через часа 3. вдруг пригодится
Shub
все есть
Hog
в Ревилах если чо формулы тоже можно в формате латеха писать
Hog
зато есть стили и можно править налету
Hog
покажи!
Vasily
Бля,я опять написал наркоманский код
Vasily
Билдеры- наше всё
Vasily
Осталось теперь простынок с рекордами нагенерить
Roman
@eglyph про тебя, оказывается, настолка классная есть. Cthulhu wars