Что такое файл конфигурации

Обновлено: 02.07.2024

Разрастание UX-дизайна имитирует разрастание городов как в стремлении к росту, так и в потенциально опасных подводных камнях. Вот несколько вещей .

Запах кода может стать причиной плохого кодирования в угольной шахте. А плохое кодирование — это признак того, что требуется рефакторинг. Давайте .

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

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

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

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

Преодолейте сбои AWS, научившись создавать многорегиональную архитектуру, обеспечивающую отказоустойчивость в случае аварии.

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

Amazon ECS и EKS похожи, но их различий достаточно, чтобы выделить их для пользователей AWS. Узнайте, что лучше всего подходит для вашего .

Считаете, что готовы к сертификационному экзамену AWS Certified Solutions Architect? Проверьте свои знания, ответив на эти 12 вопросов и.

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

Amazon хотела бы укрепить свое глобальное присутствие, но гигант электронной коммерции сегодня сталкивается с препятствиями и проблемами, которых у него не было.

Насколько хорошо вы знаете обработку исключений в Java? Эти 10 сложных вопросов с несколькими вариантами ответов для проверенных и непроверенных .

Не позволяйте возникновению RuntimeException в Java привести к остановке вашего кода. Вот 10 примеров того, как избежать .

Ключом к коду без ошибок является знание наиболее распространенных типов ошибок во время выполнения в Java, а также знание того, как их .

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

Intel оптимистично настроена, что ее дорожная карта процессоров может вернуть компанию на первое место, но компания сталкивается со сложной перспективой .

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

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

Виртуализация приносит экономию средств и экономит время ИТ-специалистам, которые курируют роботов-роботов. Для эффективной реализации требуется облачная среда.

Администраторы часто сравнивают Xen и KVM как варианты с открытым исходным кодом. Основными факторами, которые следует учитывать при выборе основного гипервизора, являются организационные факторы.

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

Экран компьютера с открытыми файлами или окнами

На вашем компьютере есть тысячи файлов конфигурации. Вы можете никогда не взаимодействовать напрямую с большинством из них, но они разбросаны по всей вашей папке /etc и в ~/.config и ~/.local и /usr . Вероятно, некоторые из них есть в /var и, возможно, даже в /opt. Если вы когда-нибудь открывали один из них случайно или для внесения изменений, вы, возможно, задавались вопросом, почему некоторые файлы конфигурации выглядят так, а другие — совершенно иначе.

Программирование и разработка

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

Зачем нужна конфигурация

Файлы конфигурации (сокращенно "файлы конфигурации") важны для современных вычислений. Они позволяют вам настроить то, как вы взаимодействуете с приложением или как приложение взаимодействует с остальной частью вашей системы. Благодаря файлам конфигурации каждый раз, когда вы запускаете приложение, оно «запоминает» то, как вам нравится его использовать.

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

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

Даже без опыта программирования вы можете себе представить, как код анализирует эти данные.Вот два простых примера, один с использованием команды awk, а другой с использованием команды grep, фокусируясь только на строке, содержащей «ключ» NAME, и возвращая «значение», появляющееся после знака равенства ( = ):

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

Выберите формат

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

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

Файлы INI имеют формат пар ключ-значение:

Этот простой стиль настройки может быть интуитивно понятен, единственной причиной путаницы могут быть плохие имена ключей (например, загадочные имена, такие как unampref вместо name ). Их легко анализировать и легко редактировать.

Формат INI содержит разделы в дополнение к ключам и значениям. В этом примере кода [example] и [demo] являются разделами конфигурации:

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

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

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

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

Файлы JSON технически являются подмножествами YAML, поэтому их структура данных такая же, хотя синтаксис полностью отличается:

JSON популярен среди программистов JavaScript, что неудивительно, учитывая, что JSON означает нотацию объектов JavaScript. В результате тесной связи с веб-разработкой JSON является распространенным форматом вывода для веб-API. В большинстве языков программирования есть библиотеки для разбора JSON.

XML использует теги как ключи, окружающие значение конфигурации:

XML часто используется Java-программистами, а в Java имеется богатый набор парсеров XML. Хотя XML имеет репутацию довольно строгого языка, он одновременно очень гибкий. В отличие от HTML, в котором есть набор тегов, которые вам разрешено использовать, вы можете произвольно изобретать свои собственные теги XML. Если вы последовательно структурируете его и имеете хорошую библиотеку для анализа, вы сможете легко и точно извлекать данные.

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

Двоичные форматы

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

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

  • Скорость. Программист может зарегистрировать определенные биты информации в определенных точках конфигурационного файла двоичного файла, используя пользовательскую запись. При извлечении данных поиск не требуется, поскольку все уже проиндексировано.
  • Размер. Текстовые файлы могут стать большими, и если вы решите сжать текстовый файл, вы фактически преобразуете его в двоичный формат. Двоичные файлы можно уменьшить с помощью трюков с кодированием (то же самое относится и к текстовым файлам, но в какой-то момент ваши оптимизации делают ваши данные настолько неясными, что они также могут быть двоичными).
  • Запутывание: некоторые программисты не хотят, чтобы люди даже смотрели на их файлы конфигурации, поэтому они кодируют их как двоичные данные. Обычно это приводит только к разочарованию пользователей. Это не является веской причиной для использования двоичных форматов.

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

Найдите то, что работает

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

Разрастание UX-дизайна имитирует разрастание городов как в стремлении к росту, так и в потенциально опасных подводных камнях. Вот несколько вещей .

Запах кода может стать причиной плохого кодирования в угольной шахте. А плохое кодирование — это признак того, что требуется рефакторинг. Давайте .

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

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

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

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

Преодолейте сбои AWS, научившись создавать многорегиональную архитектуру, обеспечивающую отказоустойчивость в случае аварии.

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

Amazon ECS и EKS похожи, но их различий достаточно, чтобы выделить их для пользователей AWS. Узнайте, что лучше всего подходит для вашего .

Считаете, что готовы к сертификационному экзамену AWS Certified Solutions Architect? Проверьте свои знания, ответив на эти 12 вопросов и.

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

Amazon хотела бы укрепить свое глобальное присутствие, но гигант электронной коммерции сегодня сталкивается с препятствиями и проблемами, которых у него не было.

Насколько хорошо вы знаете обработку исключений в Java? Эти 10 сложных вопросов с несколькими вариантами ответов для проверенных и непроверенных .

Не позволяйте возникновению RuntimeException в Java привести к остановке вашего кода. Вот 10 примеров того, как избежать .

Ключом к коду без ошибок является знание наиболее распространенных типов ошибок во время выполнения в Java, а также знание того, как их .

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

Intel оптимистично настроена, что ее дорожная карта процессоров может вернуть компанию на первое место, но компания сталкивается со сложной перспективой .

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

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

Виртуализация приносит экономию средств и экономит время ИТ-специалистам, которые курируют роботов-роботов. Для эффективной реализации требуется облачная среда.

Администраторы часто сравнивают Xen и KVM как варианты с открытым исходным кодом. Основными факторами, которые следует учитывать при выборе основного гипервизора, являются организационные факторы.

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

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

Но некоторые программы требуют от вас большего. Вместо меню вы должны отредактировать текстовый файл, чтобы программное обеспечение работало по вашему желанию.

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

Что такое файлы конфигурации?

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

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

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

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

Пользователям Linux особенно хорошо знакомы файлы конфигурации, так как многие базовые задачи обслуживания требуют их редактирования. Настройка Raspberry Pi часто зависит от редактирования файлов конфигурации. Это может быть указание беспроводной сети для подключения или установка объема оперативной памяти для графики.

Однако файлы конфигурации существуют не только в Linux. Иногда вам может потребоваться отредактировать их в Windows или macOS.

Как найти и отредактировать файлы конфигурации

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

  • JSON (обозначение объектов JavaScript)
  • YAML (YAML не является языком разметки)
  • XML (расширяемый язык разметки)

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

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

Теперь давайте взглянем на реальный файл конфигурации. Как мы упоминали ранее, они бывают разных форм и размеров. Один из конфигурационных файлов, с которым вы почти наверняка знакомы, — это файл hosts. Windows, Mac и Linux используют это для ручного сопоставления IP-адресов с именами хостов.

Файлы конфигурации Windows

Пользователи Windows найдут файл hosts в папке c:\windows\system32\drivers\etc\.

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

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

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

Файлы конфигурации Linux

В Linux вы найдете файл hosts в /etc/. Его можно открыть в Gedit или текстовом редакторе командной строки, таком как nano или vim. В большинстве случаев в вашем дистрибутиве Linux будет предустановлен один или все из них.

Некоторые программы хранят файл конфигурации в домашнем каталоге с точкой в ​​начале имени файла. Эти файлы конфигурации иногда имеют расширение .rc, и мы называем их «dotfiles».

Файлы конфигурации в macOS

Как и в Linux, файл hosts можно найти в /etc/ в macOS.

Пользователи Mac будут знать, что BBEdit является предустановленным текстовым редактором по умолчанию. Это делает его идеальным для редактирования файлов конфигурации в macOS. Однако, как и в Linux, также доступны редакторы командной строки vim и nano.

Приложения для безопасного редактирования файлов конфигурации

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

Для этого вам понадобится текстовый редактор. Избегайте текстовых процессоров; они могут добавить к файлу форматирование, которое помешает правильному чтению.

Как уже упоминалось, доступны собственные текстовые редакторы. Однако для дополнительных функций также доступны сторонние текстовые редакторы:

Загрузить: Notepad++ для Windows (бесплатно)

Загрузить: Atom для Windows, macOS, Linux (бесплатно)

Загрузить: Sublime Text Editor для Windows, macOS, Linux (бесплатная пробная версия)

Для каждой платформы доступно так много инструментов для редактирования текста, что трудно рекомендовать какое-то одно приложение. Пользователи Linux также могут проверить наш список текстовых редакторов Linux. Тем временем этот обзор текстовых редакторов для macOS должен помочь владельцам компьютеров Apple.

При редактировании файла конфигурации важно убедиться, что вы следуете принятым в нем соглашениям. Это можно понять, просто взглянув на него. Некоторые конфигурационные файлы, такие как файл hosts, объяснят вам эти соглашения в закомментированных строках. Другие заставят вас прочитать документацию или пару сообщений в блогах.

Наконец, если редактируемый файл конфигурации имеет формат JSON или XML, рассмотрите возможность использования текстового редактора с подсветкой синтаксиса. Notepad++ и Atom — хорошие варианты. Подсветка синтаксиса повысит вашу точность, показывая вам, когда вы допустили ошибку.

Другие места, где вы можете найти файлы конфигурации для редактирования

Если вы заинтересованы в дальнейшем изучении файлов конфигурации, вы найдете их во всех видах приложений и платформ. Файлы конфигурации — это больше, чем указание, какие веб-сайты и IP-адреса блокировать!

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

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

Веб-приложения также используют файлы конфигурации для настройки.

Что делать, если изменение конфигурации не работает?

Проблемы, связанные с редактированием файлов конфигурации, как правило, делятся на два лагеря: разрешения и ошибки пользователя.

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

Это легко исправить:

  • В Windows щелкните правой кнопкой мыши текстовый редактор и выберите "Запуск от имени администратора".
  • В macOS и Linux попробуйте повысить свои привилегии с помощью команды sudo. Итак, если вы редактировали файл hosts, запустите sudo nano /etc/hosts

(Обратите внимание: если вы укажете другое имя файла или местоположение, вы фактически создадите файл конфигурации в терминале.)

Когда проблема связана с ошибкой пользователя, это означает, что это ваша вина. Убедитесь, что вы не сделали никаких опечаток и следовали соглашениям файла конфигурации.

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

  • Проверьте внесенные изменения
  • Убедитесь, что вы оставили комментарий

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

Файлы конфигурации важны

Более чем важно, они являются неотъемлемой частью использования Linux. Знание того, как правильно их редактировать, может значительно помочь вам.

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

Используете Linux? Вот подробнее об изменении и управлении файлом hosts в Linux.

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

Экран компьютера с открытыми файлами или окнами

На вашем компьютере есть тысячи файлов конфигурации. Вы можете никогда не взаимодействовать напрямую с большинством из них, но они разбросаны по всей вашей папке /etc и в ~/.config и ~/.local и /usr . Вероятно, некоторые из них есть в /var и, возможно, даже в /opt. Если вы когда-нибудь открывали один из них случайно или для внесения изменений, вы, возможно, задавались вопросом, почему некоторые файлы конфигурации выглядят так, а другие — совершенно иначе.

Программирование и разработка

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

Зачем нужна конфигурация

Файлы конфигурации (сокращенно "файлы конфигурации") важны для современных вычислений. Они позволяют вам настроить то, как вы взаимодействуете с приложением или как приложение взаимодействует с остальной частью вашей системы. Благодаря файлам конфигурации каждый раз, когда вы запускаете приложение, оно «запоминает» то, как вам нравится его использовать.

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

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

Даже без опыта программирования вы можете себе представить, как код анализирует эти данные. Вот два простых примера, один с использованием команды awk, а другой с использованием команды grep, фокусируясь только на строке, содержащей «ключ» NAME, и возвращая «значение», появляющееся после знака равенства ( = ):

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

Выберите формат

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

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

Файлы INI имеют формат пар ключ-значение:

Этот простой стиль настройки может быть интуитивно понятен, единственной причиной путаницы могут быть плохие имена ключей (например, загадочные имена, такие как unampref вместо name ). Их легко анализировать и легко редактировать.

Формат INI содержит разделы в дополнение к ключам и значениям. В этом примере кода [example] и [demo] являются разделами конфигурации:

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

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

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

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

Файлы JSON технически являются подмножествами YAML, поэтому их структура данных такая же, хотя синтаксис полностью отличается:

JSON популярен среди программистов JavaScript, что неудивительно, учитывая, что JSON означает нотацию объектов JavaScript. В результате тесной связи с веб-разработкой JSON является распространенным форматом вывода для веб-API. В большинстве языков программирования есть библиотеки для разбора JSON.

XML использует теги как ключи, окружающие значение конфигурации:

XML часто используется Java-программистами, а в Java имеется богатый набор парсеров XML. Хотя XML имеет репутацию довольно строгого языка, он одновременно очень гибкий. В отличие от HTML, в котором есть набор тегов, которые вам разрешено использовать, вы можете произвольно изобретать свои собственные теги XML. Если вы последовательно структурируете его и имеете хорошую библиотеку для анализа, вы сможете легко и точно извлекать данные.

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

Двоичные форматы

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

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

  • Скорость. Программист может зарегистрировать определенные биты информации в определенных точках конфигурационного файла двоичного файла, используя пользовательскую запись. При извлечении данных поиск не требуется, поскольку все уже проиндексировано.
  • Размер. Текстовые файлы могут стать большими, и если вы решите сжать текстовый файл, вы фактически преобразуете его в двоичный формат. Двоичные файлы можно уменьшить с помощью трюков с кодированием (то же самое относится и к текстовым файлам, но в какой-то момент ваши оптимизации делают ваши данные настолько неясными, что они также могут быть двоичными).
  • Запутывание: некоторые программисты не хотят, чтобы люди даже смотрели на их файлы конфигурации, поэтому они кодируют их как двоичные данные. Обычно это приводит только к разочарованию пользователей. Это не является веской причиной для использования двоичных форматов.

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

Найдите то, что работает

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

Читайте также: