Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций.
Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток.

Она - не human readable. Об этом можно сказать просто посмотрев на форматы офисных документов
через текстовый редактор.

Я-же искал технологию которая позволяет людям "от бизнеса" описывать метадатау в псевдо-текстовом
формате. И далее мы можем такие документы обсуждать. Делать правки прямо в git И затаскивать в проект
в этом первоисходном виде.
30 апр 20, 10:31    [22125566]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
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% потребностей он покрывает.
30 апр 20, 10:54    [22125574]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5298
mayton
XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций.
Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток.


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

<:o)
30 апр 20, 11:38    [22125609]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
mad_nazgul
В этом и прелесть json. Там всего три типа.
И его всегда можно распарсить однозначно в "объект", "массив" или "строку".

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

Опять-же. Синтаксис завел обязательным двойные кавычки даже в тех случаях когда они не нужны.
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.

Сообщение было отредактировано: 30 апр 20, 11:40
30 апр 20, 11:41    [22125611]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
По поводу самих JSON парсеров. Мы наблюдали разное поведение при интерпретации целых чисел.
Некоторые парсеры проверяли границы INT32 на целых числах. Некоторые игнорировали.

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

и так.
{ 'name': 'Tom' }

Оба варианта - валидны.
30 апр 20, 11:47    [22125614]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Zzz79
Member

Откуда:
Сообщений: 178
mad_nazgul
Zzz79

полностью поддерживаю.
ямл для конфигов хорош
а для хранения лучше json
xml уже устарел


Он не устарел.
"То что мертво умереть не может"
Просто xml во первых больше чем json при одинаковых данных.
Во вторых xsd это сложный язык описания метаинформации, который дает не однозначный результат.
Помню во времена хайпа soap java'исты отправляли лучи поноса в сторону MS и его подделий, за своеобразную интерпретацию стандартов SOAP.

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

сейчас валидация делается в два клика



описываешь ДТО и ставишь над полями нужные анотации

и где принимаешь ставить @Valid

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

не пойму я людей которые анонируют до сих пор на свои xml портянки
30 апр 20, 12:25    [22125640]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Zzz79
Member

Откуда:
Сообщений: 178
надо посмотреть какой у нас парсер стоит,но наши джейсоны норм скамливаются

вот я вчера валюту заводил в справочник - так она у нас в Integer
отправил сначала "810"
а потом 840
и ничего не сломалось

а вот в случае с какашой ,под названием xml такое бы не прокатило
30 апр 20, 12:28    [22125641]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
XML по возможностям - более широкий. Там это может быть attribute или valueOf.

<fuckenTag fuckenattr1="810">
   840
</fuckenTag>


А кавычки могут просто переносится на уровень твоего проиложения. Тоеть - интерпретируй как хочешь.
А без схемы - все типы данных - строки.
30 апр 20, 12:35    [22125649]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Zzz79

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

Если хочешь - почитай книжку "Practical RDF". По степени нудности эта книжка порвет
любые философские науки. Очень хорошее снотворное на ночь.
30 апр 20, 12:47    [22125656]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
mad_nazgul
mayton
XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций.
Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток.


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

<:o)

Я не спорю с универсализмом. JSon - универсален. Но он - не human-readable.
И он мог быть компактнее. Но не стал. К сожалению его идеологи преследовали
низкие и практичные цели - обеспечить интеракцию браузера и вебсокетных
протоколов.
30 апр 20, 17:29    [22125873]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Zzz79
Member

Откуда:
Сообщений: 178
mayton,я блинова то дочитать никак не могу ) завалили перед праздниками тасками ,устал разгребать
30 апр 20, 17:48    [22125881]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Твой Блинов - это лжец и девственник мы вроде уже установили.

Читай Эккеля, Хорсмана и Брайна Гоетса лучше.
30 апр 20, 18:14    [22125889]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Ржавый гвоздь
Member

Откуда:
Сообщений: 80
[quot mayton#22125873]
mad_nazgul

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

Это json то не human-readable? По-моему, джейсон - это лучшее, что на сегодняшний день изобрели для описания всяких конфигов и моделей, в том числе и для людей "из бизнеса" по соотношения мощности/удобства использования. XML монструозен и совершенно неудобочитаем и неудобописуем, а yaml - совершенно ужасен из-за форматирования отступами. Можно очень долго вглядываться в кривой yaml в поисках ошибки, которую выкинул парсер, а она в итоге может оказаться вообще не там. Без хорошей IDE с ямлом делать нечено, а она, увы, не всегда доступна.
Джейсон же практически идеален. Единственное, чего в нем не хватает, это комментариев (но их можно криво эмулировать строками), и тогда был бы вообще идеал.
30 апр 20, 18:31    [22125894]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
hVostt
Member

Откуда:
Сообщений: 17493
mayton
Она - не human readable. Об этом можно сказать просто посмотрев на форматы офисных документов
через текстовый редактор.


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

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


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


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

что YAML, что JSON или XML, людям "от бизнеса" как говорится, "что это херня, что та, и это обе херни такие, что я е...."...
30 апр 20, 20:06    [22125923]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
hVostt
Member

Откуда:
Сообщений: 17493
mayton
Да. Мы когда работали с семантическим вебом (RDF/Xml) из всего этого разнообразия использовали штук 7 типов.
Остальные не пригодились никогда. Вообще для Json пожалуй не хватает только стандартного типа даты-времени.
А так... 80% потребностей он покрывает.


но ведь можно и свои типы определить, с валидацией, и всё это работать будет прям при редактировании. а не к моменту, когда запустится приложение и оно свалится с неприятным эксепшеном.
30 апр 20, 20:06    [22125924]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
hVostt
Member

Откуда:
Сообщений: 17493
Ржавый гвоздь
Это json то не human-readable? По-моему, джейсон - это лучшее, что на сегодняшний день изобрели для описания всяких конфигов и моделей


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

JSON для конфигов просто омерзителен.
и руки бы по-отрывать, кто решил его таким образом использовать.
30 апр 20, 20:07    [22125925]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Посмотрите примеры конфигураций подсистемы Log4j 2.x

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

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

Сообщение было отредактировано: 30 апр 20, 20:38
30 апр 20, 20:39    [22125944]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Bsplesk
Member

Откуда:
Сообщений: 159
mayton,

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

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

И это не бизнес, это техподдержка.

Сообщение было отредактировано: 30 апр 20, 21:56
30 апр 20, 21:57    [22125981]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Вы опоздали с предложением.

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

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

И это всё - лирика. Давайте вернемся к технической части.
30 апр 20, 22:03    [22125986]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Bsplesk
Member

Откуда:
Сообщений: 159
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/.

Сообщение было отредактировано: 30 апр 20, 22:40
30 апр 20, 22:41    [22125998]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Если ты хочешь обсудить форматы markdown - то подними отдельный топик.

Здесь я буду обсуждать yaml.
30 апр 20, 22:56    [22126003]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Bsplesk
Member

Откуда:
Сообщений: 159
mayton,

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

Не смею больше беспокоить.
30 апр 20, 22:58    [22126006]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
hVostt
Member

Откуда:
Сообщений: 17493
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 вообще как язык разметки со схемой полностью валидирует всё, что ты вводишь при редактировании, плюс интеллисенс и подсказки.
3 май 20, 00:24    [22126824]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
hVostt
Member

Откуда:
Сообщений: 17493
mayton
И который (файловый
формат) пригоден для трекания изменений в version control.


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

Всё очень хорошо трекается везде. Ни у кого никаких преимуществ нет.
Дифф изменений показывает строчки и изменения в строчках. Всё хорошо.
3 май 20, 00:28    [22126825]     Ответить | Цитировать Сообщить модератору
 Re: Семантика Yaml документа.  [new]
Valentin Kolesnikov
Member

Откуда:
Сообщений: 3283
hVostt
mayton
И который (файловый
формат) пригоден для трекания изменений в version control.


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

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


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

CVS — централизованная система управления версиями, популярная в 1990-е — начале 2000-х годов. Хранит историю изменений определённого набора файлов, как правило, исходного кода программного обеспечения, и облегчает совместную работу группы людей над одним проектом. Распространяется на условиях лицензии GNU GPL.
3 май 20, 11:25    [22126865]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Java Ответить