|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Несколько раз я ходил вокруг этого формата. И облизывался. Я позиционировал его как замену Excel в бизнес - коммуникациях. Хотелось уйти от передачи маппингов в Excel к маппингу в csv/json/yaml. Последний стоял как десерт. Но к сожалению мне самому надо было понять подводные камни. А именно. - какие могут быть НЕОДНОЗНАЧНОСТИ (случайный пробел или табулятор слева) - какие сложности с парсером - композиции (когда внутрь одного документа заворачивают кусок другого (типа CDATA xml). И вопросы к аудитории - как вы применяете этот формат на производтсве? - какие есть pitfalls - какие либы (у меня только snakeyaml) - и самое последнее что меня сильно интересеует - кодогенерация и связи с трансляторами ЯП. В качестве примера. Дан некий софистический документ. Анкета некого Майка. Я сам его написал с изменениями по туториалу. Он - успешно проходит парсинг. Тоесть он - валиден. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Что интересно. Документ - читабелен для человека не из It. All is clear. Есть две формы представления array. Формат даты по ISO. Есть также некий relaxed-json/Hokoon, тоесть в некотром роде документ обратно совместим с небольшими изменениями с JSon. Есть также удобства по добавлению сырых данных в виде авто-подписи Майка. Вобщем докиньте свои 5 коп. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 11:52 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton замену Excel в бизнес - коммуникациях по моим наблюдениям excel это единственный формат, который понимает большинство эникейщиков и замены ему не предвидится, какими бы чудесными не были другие форматы. даже когда просишь сохранить в csv из того же excel, половина не понимает чего от них хотят. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 12:16 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, А как же старый добрый key-value properties :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 12:31 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Я уже много лет подковёрно веду борьбу с Excel. Я выкашиваю его косой и вырубаю топором из проектов там где есть возможность. И у меня на то есть своя аргументация. Но топик не об этом. Топик вообще о том как согласовать бизнес требования и код. Современные Business Analysts - ребята очень грамотные. Знают не только Микросовт-Охвис. Они нормально оперируют R, Statistica, и скриптуют запросики в MSSQL. И от yaml нас отделяет только несколько брейнштормов и грумингов идей. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 12:32 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Если развернуть этот документ в дерево LinkedHashMap то вот такое получается. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Прикольно что дата распозналась именно как дата. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 13:56 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 13:58 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Попробовал посериализировать. Стили стали более унылые и плоские. Кто знает как управлять? Например я не хочу видеть JSon-like форматирование а хочу такое с bullets как в исходном документе. (в моём первом посту) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Код: python 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 15:18 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton как вы применяете этот формат на производтсве? Что значит на производстве? В DevOps скриптах деплоймента, мониторинга и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 15:47 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Нет. Девопс меня не интересует. Расскажите о НЕСТАНДАРТНОМ использовании Yaml. Меня интересует когда Yaml участвует в описании моделей данных. Энтитей. ДТО. ОРМ-маппинга. Всё что угодно кроме конфигов. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 15:52 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Управление типизацией (snakeyaml). Я уже выкинул модульный тест. Сделал просто конвертер Yaml=>MOdel=>Yaml. Просто продолжаю обогащать анкету Майка и смотрю как работает этот pipeline. In: Код: python 1. 2. 3. 4. 5. 6. 7. 8.
Out: Код: python 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 18:23 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
А вот еще интереснее. Алиасы. У Майка есть брат-близнец Том. Я задаю его дату-рождения через алиасы. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Это похоже на XML entities. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 18:32 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Есть еще динамическое переопределение алиасов и merge структур. Но мне пока хватит фич. Остановлюсь на этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 18:38 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Несколько раз я ходил вокруг этого формата. И облизывался. Я позиционировал его как замену Excel в бизнес - коммуникациях. Хотелось уйти от передачи маппингов в Excel к маппингу в csv/json/yaml. Последний стоял как десерт. Но к сожалению мне самому надо было понять подводные камни. А именно. - какие могут быть НЕОДНОЗНАЧНОСТИ (случайный пробел или табулятор слева) - какие сложности с парсером - композиции (когда внутрь одного документа заворачивают кусок другого (типа CDATA xml). И вопросы к аудитории - как вы применяете этот формат на производтсве? - какие есть pitfalls - какие либы (у меня только snakeyaml) - и самое последнее что меня сильно интересеует - кодогенерация и связи с трансляторами ЯП. В качестве примера. Дан некий софистический документ. Анкета некого Майка. Я сам его написал с изменениями по туториалу. Он - успешно проходит парсинг. Тоесть он - валиден. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Что интересно. Документ - читабелен для человека не из It. All is clear. Есть две формы представления array. Формат даты по ISO. Есть также некий relaxed-json/Hokoon, тоесть в некотром роде документ обратно совместим с небольшими изменениями с JSon. Есть также удобства по добавлению сырых данных в виде авто-подписи Майка. Вобщем докиньте свои 5 коп. Есть преобразователь для четырёх типов файлов 22122936 . Мы в основном храним данные в xml и property файлах. Json для обмена данными между сервером и js кодом. Хорошего вам дня! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 19:52 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Valentin Kolesnikov, спасибо. Посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 19:53 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
У меня щас другая проблема. Я пробую продуктовые данные по бизнес-аналитике сохранять в Yaml. (раньше мы в Json хранили) и вот это горизональное-вертикальное форматирование коллекций - сильно мешает. Грубо говоря оно включается по искусственному интеллекту. Видимо следуя какой-то логике улучшения. Но мне надо его защёлкнуть только на горизонтальном. Вот это - неправильно. Код: java 1. 2. 3. 4. 5. 6.
И я пока не вижу выхода как делать кастомный сериализатор. Хотя не хочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 20:03 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Нет. Девопс меня не интересует. Расскажите о НЕСТАНДАРТНОМ использовании Yaml. Меня интересует когда Yaml участвует в описании моделей данных. Энтитей. ДТО. ОРМ-маппинга. Всё что угодно кроме конфигов. Для этого используем Json и XML ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2020, 20:17 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Несколько раз я ходил вокруг этого формата. И облизывался. mayton Вобщем докиньте свои 5 коп. Так себе формат. Чудовищно переусложнён. В следствие этого, нормальной полной поддержки последней версии формата YAML толком нигде нет. И даже если вы её найдёте/реализуете, пользы от этого мало. Ибо применение всех фишечек приведёт к нечитаемости и неупотребимости. YAML хорошо подходит именно для ручного использования, т.е. для конфигов. Для передачи данных лучше использовать JSON/BSON/XML. В общем, никакого профита, кроме как использования для конфига нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 06:55 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Расскажите о НЕСТАНДАРТНОМ использовании Yaml. Меня интересует когда Yaml участвует в описании моделей данных. Энтитей. ДТО. ОРМ-маппинга. Для описания моделей данных и типизированного хранения данных всё же лучше XML ничего нет. Так как в XML можно указывать тип данных и любые другие мета-данные, которые ложатся как влитые. Что-то подобное делать в JSON/YAML -- это будут очередные кривые костыли, основанные на кривых соглашениях. Да и вообще, нафиг оно там не упёрлось. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 07:00 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
hVostt Для описания моделей данных и типизированного хранения данных всё же лучше XML ничего нет. Так как в XML можно указывать тип данных и любые другие мета-данные, которые ложатся как влитые. Тут я с вами поспорил. Т.к. xml/xsd не совсем однозначно может описывать данные/типы. Как минимум я регулярно сталкиваюсь с тем, что в зависимости от хинтов xjb можно сформировать разные классы. В этом плане json проще и надежнее. Три типа - объект, массив, строка. Их комбинация позволяет передавать любые данные . Но в нём проблемы с датами. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 07:57 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mad_nazgul Тут я с вами поспорил. Т.к. xml/xsd не совсем однозначно может описывать данные/типы. Как минимум я регулярно сталкиваюсь с тем, что в зависимости от хинтов xjb можно сформировать разные классы. В этом плане json проще и надежнее. Три типа - объект, массив, строка. Их комбинация позволяет передавать любые данные . Но в нём проблемы с датами. Сравните с количеством примитивов в 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 3.2.10 gYearMonth 3.2.11 gYear 3.2.12 gMonthDay 3.2.13 gDay 3.2.14 gMonth 3.2.15 hexBinary 3.2.16 base64Binary 3.2.17 anyURI 3.2.18 QName 3.2.19 NOTATION Т.е. XML может быть самодостаточен для передачи данных и типов данных. Плюс любое количество аннотаций. JSON не может быть надёжнее, так как информацию о типе не хранит. Но проще, так как примитивов меньше. По сути основное преимущество JSON в простоте и меньшем количестве оверхеда. Но это не забесплатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 08:14 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mad_nazgul Их комбинация позволяет передавать любые данные . Можно передавать только вот это: объект, строка, массив, число, bool и null. Никакие другие данные передавать нельзя. Т.е. если я вам пришлю какой-нибудь JSON и не расскажу что там лежит, не дам полное описание модели данных с описанием типов, вы не сможете правильно его интерпертировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 08:18 |
|
Семантика 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 3.2.10 gYearMonth 3.2.11 gYear 3.2.12 gMonthDay 3.2.13 gDay 3.2.14 gMonth 3.2.15 hexBinary 3.2.16 base64Binary 3.2.17 anyURI 3.2.18 QName 3.2.19 NOTATION Т.е. XML может быть самодостаточен для передачи данных и типов данных. Плюс любое количество аннотаций. Я знаю. Вот только этим всем пользоваться тот еще гемор. Тут кстати еще нет Any и AnyType ;-) hVostt JSON не может быть надёжнее, так как информацию о типе не хранит. Но проще, так как примитивов меньше. По сути основное преимущество JSON в простоте и меньшем количестве оверхеда. Но это не забесплатно. В этом и прелесть json. Там всего три типа. И его всегда можно распарсить однозначно в "объект", "массив" или "строку". Далее строку уже можно парсить как угодно, по каким угодно правилам. Для передачи данных это более чем достаточно. С xml/xsd всегда танцы с бубном связанные с xsd. Одни и те же данные, с одними и теми же xsd в зависимости от используемого marshaller'а будут получаться разные xml. В отличии от json, где боле-менее будет одинаковый json. По мне так xml/xsd это глюкавый оверхед. Я пока не разбирался со схемами для json. Но, например, HateOS смотрится в первом приближении довольно мило. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 09:50 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
hVostt mad_nazgul Их комбинация позволяет передавать любые данные . Можно передавать только вот это: объект, строка, массив, число, bool и null. Никакие другие данные передавать нельзя. В Json по большому счету нету числа, bool и null. Это все строки. JavaScript может сделать предположение, что то или иное значение является числом или bool. На там куча странных "умолчаний", которые надо просто знать типа Код: javascript 1.
hVostt Т.е. если я вам пришлю какой-нибудь JSON и не расскажу что там лежит, не дам полное описание модели данных с описанием типов, вы не сможете правильно его интерпертировать. Согласен, т.к. JSON это schemaless. И это хорошо. Как минимум он не дает иллюзии, что у вас есть точное описание протокола передачи данных. Т.к. xsd это не точное описание, и для него иногда нужны хинты (xjb), которые подсказывают "как правильно" разбирать xsd. С Json обычно, просто прошу прислать их модель (классы) которые мне посылают. Обычно они довольно точно описывают, что ко мне прилетит в виде JSON. С xsd приходилось еще просить парочку примеров на xml, чтобы понять, что мне реально прилетит из несколько интерпретаций xsd-схемы. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 10:00 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Zzz79 полностью поддерживаю. ямл для конфигов хорош а для хранения лучше json xml уже устарел Он не устарел. "То что мертво умереть не может" Просто xml во первых больше чем json при одинаковых данных. Во вторых xsd это сложный язык описания метаинформации, который дает не однозначный результат. Помню во времена хайпа soap java'исты отправляли лучи поноса в сторону MS и его подделий, за своеобразную интерпретацию стандартов SOAP. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 10:04 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
XML - это совершенно зрелая и завершенная технология. С большим количеством уровней абстракций. Прям как стек TCP. На базе нее можно построить все что угодно. К сожалению у нее есть один недостаток. Она - не human readable. Об этом можно сказать просто посмотрев на форматы офисных документов через текстовый редактор. Я-же искал технологию которая позволяет людям "от бизнеса" описывать метадатау в псевдо-текстовом формате. И далее мы можем такие документы обсуждать. Делать правки прямо в git И затаскивать в проект в этом первоисходном виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2020, 10:31 |
|
Семантика 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 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
По дефекту. Мне понадобилось блин 15 минут чтоб понять о чем это вообще? Кто-ж так оформляет кейсы? Надо как-то чтоб нагляднее было. Хоть строка под строкой. Код: java 1. 2.
По поводу статуса дефекта WontFix. Я хочу возмутиться вместе с вами но мне надо сначала глубже вникнуть в текст стандарта. Стандартны... такие стандарты. С разночтениями. Мдя... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 17:20 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton ... А в общем мой опыт я Yaml такой: - Удобен для человекочитаемости для документов среднего размера - Для больших документов уже нужны подсветки тагов ({}), этого не хватает - Удобен для человекописания маленьких документов - Занимает меньше памяти, чем JSON - Для меня самое важное - блочный формат, который позволяет не экранировать спец. символы: Например можно выводить поле с тектом в виде JSON без экранирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2020, 18:21 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
По поводу XML. Из опыта использования Apache Http Server. У меня нет слов выразить свою тоску и печаль по поводу вот таких вот конфигов. Код: html 1. 2. 3. 4. 5.
Этот псевдо-язык очевидно что похож на XML. Неясно чего хотели создатели. Возможно они базировали конфигурации на HTML/SGML диалектах - но результат - ужасен во всех своих проявлениях. И наиболее ужасно то что этот результат сохранился на много лет и актуален и сейчас. Не лучший вариант конфигов использует nginx. При большом уважении к Сысоеву. Сам софт - отличный в своём роде но Json - подобный диалект в конфигах также ломает мозг и порождает длинный вопрос - "Почему" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 11:13 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton По поводу XML. Из опыта использования Apache Http Server. У меня нет слов выразить свою тоску и печаль по поводу вот таких вот конфигов. Код: html 1. 2. 3. 4. 5.
Этот псевдо-язык очевидно что похож на XML. Неясно чего хотели создатели. Возможно они базировали конфигурации на HTML/SGML диалектах - но результат - ужасен во всех своих проявлениях. И наиболее ужасно то что этот результат сохранился на много лет и актуален и сейчас. Не лучший вариант конфигов использует nginx. При большом уважении к Сысоеву. Сам софт - отличный в своём роде но Json - подобный диалект в конфигах также ломает мозг и порождает длинный вопрос - "Почему" ? Это декларативное XML/JSON программирование. В 2000х часто встречалось. Особенно наши этим грешили. Типа пользователю нельзя давать никакие скрипты делать, пусть пишет XML конфиг))) Апасно!!)) Это то с чем боролась и победила Бобина в логировании. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 16:02 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
И ты сюда свою Бобину затащил. Нет уж. Не будем обсуждать. Брысь! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 18:05 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Valentin Kolesnikov Есть преобразователь для четырёх типов файлов 22122936 . Мы в основном храним данные в xml и property файлах. Json для обмена данными между сервером и js кодом. Хорошего вам дня! Спасибо. Забрал себе ваш бинарник. Хорошая утилита. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Конечно мне не хватает управления стилями Yaml. Под кат заглянут только параноики. Для параноиков. Код: java 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 21:10 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Valentin Kolesnikov Ого, у вас ещё CVS. Ну можно было тупо сказать Git, просто не хотелось обижать SVN-щиков ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 22:32 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton hVostt Ну я уже приводил один главный аргумент. Что разработчику, что не-разработчику, даже обезьяне -- нужен самый простой инструмент, который будет помогать, а не мешать. В настоящий момент у нас трекается Excel. А это ... как вы понимаете просто изменения blob-ов которые трекать неудобно. Вообще и его можно трекать, если хранить его в распакованном виде ))) mayton Здесь - согласен. Я именно поэтому и поднял тему чтобы обсудить эти маргинальные случае когда лишний пробел или запятая могут сломать билд. Так в случае JSON у вас редактор скажет об ошибке. Но не в случае YAML. mayton Но у нас эта фаза на 99% покрыта тестами. Билд не соберется пока количественные метрики не выйдут на ожидаемые. Например табличка содержит 500 полей. Эти поля как-раз конфигурируются через Excel. Одно не заменяет другое. Ваши тесты упадут в момент билда, когда агент будет свободен, когда (не)разраб закоммитит и запушит свои изменения. Короче, в тот момент, когда он увидит ошибку из-за лишнего пробела, он будет очень зол. И материть тех, кто выбрал YAML )) mayton Я уже более десятка лет пытаюсь уйти от XML а вы тащите меня обратно Ну как вы думаете? Какова будет моя реакция? Да я не тащу. Я выдаю только контр-аргументы. Против единственного вашего "смотрите как симпатишно!" Это обманчивое впечатление. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 22:36 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, Ещё пример списка на YAML: Код: javascript 1. 2. 3. 4.
Красиво выглядит? нее.... это вам всё сломает )) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 22:38 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Кавычки... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 23:11 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Кавычки... В том-то и дело, друг. Дьявол кроется в мелочах. YAML формат отнюдь не простой. Любому не-спецу проще выучить JSON с простейшими как тапок правилами, как бы по-уродстки он не выглядел в сравнении с YAML. А ведь есть ещё JSON5 , который совсем преимущества YAML нивелирует. Поговаривают, что для девопсов YAML стал стандартом для конфигураций только по одной простой причине. Он похож на Python :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2020, 23:59 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Да я совсем забыл про json5. Ну что же . Будет ещё один вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 08:18 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Valentin Kolesnikov Есть преобразователь для четырёх типов файлов 22122936 . Мы в основном храним данные в xml и property файлах. Json для обмена данными между сервером и js кодом. Хорошего вам дня! Спасибо. Забрал себе ваш бинарник. Хорошая утилита. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Конечно мне не хватает управления стилями Yaml. Под кат заглянут только параноики. Для параноиков. Код: java 1. 2. 3. 4. 5.
А где можно почитать про управление стилями Yaml? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 13:11 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Я на 100% не уверен что это имеено стили. Но в SnakeYaml есть DumperOptions https://www.javadoc.io/doc/org.yaml/snakeyaml/1.19/org/yaml/snakeyaml/DumperOptions.html и насколько я понимаю он влияет на способ сериализации. Мне в основном интересно управлять форматированием арреев (горизонтально-вертикально) и способом представления Maps. Причем задавать это выборочно для некоторых уровней документа или тегов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 13:15 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Из программных продуктов которые юзают yaml и с которыми я сталкивался. AWS CloudFormation Apache Cassandra Travis Docker-compose Spring (YamlConfig) - Теоретически. Тоесть я видел такие конфиги но не юзал. Log4j 2.x +все .properties теоретически можно рассматривать как подмножество Yaml. + некоторые продукты - опциональню. Тоесть например можно конфигурить AWS Cloud через JSon или через Yaml как будет удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 10:11 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, Ну это же по сути формат. Если работа с конфигами/моделями/данными реализована через абстракцию, то YAML, JSON или что-то ещё, это всего лишь соответствующий провайдер. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2020, 13:55 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Начал потихоньку применять. В неком простом веб-сервере на базе Jetty у меня был справочник mime types в формате Java-properties. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Вот интересен после конвертации в Yaml. Я сгруппировал популярные префиксы image/, video/ в группы и получилось красиво. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
Есть опция. Можно с целью обратной совместимости снова писать как properties. + Некоторые расширения дублировали mimetype. Я сделал их массивом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2020, 17:51 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Код: python 1. 2.
Что ж тут красивого-то? Красиво, это когда интуитивно понятно, семантически верно, очевидно и лаконично. mayton Код: java 1. 2. 3.
Вот тут всё понятно и очевидно, ничего лишнего. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 01:58 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
hVostt mayton Код: java 1. 2. 3.
Вот тут всё понятно и очевидно, ничего лишнего. Тут - больше букв. Давай такой промежуточный вариант. Как улучшить дизайн Yaml-конфига чтобы было "понятно и очевидно" ? Потому что твоё предложение - это возврат к .properties файлу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 14:32 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Тут - больше букв. Давно, когда я был молодым и зелёным, то был в восторге от разных трюков в С/C++, как можно десяток строчек кода сократить до одной. Потом начал понимать, что меньше буков -- вовсе не так круто, как мне казалось. mayton Давай такой промежуточный вариант. Как улучшить дизайн Yaml-конфига чтобы было "понятно и очевидно" ? Потому что твоё предложение - это возврат к .properties файлу. Так зачем улучшать то, что итак хорошо? Ну реально, давай лучше какой-то другой пример. Потому что MIME-тип нельзя дербанить на части, он цельный. Именно в таком, цельном виде используется. И даже в шаблонах он цельный: "*/*", "image/*".. В общем, другой пример нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 17:26 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Хорошо. Я подумаю над другим примером. Но ты наверняка видел простыни пропертей вида. Код: java 1. 2. 3. 4. 5.
Скажи честно. Разве тебя это не раздражало? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2020, 20:32 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Скажи честно. Разве тебя это не раздражало? Не особо. Ну давай перепишем так: Код: javascript 1. 2. 3. 4. 5.
Что изменилось? Строчек стало больше. Меньше их никак не станет, так как на каждую пропертю всю равно одна строча. Добавилось проблем. Теперь нужно следить за форматированием. Плюс ещё семантическая проблема. Сейчас может показаться, что в объекте form1 всего две проперти. Но это не так. В первом случае такой проблемы нет. Плюс, я уже не могу оперировать так просто. Если пропертей будет больше, чем влезает на экран, то трудно удерживать контекст без специальных средств. Обычного текстового редактора будет недостаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 02:21 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Хорошо. Я подумаю над другим примером. Но ты наверняка видел простыни пропертей вида. Код: java 1. 2. 3. 4. 5.
Скажи честно. Разве тебя это не раздражало? Которое не должно зависеть от данных? Делай: Меню-Промотр конфига-Вариант1, вар2, вар3, варN ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 10:29 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
hVostt mayton Скажи честно. Разве тебя это не раздражало? Не особо. Ну давай перепишем так: Код: javascript 1. 2. 3. 4. 5.
Что изменилось? Строчек стало больше. Меньше их никак не станет, так как на каждую пропертю всю равно одна строча. Добавилось проблем. Теперь нужно следить за форматированием. Плюс ещё семантическая проблема. Сейчас может показаться, что в объекте form1 всего две проперти. Но это не так. В первом случае такой проблемы нет. Плюс, я уже не могу оперировать так просто. Если пропертей будет больше, чем влезает на экран, то трудно удерживать контекст без специальных средств. Обычного текстового редактора будет недостаточно. Ширина среднего экрана была 80 символов для текстового режима дисплея. Это я беру по стандартам 20-го века. Для современных - я не знаю сколько - но увеличим в 2 раза... 160 символов. Пускай будет. Для среднего indent в 2 символа который форматирует моя IDE для Yaml я исчерпаю список через 80 рекурсивных уровней таких документов ну (и еще хвостик надо оставить чтоб правая часть не упёрлась в границу). Ты можешь себе представить документ с 80 уровнями вложенности? Я даже не помню встречал я такой в своей практике. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 10:34 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Меню-Промотр конфига-Вариант1, вар2, вар3, варN Не понял. Приведи пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 10:35 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
hVostt mayton Тут - больше букв. Давно, когда я был молодым и зелёным, то был в восторге от разных трюков в С/C++, как можно десяток строчек кода сократить до одной. Потом начал понимать, что меньше буков -- вовсе не так круто, как мне казалось. Я - тоже не сторонник брейнфака. Но мне кажется что .properties очень часто используется не по назначению. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 10:37 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, application1.module1.form1.property1 = "FuckenValue1" application1.module1.form1.property2 = "FuckenValue2" application1.module2.form1.property1 = yes application1.module2.form1.property2 = 1 ......... И application1: - module1: - form1: - property1: yes - property2: 1 ..... Это внешний вид или VIEW. Можно выводить тот что понравился юзверю. О чем спор? Что лучше или хуже? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 10:49 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Какой view? Это исходники. Сорцы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 10:55 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Какой view? Это исходники. Сорцы. ЗЫ Исходники для человека/прогера/машины? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 11:03 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton Какой view? Это исходники. Сорцы. ЗЫ Исходники для человека/прогера/машины? Я могу процитировать одного из великих. Он сказал-де "Исходники пишуться человеком для прочтения других человеков. И лишь в редких случаях для машины" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 11:21 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Вот в Spring, если адаптировать application.props в application.yaml эта задача технически уже решена. А в своем кастомном Jetty-Http ендпоинте я взял следующий props: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
Перевернул его наоборот. mime.properties Код: java 1. 2.
Теперь справочник идёт от mime-type к extension но нам пофиг т.к в процессе старта приложения один из бинов который является поставщиком mime-typed их все равно переворачивает. Далее. У меня это приложение группирует обаботку картинок в фолдере. И семантически мне было удобнее картинки определять как группу. Я городил кастомные группы внутри .properties пока не понял что в 100% случаев префикс mime-type уже отвечает на мой вопрос. Если расширение файла - jpg, то он является картинкой потому-что его тип - "image/jpeg" Тогда я вынес классы mime-types на уровень выше. Отсюда появилась категория mime.yaml Код: java 1. 2. 3.
И денормализация. Я просто объединил онинаковые по смыслу расширения (jpg, jpeg) в список. так и получились списки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 11:32 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Ну тоесть мои игры с классификатором mime-types это не просто конвертация properties в другой формат. Это некое переосмысление. Переход от списка к дереву. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2020, 12:26 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Вот в Spring, если адаптировать application.props в application.yaml эта задача технически уже решена. . у нас все конфиги на ямле- очень удобно ,properties не даст такой расширяемости я могу на примере продемострировать как это круто вышлядит когда нужно масштабировать проект ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 18:21 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Ну я ищу от ямла не просто пропертей. Это было-бы слишком просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 18:38 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, ну как сказать не просто проперти а возможность сделать base class + наследование наверняка этому можно и в обычной жизни найти применение ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 18:55 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Да по сути ничего умнее кроме иерархиеских пропертей я в этом топике не придумаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 20:47 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton Да по сути ничего умнее кроме иерархиеских пропертей я в этом топике не придумаю. а что ты хотел придумать от yml он хорош тем там можно сделать base class и иерархию это выглядит реально круто ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 21:22 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Нет. ООП мне здесь не нужно. Мне достаточно будет дерева. И я так и не разобрался как управлять форматированием. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 23:11 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Вот кстати прилетел полезный кейс. Есть AWS cloudformation scripts. Их основное назначение - конфигурировать процесс деплоя вашего кода в Amazon. В качестве языков там можно использовать JSon, Yaml. Типовые конфигурации деплоя для dev/qa/stg сред - это огромные простыни конфигов но они одинаковы как братья-близнецы. Отличаются только суффиксом. Например если создается aws-lambda-0123 то для dev конфигурации у нее будет имя aws-lambda-0123-dev. Планирую внедрить вот этот реплейсмент не уровне технологичном для Yaml. Потому что в нем такая опция была как минимум заявлена. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2020, 14:52 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Словил баг в утилите xmltojson.jar в ее графической части во время конвертации JSON to YAML. Исходный документ пока привести не могу. Возможно чуть позже. Отбелю его до белизны. Вот stderr: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.07.2021, 12:22 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, Похоже на битый json. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 21:54 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
mayton, Обновил зависимые библиотеки до самых новых. Должно помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 22:08 |
|
Семантика Yaml документа.
|
|||
---|---|---|---|
#18+
Спасибо. Завтра попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2021, 23:37 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120406]: |
0ms |
get settings: |
25ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
1566ms |
get tp. blocked users: |
1ms |
others: | 366ms |
total: | 2036ms |
0 / 0 |