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

Кто-ж так оформляет кейсы? Надо как-то чтоб нагляднее было. Хоть строка под строкой.
Код: java
1.
2.
        String correct   = "this is some text with \"quotes\" abcd";
        String inCorrect = "this is some text with \"quotes\" abcd ";



По поводу статуса дефекта WontFix. Я хочу возмутиться вместе с вами но
мне надо сначала глубже вникнуть в текст стандарта.

Стандартны... такие стандарты. С разночтениями. Мдя...
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39953893
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
...


А в общем мой опыт я Yaml такой:
- Удобен для человекочитаемости для документов среднего размера
- Для больших документов уже нужны подсветки тагов ({}), этого не хватает
- Удобен для человекописания маленьких документов
- Занимает меньше памяти, чем JSON
- Для меня самое важное - блочный формат, который позволяет не экранировать спец. символы:
Например можно выводить поле с тектом в виде JSON без экранирования.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954033
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу XML.

Из опыта использования Apache Http Server. У меня нет слов выразить свою тоску и печаль по
поводу вот таких вот конфигов.

Код: html
1.
2.
3.
4.
5.
<Directory "/var/web/dir1">
    <Files "private.html">
        Require all denied
    </Files>
</Directory>



Этот псевдо-язык очевидно что похож на XML. Неясно чего хотели создатели. Возможно
они базировали конфигурации на HTML/SGML диалектах - но результат - ужасен во всех
своих проявлениях. И наиболее ужасно то что этот результат сохранился на много лет
и актуален и сейчас.

Не лучший вариант конфигов использует nginx. При большом уважении к Сысоеву.
Сам софт - отличный в своём роде но Json - подобный диалект в конфигах также
ломает мозг и порождает длинный вопрос - "Почему" ?
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954097
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
По поводу XML.

Из опыта использования Apache Http Server. У меня нет слов выразить свою тоску и печаль по
поводу вот таких вот конфигов.

Код: html
1.
2.
3.
4.
5.
<Directory "/var/web/dir1">
    <Files "private.html">
        Require all denied
    </Files>
</Directory>



Этот псевдо-язык очевидно что похож на XML. Неясно чего хотели создатели. Возможно
они базировали конфигурации на HTML/SGML диалектах - но результат - ужасен во всех
своих проявлениях. И наиболее ужасно то что этот результат сохранился на много лет
и актуален и сейчас.

Не лучший вариант конфигов использует nginx. При большом уважении к Сысоеву.
Сам софт - отличный в своём роде но Json - подобный диалект в конфигах также
ломает мозг и порождает длинный вопрос - "Почему" ?


Это декларативное XML/JSON программирование. В 2000х часто встречалось.

Особенно наши этим грешили. Типа пользователю нельзя давать никакие скрипты делать, пусть пишет XML конфиг))) Апасно!!))

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

Брысь!
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954177
Фотография 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.
XML to JSON, YAML or CSV/JSON to XML, YAML or CSV converter, version 2020-05-04
 -?,--help                                  This help text.
 -c,--config <arg>                          The file with config (it includes src, dest, mask, mode
                                            and format parameters).
 -d,--dest <arg>                            The destination file/directory for converted file(s).
 -de,--delimiter <arg>                      The delimiter for csv files(comma|semicolon|tab|space).
 -df,--dest-format <arg>                    The destination file format(unix|windows|mac).
 -f,--format <arg>                          The format type (2|3|4|tabs|compact).
 -m,--mask <arg>                            The file mask (json|xml|yml|csv|all) for source file(s).
 -mo,--mode <arg>                           The processing file mode (convert|format|check).
 -rm,--remove-minuses-and-convert-numbers   Convert xml to json without minuses.
 -rs,--replace-self-closing-with-null       Convert xml to json self-closing.
 -s,--src <arg>                             The source file/directory which should be converted into
                                            xml/json.
 -t,--type <arg>                            The output file(s) type (json|xml|yaml|csv).
 -w,--watch                                 Watch for directory changes.
 -wa,--without-attributes                   Convert xml to json without attributes.
 -wn,--without-namespaces                   Convert xml to json without namespaces.
For docs, license, tests, and downloads, see: http://javadev.github.io/underscore-java



Конечно мне не хватает управления стилями Yaml.

Под кат заглянут только параноики.

Для параноиков.
Код: java
1.
2.
3.
4.
5.
grant {
      permission java.io.FilePermission "*", "read,write,delete";
      permission java.util.PropertyPermission "user.dir", "read";
      permission java.util.PropertyPermission "java.runtime.name", "read";
};


...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954194
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valentin Kolesnikov
Ого, у вас ещё CVS.


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

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

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


Вообще и его можно трекать, если хранить его в распакованном виде )))


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


Так в случае JSON у вас редактор скажет об ошибке. Но не в случае YAML.


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


Одно не заменяет другое. Ваши тесты упадут в момент билда, когда агент будет свободен, когда (не)разраб закоммитит и запушит свои изменения. Короче, в тот момент, когда он увидит ошибку из-за лишнего пробела, он будет очень зол.

И материть тех, кто выбрал YAML ))


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

Ну как вы думаете? Какова будет моя реакция?


Да я не тащу. Я выдаю только контр-аргументы.
Против единственного вашего "смотрите как симпатишно!"

Это обманчивое впечатление.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954196
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Ещё пример списка на YAML:

Код: javascript
1.
2.
3.
4.
SomeList:
  - this is first element
  - i'm secod
  - three: simle



Красиво выглядит? нее.... это вам всё сломает ))
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954210
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кавычки...
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954222
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Кавычки...


В том-то и дело, друг.
Дьявол кроется в мелочах.
YAML формат отнюдь не простой.
Любому не-спецу проще выучить JSON с простейшими как тапок правилами, как бы по-уродстки он не выглядел в сравнении с YAML.

А ведь есть ещё JSON5 , который совсем преимущества YAML нивелирует.

Поговаривают, что для девопсов YAML стал стандартом для конфигураций только по одной простой причине. Он похож на Python :)
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954262
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я совсем забыл про json5.

Ну что же . Будет ещё один вариант.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954300
Фотография Valentin Kolesnikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
XML to JSON, YAML or CSV/JSON to XML, YAML or CSV converter, version 2020-05-04
 -?,--help                                  This help text.
 -c,--config <arg>                          The file with config (it includes src, dest, mask, mode
                                            and format parameters).
 -d,--dest <arg>                            The destination file/directory for converted file(s).
 -de,--delimiter <arg>                      The delimiter for csv files(comma|semicolon|tab|space).
 -df,--dest-format <arg>                    The destination file format(unix|windows|mac).
 -f,--format <arg>                          The format type (2|3|4|tabs|compact).
 -m,--mask <arg>                            The file mask (json|xml|yml|csv|all) for source file(s).
 -mo,--mode <arg>                           The processing file mode (convert|format|check).
 -rm,--remove-minuses-and-convert-numbers   Convert xml to json without minuses.
 -rs,--replace-self-closing-with-null       Convert xml to json self-closing.
 -s,--src <arg>                             The source file/directory which should be converted into
                                            xml/json.
 -t,--type <arg>                            The output file(s) type (json|xml|yaml|csv).
 -w,--watch                                 Watch for directory changes.
 -wa,--without-attributes                   Convert xml to json without attributes.
 -wn,--without-namespaces                   Convert xml to json without namespaces.
For docs, license, tests, and downloads, see: http://javadev.github.io/underscore-java



Конечно мне не хватает управления стилями Yaml.

Под кат заглянут только параноики.

Для параноиков.
Код: java
1.
2.
3.
4.
5.
grant {
      permission java.io.FilePermission "*", "read,write,delete";
      permission java.util.PropertyPermission "user.dir", "read";
      permission java.util.PropertyPermission "java.runtime.name", "read";
};




А где можно почитать про управление стилями Yaml?
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954303
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я на 100% не уверен что это имеено стили.

Но в SnakeYaml есть DumperOptions
https://www.javadoc.io/doc/org.yaml/snakeyaml/1.19/org/yaml/snakeyaml/DumperOptions.html
и насколько я понимаю он влияет на способ сериализации.

Мне в основном интересно управлять форматированием арреев (горизонтально-вертикально)
и способом представления Maps. Причем задавать это выборочно для некоторых уровней
документа или тегов.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954497
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из программных продуктов которые юзают yaml и с которыми я сталкивался.

AWS CloudFormation
Apache Cassandra
Travis
Docker-compose
Spring (YamlConfig) - Теоретически. Тоесть я видел такие конфиги но не юзал.
Log4j 2.x

+все .properties теоретически можно рассматривать как подмножество Yaml.

+ некоторые продукты - опциональню. Тоесть например можно конфигурить AWS Cloud
через JSon или через Yaml как будет удобно.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39954586
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Ну это же по сути формат. Если работа с конфигами/моделями/данными реализована через абстракцию, то YAML, JSON или что-то ещё, это всего лишь соответствующий провайдер.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961103
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал потихоньку применять. В неком простом веб-сервере на базе 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.
# images

gif  : image/gif
png  : image/png
jpg  : image/jpeg
jpeg : image/jpeg
svg  : image/svg+xml
webp : image/webp
ppm  : image/x-pordiv-pixmap
pgm  : image/x-pordiv-graymap
pnm  : image/x-pordiv-anymap

# documents

pdf : application/pdf
djvu : image/x-djvu
xls : application/x-msexcel
doc : application/msword
ppt : application/mspowerpoint

# Video

avi : video/avi
mp4 : video/mp4
mov : video/quicktime
flv : video/x-flv
wmv : video/x-ms-wmv
mkv : video/x-matroska

# sound

mp3 : audio/mpeg
ogg : audio/ogg
aac : audio/aac
wma : audio/x-ms-wma
wav : audio/vnd.wave
flac : audio/flac



Вот интересен после конвертации в 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.
# Images

image:
  - gif : [ gif ]
  - png : [ png ]
  - jpeg : [ jpeg, jpg ]
  - jp2 : [ jp2, j2k, jpf, jpm, jpg2, j2c jpc]
  - webp : [ webp ]
  - svg : [ svg+xml ]
  - quicktime : [ mov ]
  - x-pordiv-pixmap : [ ppm ]
  - x-pordiv-graymap : [pgm]
  - x-pordiv-anymap : [pnm]
  - x-djvu : [ image ]

# Video:

video:
  - avi : [ avi ]
  - mp4 : [ mp4,m4v ]
  - 3gpp : [ 3gpp, 3gp ]
  - webm : [ webm ]

# Audio

audio:
  - aac : [ aac ]
  - mpeg : [ mp3 ]
  - ogg : [ogg]
  - aac : [aac]
  - vnd.wave : [ wav ]
  - flac : [ flac ]
  - x-ms-wma : [ wma ]

# documents

pdf : application/pdf
xls : application/x-msexcel
doc : application/msword
ppt : application/mspowerpoint



Есть опция. Можно с целью обратной совместимости снова писать как properties.
+ Некоторые расширения дублировали mimetype. Я сделал их массивом.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961230
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Код: python
1.
2.
image:
  - gif : [ gif ]



Что ж тут красивого-то?

Красиво, это когда интуитивно понятно, семантически верно, очевидно и лаконично.


mayton
Код: java
1.
2.
3.
gif  : image/gif
png  : image/png
jpg  : image/jpeg



Вот тут всё понятно и очевидно, ничего лишнего.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961339
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

mayton
Код: java
1.
2.
3.
gif  : image/gif
png  : image/png
jpg  : image/jpeg



Вот тут всё понятно и очевидно, ничего лишнего.

Тут - больше букв.

Давай такой промежуточный вариант. Как улучшить дизайн Yaml-конфига чтобы было "понятно и очевидно" ?
Потому что твоё предложение - это возврат к .properties файлу.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961368
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тут - больше букв.


Давно, когда я был молодым и зелёным, то был в восторге от разных трюков в С/C++, как можно десяток строчек кода сократить до одной.

Потом начал понимать, что меньше буков -- вовсе не так круто, как мне казалось.


mayton
Давай такой промежуточный вариант. Как улучшить дизайн Yaml-конфига чтобы было "понятно и очевидно" ?
Потому что твоё предложение - это возврат к .properties файлу.


Так зачем улучшать то, что итак хорошо?
Ну реально, давай лучше какой-то другой пример.

Потому что MIME-тип нельзя дербанить на части, он цельный. Именно в таком, цельном виде используется. И даже в шаблонах он цельный: "*/*", "image/*"..

В общем, другой пример нужен.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961421
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо. Я подумаю над другим примером. Но ты наверняка видел простыни пропертей вида.

Код: java
1.
2.
3.
4.
5.
application1.module1.form1.property1 = "FuckenValue1"
application1.module1.form1.property2 = "FuckenValue2"

application1.module2.form1.property1 = yes
application1.module2.form1.property2 = 1



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


Не особо. Ну давай перепишем так:

Код: javascript
1.
2.
3.
4.
5.
application1:
  - module1:
     - form1:
         - property1: yes
         - property2: 1



Что изменилось? Строчек стало больше. Меньше их никак не станет, так как на каждую пропертю всю равно одна строча. Добавилось проблем. Теперь нужно следить за форматированием.

Плюс ещё семантическая проблема. Сейчас может показаться, что в объекте form1 всего две проперти. Но это не так. В первом случае такой проблемы нет.

Плюс, я уже не могу оперировать так просто. Если пропертей будет больше, чем влезает на экран, то трудно удерживать контекст без специальных средств. Обычного текстового редактора будет недостаточно.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961568
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хорошо. Я подумаю над другим примером. Но ты наверняка видел простыни пропертей вида.

Код: java
1.
2.
3.
4.
5.
application1.module1.form1.property1 = "FuckenValue1"
application1.module1.form1.property2 = "FuckenValue2"

application1.module2.form1.property1 = yes
application1.module2.form1.property2 = 1



Скажи честно. Разве тебя это не раздражало?
он прав. Но разве это не представление VIEW.
Которое не должно зависеть от данных?
Делай:
Меню-Промотр конфига-Вариант1, вар2, вар3, варN
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961571
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Скажи честно. Разве тебя это не раздражало?


Не особо. Ну давай перепишем так:

Код: javascript
1.
2.
3.
4.
5.
application1:
  - module1:
     - form1:
         - property1: yes
         - property2: 1



Что изменилось? Строчек стало больше. Меньше их никак не станет, так как на каждую пропертю всю равно одна строча. Добавилось проблем. Теперь нужно следить за форматированием.

Плюс ещё семантическая проблема. Сейчас может показаться, что в объекте form1 всего две проперти. Но это не так. В первом случае такой проблемы нет.

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

Ширина среднего экрана была 80 символов для текстового режима дисплея. Это я беру по стандартам 20-го века.
Для современных - я не знаю сколько - но увеличим в 2 раза... 160 символов. Пускай будет.

Для среднего indent в 2 символа который форматирует моя IDE для Yaml я исчерпаю список через 80
рекурсивных уровней таких документов ну (и еще хвостик надо оставить чтоб правая часть не упёрлась
в границу).

Ты можешь себе представить документ с 80 уровнями вложенности? Я даже не помню встречал я такой
в своей практике.
...
Рейтинг: 0 / 0
Семантика Yaml документа.
    #39961573
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Меню-Промотр конфига-Вариант1, вар2, вар3, варN

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


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