- 1
if (tableOfVariables[i].Name == "replace".ToUpper())
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
if (tableOfVariables[i].Name == "replace".ToUpper())
)))00
Кстати, в джаве регулярно встречаю такой код
Всё просто и понятно. Никакой блядь ненужной интерпрайзной хуйни, которая тормозит
В языках без оной используют кодогенерацию.
В острых сях под точка сеть я бы взял
https://docs.microsoft.com/en-us/dotnet/api/system.xml.serialization.xmlserializer?view=netframework-4.8
Известно какие типы должны быть в Json из типов в коде - типизация и проверка типов есть.
Также можно проверить каких в Json полей нет.
Что ещё нужно?
В этом API можно по сети (допустим, через HTTP) передать структуру с сорока двумя полями.
Ты пишешь клиент этого дела на Java.
В случае JSON тебе придется написать объект с 42 полями вручную и сериализовать его в JSON.
Если у тебя такой пиздец как в примере выше, то тебе придется написать 84 строчки бойлерплейта.
Если ты возьмешь нормальный сериализатор, то придется написать всего 42 строчки: по одной на каждое поле.
Если же бы я использовал XML, то я описал бы свой класс в C#, затем сгенерировал бы по нему схему (это такой XML документ с описанием всех полей) и передал бы его тебе.
Ты по нему сгенерировал бы себе готовый класс, и писать тебе ничего не пришлось бы вообще.
В XML есть схема и утилиты для генерации по ней клиентов.
В JSON таких инструментов нет.
2. На уровне языка DTO высрать реально.
2. нет (если это не JavaScript).
Хочешь доказать, что я обосрался?
Это очень просто: покажи хотя-бы один сервис, у которого есть схема, и тулу, с помощью которой я могу сгенерировать клиентский прокси класс для C# или Java.
2. https://lmgtfy.com/?q=java+json+dto
>November 22, 2010
>Expires: May 26, 2011
спасибо. А есть какой-то более солидный стандарт? что-то, что не драфт, и не протухло 10 лет назад?
1. спасибо. А как мне схему-то скачать?
2. спасибо, удалось найти тулу
http://www.jsonschema2pojo.org/
Скачал схему для примера из педивикии, вроде что-то генерит
Я првда так и не понял, кто эту схему дает
По твоей ссылке я так и не понял, как ее скачать
1. В глаза ебемся?
JSON Schema Description
2. Вторая ссылка https://stackoverflow.com/questions/40216700/how-to-map-given-json-to-dto
Это то что ты хотел?
1. действительно, грешу этим. Дизайнеру этого веб-сайта нужно отпилить руки, но с пятой попытки я всё таки нашел.
Осталось понять:
A. Как сгенерить схему по прокси-классу?
B. Какова хуя так мало людей этим пользуется?
2. Он и написан вручную. А как ты хотел?
>B. Какова хуя так мало людей этим пользуется?
Чем?
2. Я хотел, чтобы автор сервиса описал класс, потом тулой сгенерировал по нему схему, и отдал клиенту. А клиент тулой по схеме сгенерировал класс.
3. JSON схемами
3. Эм хз. Их вообще можно сгенерировать из жысона? Для языков со статической типизацией - вещь, но ее задолбешься генерить. А может для твоего сценария уже есть что-то вроде ICE.
https://docs.microsoft.com/en-us/dotnet/api/system.text.json.jsonserializer.serialize?view=netcore-3.0
Писать одно и тоже знание три раза в разных местах это плохо на ЛЮБОМ языке программирования, кмк
Допустим у нас так:
Ты хочешь, чтобы вызов make_json(unskilled) генерировал что-то типа {"name": "Анскильный", "iq": 30}. Для этого придётся использовать либо RTTI (царям не понравится, ибо эта анскильная питушня засоряет оперативку), либо генератор кода (цари это сделают мокросами, но мокросы — это зло).
Я хочу, чтобы была некая модель (пусть на любом языке) из которой должны генерироваться и сишкин код, и код для его сериализации.
Или например IDLи как у COM или как там было у Corba или winmd (как у современной винды)
в других языках можем. JS, Python, Java, C# (рефлексией правда), Ko, Perl можем
А как это выглядит на Java и на C#?
ну и там можно по ним итерироваться
https://www.logicbig.com/how-to/code-snippets/jcode-java-introspector.html
Дискотека 2000-ых, XML, доткомы, чеки от Yahoo
https://www.youtube.com/watch?v=pcr8kBeA_kE