LINUX.ORG.RU

С какими форматами конфигурационных файлов вам приятно работать как пользователю?

 


0

2

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

Опрос в контексте использования готового ПО, а не разработки.

  1. INI 334 (57%)

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************

  2. JSON 218 (37%)

    ****************************************************************************************************************************************************************************************************************

  3. YAML 215 (37%)

    *************************************************************************************************************************************************************************************************************

  4. TOML 102 (17%)

    *************************************************************************************************

  5. XML 87 (15%)

    ***********************************************************************************

  6. Самописные 67 (11%)

    ****************************************************************

  7. Никаких конфигов, только UI! 49 (8%)

    **********************************************

  8. Для этого должны быть CLI утилиты 43 (7%)

    *****************************************

  9. Свой вариант (укажите в комментариях) 27 (5%)

    *************************

  10. Реестр Windows 21 (4%)

    ********************

  11. SQLite (и другие embedded DB) 21 (4%)

    ********************

  12. Специализированные библиотеки (libConfuse, libconfig, etc) 20 (3%)

    *******************

Всего голосов: 1204, всего проголосовавших: 583

★★★

Проверено: Satori ()
Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от hobbit

XML просто надо уметь готовить.

Похоже, не умеет никто :)

question4 ★★★★★
()
Ответ на: комментарий от filosofia

Как люди пользуются json без комментариев в качестве конфига я так и не понял.

Имена параметров должны хорошо отражать их предназначение :)

question4 ★★★★★
()
Ответ на: комментарий от mittorn

Как с xml может быть удобно работать?

Отформатировать его пробелами, чтобы стал как YAML, например.

Разумеется, при большом уровне вложенности это сложно.

question4 ★★★★★
()
Ответ на: комментарий от X512

YAML Ни разу его не видел. Где он вообще применяется?

Docker, Kubernetes и прочее. Лично я им пользовался для модов к OpenXcom.

question4 ★★★★★
()
Ответ на: комментарий от question4

Да я к тому что ни с точки зрения чтения он не удобен, ни для программиста. Для программиста удобен в редких случаях когда нужно что-то вроде DOM, а так его entity tree просто перегружен всяким лишним

mittorn ★★★★★
()
Ответ на: комментарий от Pravorskyi

добавить ссылки прямо в пункт опроса

Не уверен, что будет работать. Экспериментировать над уже подтверждённым — не очень идея.

hobbit ★★★★★
()
Ответ на: комментарий от torvn77

На первое время хочется GUI, но потом текстовые файлы просто удобнее, так как информация в них расположена плотнее и по ним удобнее перемещаться.

Чеканная формулировка!

hobbit ★★★★★
()
Ответ на: комментарий от t184256

No — это ключевое слово типа false что ли? False в качестве ключа тоже нельзя?

В любом случае

“NO”: Norway

Должно прокатить.

filosofia
()
Ответ на: комментарий от slovazap

Мне каждому в этом треде индивидуально рассказывать что я не работаю с XML и (пока успешно) избегаю его?

mord0d ★★★★★
()

С документированными.

aiqu6Ait ★★★★
()
Ответ на: комментарий от question4

Как люди пользуются json без комментариев в качестве конфига я так и не понял.

Имена параметров должны хорошо отражать их предназначение :)

К сожалению, имена параметров не всегда могут отражать варианты возможных значений параметра.

captain_cat
()
Ответ на: комментарий от mord0d

Да всем наплевать с чем ты работаешь и чего избегаешь. Просто говорю что размер для XML вообще не проблема. Проблема - сам XML.

slovazap ★★★★★
()
Ответ на: комментарий от pfg

Да, мне проще изобрести формат и написать парсер к нему, чем возиться с bloated XML. Ну или если нужно быстро, то взять JSON и не париться — парсеров к каждому языку валом.

mord0d ★★★★★
()
Ответ на: комментарий от slovazap

Да всем наплевать с чем ты работаешь

А этот опрос — твоя галлюцинация, или моя? ☺

Проблема - сам XML.

Вот тут да, полностью согласен.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

создавать необходимый инструмент прям по месту вещчъ самая лучшая. пока ентих узкозаточенных инструментов не становится слишком дофиха и поддерживать их тяжковато… а когда приходится сращивать немного отличающиеся форматы в одну хрень…
и появляется сделать «вещчъ один, но универсальный» хотя и не идеальный в плане отдельных прикладных функций.
краткая предыстория множества стандартизированных форматов, стуктур и протоколов, начиная с диаметра ствола ручного оружия :)

pfg ★★★★★
()

INI и TOML - это не одно и тоже? Ну собственно их и выбрал, плюс cli утилиты.

Kolins ★★★
()
Ответ на: комментарий от hobbit

Чеканная формулировка!

Ты только в экстазе про первую часть фразы не забудь, GUI тоже полезная часть жизни, особенно если надо расставить кучу бинарных переменных(чекбоксов)

torvn77 ★★★★★
()
Ответ на: комментарий от mord0d

А этот опрос — твоя галлюцинация, или моя?

Этот опрос к тебе никакого отношения не имеет. Будь скромнее.

slovazap ★★★★★
()
Ответ на: комментарий от pfg

Про универсальность не согласен. Возьми какой-нибудь Ansible и сделай его на каком-нибудь универсальном формате конфигов. Ой!

mord0d ★★★★★
()
Ответ на: комментарий от Pinkbyte

XML при размере сложнее пары десяткой полей превращается в адский ад для ручного разбора

Подтверждаю

INI - это прошлый век, но для простых случаев(или когда его использует более высокоуровневая прослойка, например QSettings) - пойдет.

Для хранения свойств своих Qt-программ выбрал именно его. На GNU / Linux смотрится не очень, зато просто и знакомо всем.

xwicked ★★☆
()
Ответ на: комментарий от question4

Имена параметров должны хорошо отражать их предназначение :)

Иногда, поменяв значение параметра, хочется прокомментировать почему и нафига оно такое. Чтобы заглянув в конфиг год спустя не задаваться вопросом «ШЗХ?».

apt_install_lrzsz ★★★
()
Ответ на: комментарий от Pinkbyte

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

tz4678 ★★
()

Проголосовал за самописные. Буквально вчера думал, какой у туцыищфе грамотный,удобный и интуитивно понятный конфиг, вот бы у всех было так же. Это консольный rss ридер, если что.

Dog ★★★
()

YAML лучший

YAML не самое хорошее что бывает, но остальные хуже.

Camel ★★★★★
()
Ответ на: комментарий от darkenshvein

INI неудобен для иерархических конфигов с несколькими уровнями вложенности. БД, впрочем, тоже.

Хотя в том же JSON/YAML/libConfuse такой конфиг может поместиться в пределах 1-2 экранов, даже не теряя в читабельности.

Pravorskyi ★★★
() автор топика
Ответ на: комментарий от Pravorskyi

Встречал в дикой природе десктопные приложения, которые хранили свои конфиги во встраиваемых БД (реляционных или key-value). Для мобильных приложений хранить свои настройки в базе данных - вовсе не редкость. ¯_(ツ)_/¯

ISPManager 5 / ISPManager 6 хранят основные настройки в sqlite-базе. А это уже серверное приложение. Так что по разному бывает, не едиными мобилами и десктопами…

lucentcode ★★★★★
()
Ответ на: комментарий от Dog

Если хочешь чтобы твоей тулзой кто-то пользовался, то делай конфиги на yaml. У большинства современных утилит (кубер, докер) он используется.

tz4678 ★★
()
Ответ на: комментарий от tz4678

Я таким не пользуюсь, мне скорее кажется, что все на json повернулись.

Dog ★★★
()
Ответ на: комментарий от X512

Ни разу его не видел. Где он вообще применяется?

Очень широко применяется в CI, в Java той же.

EXL ★★★★★
()
Ответ на: комментарий от Pravorskyi

INI неудобен для иерархических конфигов с несколькими уровнями вложенности.

Почему? Я так пользуюсь

[aaa\bb\ccc]
dd=fff
ee=ggg
[vvv\bbb]
nbnb="adas asdsa"
mm=123

парсится штатной ф-цией

Psilocybe ★★★★
()
Ответ на: комментарий от tz4678

Если отступы везде консистентно пробелами делать - никаких проблем. Проблема как раз в том, что фанаты пробелов хреначат их чаще всего как бог на душу положит. Где-то по 2, где-то по 3 - «ачотакова, понятно же что это одинарный отступ?». С tab ты либо делаешь один отступ, либо два - и это сразу будет видно. Сделать полтора отступа случайно у тебя физически не выйдет. Плюс регулируемая(в нормальных редакторах) длина табуляции - как кому больше нравится(кто-то любит по tab по 2 символа, кто-то - по 4).

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

Отдельного котла в аду достойны люди которые хреначат в одной строке пробелы, потом табы, а потом снова пробелы.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

Только json.

IPR ★★★★★
()
Ответ на: комментарий от X512

Я встречал, когда нужно было Travis CI к гитхабу прикрутить, там всё настраивается через travis.yml.

hobbit ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Мне тоже много приходилось работать с XML, и я даже был его энтузиастом и евангелистом. В своё время, перевел пару книг об XML и XSLT.

Но со временем пришёл к выводу, что это формат не для человеческих глаз.

И да, для того, чтобы открыть его со сворачиванием и подсветкой, его надо открыть в специальном редакторе. Такая роскошь не всегда доступна (например, что-то отлаживаем или меняем на живую нитку на удалённом сервере по ssh). В этой ситуации вообще туши свет, а они встречаются гораздо чаще, чем хотелось бы.

emorozov
()
Ответ на: комментарий от Pravorskyi

Речь о конечном формате конфига, который редактирует пользователь. Оный совсем не обязан знать программирование.

Тогда твой опрос вдвойне чушь! Ну какие либы? Какие хмли??? Юзер - это адекватный чел, который максимум что может - чекнуть чекбокс (и то если понимает назначение полей конфига - не всегда это так).

matumba ★★★★★
()
Ответ на: комментарий от Pinkbyte

Отдельного котла в аду достойны люди которые хреначат в одной строке пробелы, потом табы, а потом снова пробелы.

Вот именно! Из-за идиотов, которые в 21 веке экономят 3 байта на табах, в файлы пролазят такие вот «кракозябры»! А были бы везде пробелы, проблем бы не знали. Тем более табы не нужны в сорсах - там сплошь и рядом ситуации, когда начало строки не укладывается в «табулированную» логику. К чёрту этих экономов, ставьте спэйсы!

matumba ★★★★★
()
Последнее исправление: matumba (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.