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

Конфигурация, люди ее любят и ненавидят. С его помощью вы можете изменить поведение вашего приложения и настроить его под свои нужды. Когда все усложняется за обедом, вы расстраиваетесь, если нет документации. Итак, как выбрать, какие типы файлов использовать для этого? На этот вопрос нет простого ответа, поэтому позвольте мне немного разбить его. В этом посте я выделю четыре различных типа файлов, которые я использовал и буду использовать для такого рода задач. Эти типы файлов: JSON, YAML, XML и dotenv.

JSON

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

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

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

Пример конфигурации JSON можно найти в верхней части этого сообщения.

YAML

YAML - это компактная, но читаемая версия XML, которая позволяет использовать объекты и массивы. Это делает его полезным, если вы привыкли к JSON, потому что вы можете эмулировать одни и те же структуры данных в обоих форматах файлов. В отличие от JSON, вы действительно можете использовать комментарии в своих файлах конфигурации, что позволяет использовать встроенную документацию, возможные параметры конфигурации и в целом более удобную работу для разработчиков.

Конечно, у всего хорошего есть и недостатки. Не все языки программирования имеют встроенную поддержку синтаксического анализа файлов. Однако в большинстве, если не на всех языках, есть дополнительные библиотеки, которые вы можете установить для анализа этих файлов. Таким образом, вы не совсем запутались, когда хотите использовать YAML, но ваш язык программирования не поддерживает его. У него также довольно крутая кривая обучения для написания правильно отформатированных файлов. Если вы привыкли к языкам типа C, это будет трудный переход. Как и Python, для правильной работы YAML должен иметь правильный отступ. Если вы случайно сделаете отступ в строке другим способом, чем ожидает синтаксический анализ, он может назначить выбранные свойства либо родительскому, либо дочернему объекту.

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

XML

XML, языки разметки, которые многие люди любят сразу же отвергать. «Это старомодно, убери это с моего лица!». Однако, поскольку он существует уже некоторое время, он оказался очень надежным, и это также помогло включить парсеры для него во многие языки. Многие языки имеют либо встроенные встроенные парсеры, либо есть расширения и библиотеки, которые вы можете использовать для извлечения из них данных. Он также позволяет оставлять комментарии, так что вы можете встроить всю необходимую документацию, если захотите. Похоже на HTML, что упрощает понимание, чем JSON или YAML.

Есть и свидания. Файлы конфигурации намного больше по размеру, чем JSON или YAML. Это не проблема, если у вас мало данных или вы не собираетесь ими ни с кем делиться. Таким образом, размер файлов может быть релевантным или неактуальным в зависимости от вашей ситуации. Анализаторы XML сложнее использовать, чем JSON или YAML. Каждый раз, когда мне приходится разбирать данные в PHP, меня немного ошеломляет, насколько сложен на самом деле парсер. Через некоторое время вы поймете, почему это работает именно так, и станет лучше. Для написания правильного XML-файлов требуется довольно крутая кривая обучения. Простая ошибка может сделать весь ваш XML-файл недействительным. Будет полезно посмотреть на примеры и поэкспериментировать с этим.

Я бы использовал XML для простых, но также и для очень сложных структур данных. Создать иерархию и добавлять свойства очень просто. Для большинства языков есть собственные парсеры, так что вы можете сразу приступить к работе. Вы можете сделать эти файлы настолько простыми или сложными, насколько захотите. Это не самые удобочитаемые данные, но если вы привыкли к HTML, вы поймете, что происходит.

Dotenv

Dotenv или .env - это, безусловно, самые простые файлы конфигурации, о которых вы только можете подумать. Технически они используются в качестве файлов конфигурации для конкретной среды, но вы можете изменить много поведения с помощью значений, которые он хранит. Файлы Dotenv обычно относятся к одной среде и не должны сохраняться в системе контроля версий. Вы можете использовать комментарии в файлах dotenv, но поскольку вы, скорее всего, не будете делиться ими с кем-либо еще, это будет для вас, а не для других. Этот тип конфигурации имеет очень простой формат "ключ-значение".

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

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

Какой у вас тип файла конфигурации?

Если вы ищете удобный способ хранения сложных конфигураций, выберите один из первых трех. Если вы хотите отслеживать простые данные, выберите файл dotenv. Вы используете какой-либо другой тип файла для конфигурации? Если да, то почему вы используете именно этот тип файлов? Я хотел бы услышать ваше мнение по этому поводу! Сообщите мне в Твиттере, что вы используете для настройки своих приложений.

Размещено: 4 апреля 2019 г.

Первоначально опубликовано на https://roelofjanelsinga.com.