powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Семантика Yaml документа.
25 сообщений из 94, страница 2 из 4
Семантика Yaml документа.
    #39953194
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

Сравните с количеством примитивов в XML

3.2.1 string
3.2.2 boolean
3.2.3 decimal
3.2.4 float
3.2.5 double
3.2.6 duration
3.2.7 dateTime
3.2.8 time
3.2.9 date

Да. Мы когда работали с семантическим вебом (RDF/Xml) из всего этого разнообразия использовали штук 7 типов.
Остальные не пригодились никогда. Вообще для Json пожалуй не хватает только стандартного типа даты-времени.
А так... 80% потребностей он покрывает.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953223
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций.
Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток.


Если говорить за аналогии.
То xml - это реализация модели OSI.
А json как раз это TCP/IP.

<:o)
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953224
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulВ этом и прелесть json. Там всего три типа.
И его всегда можно распарсить однозначно в "объект", "массив" или "строку".

Мне иногда в json не хватает простейших вещей. Например камент написать.
Код: python
1.
2.
3.
4.
5.
6.
# Edited 4/30/2020 mayton
person:
  name: Mike
  secondname: Thomson
  occupation: programmer
  age: 23


Опять-же. Синтаксис завел обязательным двойные кавычки даже в тех случаях когда они не нужны.
Код: powershell
1.
2.
3.
4.
friends:
  - {name: Jessica, age: 22}
  - {name: Bob, age: 26}
  - {name: Tom, secondname: Thomson, birthday: !!timestamp '1954-01-02T16:44:00Z'}


Возможно квоты упрощяют сам парсер. Но блин мы живем в 21 веке а следуем оптимизациям
из 80х когда нагрузка на CPU была важна и файловые форматы делались для машин а не для
людей. Обидно спустя 40 лет продолжать способстовать машинным форматам там где уже
давно нет потребностей.

Посмотрите еще для примера Hocon. Это такой-себе расслабленный JSON.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953226
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу самих JSON парсеров. Мы наблюдали разное поведение при интерпретации целых чисел.
Некоторые парсеры проверяли границы INT32 на целых числах. Некоторые игнорировали.

Парсеры семейства Google(GSON) толератны к квотам и апострофам. Тоесть вы можете писать так
Код: javascript
1.
{ "name": "Tom" }


и так.
Код: javascript
1.
{ 'name': 'Tom' }


Оба варианта - валидны.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953247
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XML по возможностям - более широкий. Там это может быть attribute или valueOf.

Код: xml
1.
2.
3.
<fuckenTag fuckenattr1="810">
   840
</fuckenTag>



А кавычки могут просто переносится на уровень твоего проиложения. Тоеть - интерпретируй как хочешь.
А без схемы - все типы данных - строки.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953251
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

я с этим успел столкнуться,причем даже на тестовом задании валидация xml черех xsd
просто какой то кусок говна если честно

Если хочешь - почитай книжку "Practical RDF". По степени нудности эта книжка порвет
любые философские науки. Очень хорошее снотворное на ночь.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953357
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
mayton
XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций.
Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток.


Если говорить за аналогии.
То xml - это реализация модели OSI.
А json как раз это TCP/IP.

<:o)

Я не спорю с универсализмом. JSon - универсален. Но он - не human-readable.
И он мог быть компактнее. Но не стал. К сожалению его идеологи преследовали
низкие и практичные цели - обеспечить интеракцию браузера и вебсокетных
протоколов.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953371
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Твой Блинов - это лжец и девственник мы вроде уже установили.

Читай Эккеля, Хорсмана и Брайна Гоетса лучше.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953375
[quot mayton#22125873]
mad_nazgul

Я не спорю с универсализмом. JSon - универсален. Но он - не human-readable.

Это json то не human-readable? По-моему, джейсон - это лучшее, что на сегодняшний день изобрели для описания всяких конфигов и моделей, в том числе и для людей "из бизнеса" по соотношения мощности/удобства использования. XML монструозен и совершенно неудобочитаем и неудобописуем, а yaml - совершенно ужасен из-за форматирования отступами. Можно очень долго вглядываться в кривой yaml в поисках ошибки, которую выкинул парсер, а она в итоге может оказаться вообще не там. Без хорошей IDE с ямлом делать нечено, а она, увы, не всегда доступна.
Джейсон же практически идеален. Единственное, чего в нем не хватает, это комментариев (но их можно криво эмулировать строками), и тогда был бы вообще идеал.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953393
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Она - не human readable. Об этом можно сказать просто посмотрев на форматы офисных документов
через текстовый редактор.


для разработчика с нормальной IDE XML вообще-то более предпочтителен, особенно при наличии схемы. тогда у тебя под рукой будет интеллисенс, автодополнение и плюс независимость от форматирования, что позволит безболезненно втыкать куски данных, которые будут автоматически отформатированы

чего не скажешь об YAML


mayton
Я-же искал технологию которая позволяет людям "от бизнеса" описывать метадатау в псевдо-текстовом
формате.


по собственному опыту, людям "от бизнеса" проще всего написать в ворде, а данные предоставить в экселе. всё остальное это головная боль. :)

что YAML, что JSON или XML, людям "от бизнеса" как говорится, "что это херня, что та, и это обе херни такие, что я е...."...
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953394
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Да. Мы когда работали с семантическим вебом (RDF/Xml) из всего этого разнообразия использовали штук 7 типов.
Остальные не пригодились никогда. Вообще для Json пожалуй не хватает только стандартного типа даты-времени.
А так... 80% потребностей он покрывает.


но ведь можно и свои типы определить, с валидацией, и всё это работать будет прям при редактировании. а не к моменту, когда запустится приложение и оно свалится с неприятным эксепшеном.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953395
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь
Это json то не human-readable? По-моему, джейсон - это лучшее, что на сегодняшний день изобрели для описания всяких конфигов и моделей


Не соглашусь.

JSON для конфигов просто омерзителен.
и руки бы по-отрывать, кто решил его таким образом использовать.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953411
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите примеры конфигураций подсистемы Log4j 2.x

https://logging.apache.org/log4j/2.x/manual/configuration.html

На Yaml. Красиво. Структурно. Читабельно. Как оглавление книги.
Json - омерзителен. Какие-то бесконечные кавычки-скобочки-кавычки.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953428
Bsplesk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Там в самом низу раздел: System Properties, вот это формат бизнеса.

Самолично наблюдал попытки исправить конфиг yaml без спец. редактора.
Минут в 45 управились.

И это не бизнес, это техподдержка.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953430
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы опоздали с предложением.

Может я неверно выразил свою мысль. Но речь идет о компромиссном файловом формате
согласований маппингов который правит и разработчик и не-разработчик. И который (файловый
формат) пригоден для трекания изменений в version control.

Excel - непригоден. Поэтому не стоит вопрос делать или не делать. А стоит вопрос - в каком
наиболее удобном формате это делать.

И это всё - лирика. Давайте вернемся к технической части.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953438
Bsplesk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Что понимаете под маппингами?, а то вы в своём примере "бизнес объекта" - "Анкета", и её экземпляр "Анкета Майка" привели.

Под маппингом обычно подразумевается карта соответствия, грубо говоря вот это поле соответствует в этому 1-1, а вот эти два сложить / поделить на pi и если пусто/отсутствует/NULL, то = 5 вот тому.
И Excel для этого вполне подходит. Графически это выглядит, как таблица, которую можно вести и в confluence. Кстати confluence - это xhtml (xml).

Есть ещё asciidoc/расширенный markdown с таблицами, что больше подходит для git - но парсинга в объекты нормального нет и не будет.

Для людей делайте приложение, которое будет ходить в ваш git брать от туда всё что нужно (xml/json/yaml/mybinary format), отображать в человеческом виде и обратно заливать.

а так можете посмотреть git4c плагин к confluence на github или https://antora.org/.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953442
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты хочешь обсудить форматы markdown - то подними отдельный топик.

Здесь я буду обсуждать yaml.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953445
Bsplesk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

ооо, всё понятно ушел.

Не смею больше беспокоить.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953815
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Посмотрите примеры конфигураций подсистемы Log4j 2.x

https://logging.apache.org/log4j/2.x/manual/configuration.html

На Yaml. Красиво. Структурно. Читабельно. Как оглавление книги.
Json - омерзителен. Какие-то бесконечные кавычки-скобочки-кавычки.


Именно, что как оглавление книги. Если вы не знаете о чём книга, вы и строчки в этот конфиг не добавите. Более того, любые ваши изменения абсолютно невозможно проверить на корректность, пока вы не запустите приложение, которое вас отфутболит с ошибкой.

Читабельно? Нет. Нет никакой информации о типах. Так как файл представляет собой сложную структуру, а не набор параметров, одна ошибка приводит к поломке всего файла.

Тот же INI-файл позволяет делать ошибки, которые не ломают остального.


mayton
Может я неверно выразил свою мысль. Но речь идет о компромиссном файловом формате
согласований маппингов который правит и разработчик и не-разработчик. И который (файловый
формат) пригоден для трекания изменений в version control.


Ну я уже приводил один главный аргумент. Что разработчику, что не-разработчику, даже обезьяне -- нужен самый простой инструмент, который будет помогать, а не мешать.

YAML формат гораздо более строгий, чем JSON. Так как любой редактор JSON тупо подсветит ошибку, если на закрыл скобочку, или забыл про кавычку, а чуть более продвинутый редактор вообще всё это сам генерит.

В YAML лишний пробел меняет семантику, что является наихудшим сценарием.

XML вообще как язык разметки со схемой полностью валидирует всё, что ты вводишь при редактировании, плюс интеллисенс и подсказки.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953816
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
И который (файловый
формат) пригоден для трекания изменений в version control.


Что XML, что JSON, что YAML -- трекаются в CVS абсолютно одинаково эффективно.
У нас есть конфиги во всех этих трёх форматах.
Деплой YAML скрипты, JSON и XML конфиги приложений.

Всё очень хорошо трекается везде. Ни у кого никаких преимуществ нет.
Дифф изменений показывает строчки и изменения в строчках. Всё хорошо.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953833
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
И который (файловый
формат) пригоден для трекания изменений в version control.


Что XML, что JSON, что YAML -- трекаются в CVS абсолютно одинаково эффективно.
У нас есть конфиги во всех этих трёх форматах.
Деплой YAML скрипты, JSON и XML конфиги приложений.

Всё очень хорошо трекается везде. Ни у кого никаких преимуществ нет.
Дифф изменений показывает строчки и изменения в строчках. Всё хорошо.


Ого, у вас ещё CVS.

CVS — централизованная система управления версиями, популярная в 1990-е — начале 2000-х годов. Хранит историю изменений определённого набора файлов, как правило, исходного кода программного обеспечения, и облегчает совместную работу группы людей над одним проектом. Распространяется на условиях лицензии GNU GPL.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953845
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
hVostt
пропущено...


Что XML, что JSON, что YAML -- трекаются в CVS абсолютно одинаково эффективно.
У нас есть конфиги во всех этих трёх форматах.
Деплой YAML скрипты, JSON и XML конфиги приложений.

Всё очень хорошо трекается везде. Ни у кого никаких преимуществ нет.
Дифф изменений показывает строчки и изменения в строчках. Всё хорошо.


Ого, у вас ещё CVS.

CVS — централизованная система управления версиями, популярная в 1990-е — начале 2000-х годов. Хранит историю изменений определённого набора файлов, как правило, исходного кода программного обеспечения, и облегчает совместную работу группы людей над одним проектом. Распространяется на условиях лицензии GNU GPL.



Нет, у них не Concurrent Versions System.

Он пишет про абстрактную систему контроля/управлениями версиями (от англ. Control Version System, или Version Control System, или Revision Control System).
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953861
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

Ну я уже приводил один главный аргумент. Что разработчику, что не-разработчику, даже обезьяне -- нужен самый простой инструмент, который будет помогать, а не мешать.

В настоящий момент у нас трекается Excel. А это ... как вы понимаете просто
изменения blob-ов которые трекать неудобно.

hVostt

YAML формат гораздо более строгий, чем JSON. Так как любой редактор JSON тупо подсветит ошибку, если на закрыл скобочку, или забыл про кавычку, а чуть более продвинутый редактор вообще всё это сам генерит.

В YAML лишний пробел меняет семантику, что является наихудшим сценарием.

Здесь - согласен. Я именно поэтому и поднял тему чтобы обсудить эти маргинальные
случае когда лишний пробел или запятая могут сломать билд.

Но у нас эта фаза на 99% покрыта тестами. Билд не соберется пока количественные
метрики не выйдут на ожидаемые. Например табличка содержит 500 полей. Эти
поля как-раз конфигурируются через Excel.

hVostt

XML вообще как язык разметки со схемой полностью валидирует всё, что ты вводишь при редактировании, плюс интеллисенс и подсказки.


Я уже более десятка лет пытаюсь уйти от XML а вы тащите меня обратно

Ну как вы думаете? Какова будет моя реакция?
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953868
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
говоря о YAML, есть одна важная деталь, которую никто не принимает во внимание. Безальтернативность реализации, по крайней мере на Java.

А именно, для Java я знаю только одну реализацию - Snake Yaml.

Её поддерживает один единственный человек (который её и создал изначально).

Так вот это риск. Формат сложный, реализация сложная.

Вот есть баг (при том важный), я вежливо зарепортил его человеку, но встретил довольно странную реакцию. При том причины не ясны до конца, и не хотелось бы их обдумывать даже.

https://bitbucket.org/asomov/snakeyaml/issues/440

В результате одна из важнейших фич YAML (блочный формат) не работает в Jackson и соотв. в Spring, т.к. они используют Snake Yaml, и альтернатив похоже нет.

PS: то что автор не переводит проект на гитхаб тоже concern.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953873
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему безальтернативно?

Я много артефактов нашел https://mvnrepository.com/search?q=yaml

Я не все из них проверял. Но думаю что альтернативы есть.
...
Рейтинг: 0 / 0
25 сообщений из 94, страница 2 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Семантика Yaml документа.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]