|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
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.04.2020, 10:54 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций. Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток. Если говорить за аналогии. То xml - это реализация модели OSI. А json как раз это TCP/IP. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 11:38 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mad_nazgulВ этом и прелесть json. Там всего три типа. И его всегда можно распарсить однозначно в "объект", "массив" или "строку". Мне иногда в json не хватает простейших вещей. Например камент написать. Код: python 1. 2. 3. 4. 5. 6.
Опять-же. Синтаксис завел обязательным двойные кавычки даже в тех случаях когда они не нужны. Код: powershell 1. 2. 3. 4.
Возможно квоты упрощяют сам парсер. Но блин мы живем в 21 веке а следуем оптимизациям из 80х когда нагрузка на CPU была важна и файловые форматы делались для машин а не для людей. Обидно спустя 40 лет продолжать способстовать машинным форматам там где уже давно нет потребностей. Посмотрите еще для примера Hocon. Это такой-себе расслабленный JSON. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 11:41 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
По поводу самих JSON парсеров. Мы наблюдали разное поведение при интерпретации целых чисел. Некоторые парсеры проверяли границы INT32 на целых числах. Некоторые игнорировали. Парсеры семейства Google(GSON) толератны к квотам и апострофам. Тоесть вы можете писать так Код: javascript 1.
и так. Код: javascript 1.
Оба варианта - валидны. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 11:47 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
XML по возможностям - более широкий. Там это может быть attribute или valueOf. Код: xml 1. 2. 3.
А кавычки могут просто переносится на уровень твоего проиложения. Тоеть - интерпретируй как хочешь. А без схемы - все типы данных - строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 12:35 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Zzz79 я с этим успел столкнуться,причем даже на тестовом задании валидация xml черех xsd просто какой то кусок говна если честно Если хочешь - почитай книжку "Practical RDF". По степени нудности эта книжка порвет любые философские науки. Очень хорошее снотворное на ночь. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 12:47 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mad_nazgul mayton XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций. Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток. Если говорить за аналогии. То xml - это реализация модели OSI. А json как раз это TCP/IP. <:o) Я не спорю с универсализмом. JSon - универсален. Но он - не human-readable. И он мог быть компактнее. Но не стал. К сожалению его идеологи преследовали низкие и практичные цели - обеспечить интеракцию браузера и вебсокетных протоколов. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 17:29 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Твой Блинов - это лжец и девственник мы вроде уже установили. Читай Эккеля, Хорсмана и Брайна Гоетса лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 18:14 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
[quot mayton#22125873] mad_nazgul Я не спорю с универсализмом. JSon - универсален. Но он - не human-readable. Это json то не human-readable? По-моему, джейсон - это лучшее, что на сегодняшний день изобрели для описания всяких конфигов и моделей, в том числе и для людей "из бизнеса" по соотношения мощности/удобства использования. XML монструозен и совершенно неудобочитаем и неудобописуем, а yaml - совершенно ужасен из-за форматирования отступами. Можно очень долго вглядываться в кривой yaml в поисках ошибки, которую выкинул парсер, а она в итоге может оказаться вообще не там. Без хорошей IDE с ямлом делать нечено, а она, увы, не всегда доступна. Джейсон же практически идеален. Единственное, чего в нем не хватает, это комментариев (но их можно криво эмулировать строками), и тогда был бы вообще идеал. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 18:31 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Она - не human readable. Об этом можно сказать просто посмотрев на форматы офисных документов через текстовый редактор. для разработчика с нормальной IDE XML вообще-то более предпочтителен, особенно при наличии схемы. тогда у тебя под рукой будет интеллисенс, автодополнение и плюс независимость от форматирования, что позволит безболезненно втыкать куски данных, которые будут автоматически отформатированы чего не скажешь об YAML mayton Я-же искал технологию которая позволяет людям "от бизнеса" описывать метадатау в псевдо-текстовом формате. по собственному опыту, людям "от бизнеса" проще всего написать в ворде, а данные предоставить в экселе. всё остальное это головная боль. :) что YAML, что JSON или XML, людям "от бизнеса" как говорится, "что это херня, что та, и это обе херни такие, что я е...."... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 20:06 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Да. Мы когда работали с семантическим вебом (RDF/Xml) из всего этого разнообразия использовали штук 7 типов. Остальные не пригодились никогда. Вообще для Json пожалуй не хватает только стандартного типа даты-времени. А так... 80% потребностей он покрывает. но ведь можно и свои типы определить, с валидацией, и всё это работать будет прям при редактировании. а не к моменту, когда запустится приложение и оно свалится с неприятным эксепшеном. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 20:06 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Ржавый гвоздь Это json то не human-readable? По-моему, джейсон - это лучшее, что на сегодняшний день изобрели для описания всяких конфигов и моделей Не соглашусь. JSON для конфигов просто омерзителен. и руки бы по-отрывать, кто решил его таким образом использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 20:07 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Посмотрите примеры конфигураций подсистемы Log4j 2.x https://logging.apache.org/log4j/2.x/manual/configuration.html На Yaml. Красиво. Структурно. Читабельно. Как оглавление книги. Json - омерзителен. Какие-то бесконечные кавычки-скобочки-кавычки. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 20:39 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, Там в самом низу раздел: System Properties, вот это формат бизнеса. Самолично наблюдал попытки исправить конфиг yaml без спец. редактора. Минут в 45 управились. И это не бизнес, это техподдержка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 21:57 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Вы опоздали с предложением. Может я неверно выразил свою мысль. Но речь идет о компромиссном файловом формате согласований маппингов который правит и разработчик и не-разработчик. И который (файловый формат) пригоден для трекания изменений в version control. Excel - непригоден. Поэтому не стоит вопрос делать или не делать. А стоит вопрос - в каком наиболее удобном формате это делать. И это всё - лирика. Давайте вернемся к технической части. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 22:03 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
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.04.2020, 22:41 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Если ты хочешь обсудить форматы markdown - то подними отдельный топик. Здесь я буду обсуждать yaml. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 22:56 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, ооо, всё понятно ушел. Не смею больше беспокоить. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 22:58 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
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 вообще как язык разметки со схемой полностью валидирует всё, что ты вводишь при редактировании, плюс интеллисенс и подсказки. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 00:24 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton И который (файловый формат) пригоден для трекания изменений в version control. Что XML, что JSON, что YAML -- трекаются в CVS абсолютно одинаково эффективно. У нас есть конфиги во всех этих трёх форматах. Деплой YAML скрипты, JSON и XML конфиги приложений. Всё очень хорошо трекается везде. Ни у кого никаких преимуществ нет. Дифф изменений показывает строчки и изменения в строчках. Всё хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 00:28 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
hVostt mayton И который (файловый формат) пригоден для трекания изменений в version control. Что XML, что JSON, что YAML -- трекаются в CVS абсолютно одинаково эффективно. У нас есть конфиги во всех этих трёх форматах. Деплой YAML скрипты, JSON и XML конфиги приложений. Всё очень хорошо трекается везде. Ни у кого никаких преимуществ нет. Дифф изменений показывает строчки и изменения в строчках. Всё хорошо. Ого, у вас ещё CVS. CVS — централизованная система управления версиями, популярная в 1990-е — начале 2000-х годов. Хранит историю изменений определённого набора файлов, как правило, исходного кода программного обеспечения, и облегчает совместную работу группы людей над одним проектом. Распространяется на условиях лицензии GNU GPL. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 11:25 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
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). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 15:00 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
hVostt Ну я уже приводил один главный аргумент. Что разработчику, что не-разработчику, даже обезьяне -- нужен самый простой инструмент, который будет помогать, а не мешать. В настоящий момент у нас трекается Excel. А это ... как вы понимаете просто изменения blob-ов которые трекать неудобно. hVostt YAML формат гораздо более строгий, чем JSON. Так как любой редактор JSON тупо подсветит ошибку, если на закрыл скобочку, или забыл про кавычку, а чуть более продвинутый редактор вообще всё это сам генерит. В YAML лишний пробел меняет семантику, что является наихудшим сценарием. Здесь - согласен. Я именно поэтому и поднял тему чтобы обсудить эти маргинальные случае когда лишний пробел или запятая могут сломать билд. Но у нас эта фаза на 99% покрыта тестами. Билд не соберется пока количественные метрики не выйдут на ожидаемые. Например табличка содержит 500 полей. Эти поля как-раз конфигурируются через Excel. hVostt XML вообще как язык разметки со схемой полностью валидирует всё, что ты вводишь при редактировании, плюс интеллисенс и подсказки. Я уже более десятка лет пытаюсь уйти от XML а вы тащите меня обратно Ну как вы думаете? Какова будет моя реакция? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 16:05 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
говоря о YAML, есть одна важная деталь, которую никто не принимает во внимание. Безальтернативность реализации, по крайней мере на Java. А именно, для Java я знаю только одну реализацию - Snake Yaml. Её поддерживает один единственный человек (который её и создал изначально). Так вот это риск. Формат сложный, реализация сложная. Вот есть баг (при том важный), я вежливо зарепортил его человеку, но встретил довольно странную реакцию. При том причины не ясны до конца, и не хотелось бы их обдумывать даже. https://bitbucket.org/asomov/snakeyaml/issues/440 В результате одна из важнейших фич YAML (блочный формат) не работает в Jackson и соотв. в Spring, т.к. они используют Snake Yaml, и альтернатив похоже нет. PS: то что автор не переводит проект на гитхаб тоже concern. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 16:26 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Почему безальтернативно? Я много артефактов нашел https://mvnrepository.com/search?q=yaml Я не все из них проверял. Но думаю что альтернативы есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 16:55 |
|
|
start [/forum/topic.php?fid=59&msg=39953816&tid=2120406]: |
0ms |
get settings: |
16ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
36ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
458ms |
get tp. blocked users: |
1ms |
others: | 356ms |
total: | 879ms |
0 / 0 |