В чем разница между расширением .yaml и .yml?

59

Я читал их в YAML-википедии, но не очень понял, в чем их основная разница. Я видел, что кто-то использует расширение .yaml, однако, Symfony2 использует расширение .yml.

YAML - это читаемый человеком формат сериализации данных, в основе которого лежат понятия языков программирования, таких как C, Perl и Python, а также идеи XML и формат данных электронной почты.

YAML - это рекурсивная аббревиатура от "YAML не является языком разметки". На ранних этапах разработки YAML имел в виду "еще один язык разметки" [3], но затем был переосмыслен (обратный перевод оригинальной аббревиатуры), чтобы отличить его назначение как ориентированное на данные, а не разметку документа.

Итак, как именно отличается между .yaml и .yml? Когда мы должны предпочесть одно другому?

Теги:
naming-conventions
yaml

2 ответа

79
Лучший ответ

Расширения файлов не имеют никакого отношения к содержимому файла. Вы можете хранить содержимое YAML в файлах с любым расширением:.yml,.yaml или вообще что-нибудь еще.

(довольно редкий) YAML FAQ рекомендует, что вы используете .yaml, предпочитая .yml, но по историческим причинам многие программисты Windows все еще испугался использования расширений с более чем тремя символами и поэтому предпочитает использовать .yml.

Итак, что действительно важно, это то, что находится внутри файла, а не его расширение.

  • 7
    Присвоение предпочтения ".YML" перед ".YAML" соглашению о символах DOS 8.3 - это IMO красная сельдь. Скорее всего, это связано с тем, что три (3) символа, начинающиеся с «Y», достаточно понятны, поскольку несколько расширений начинаются с «Y».
  • 17
    Тенденция к 3-символьным расширениям была явно подкреплена Windows и ее правилом 8.3. Мысль о том, что люди сегодня действуют из-за страха, может быть преувеличением, но их поведение, по привычке, трудно оспорить, и что эта практика была под сильным влиянием Windows, также трудно оспорить.
0

Как указывает @David Heffeman, рекомендуется использовать .yaml когда это возможно, и эта рекомендация действует с сентября 2006 года.

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

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

Другая рекомендация, которую я имею, состоит в том, чтобы задокументировать аргумент (ы), почему вы должны использовать .yml, когда вы думаете, что должны. Таким образом, вы не любите невежда, и дать другим возможность понять ваши рассуждения. Конечно, "все остальные делают это" и "В Google .yml имеет больше страниц, чем .yaml " - это не аргументы, это всего лишь статистика популярности проектов, которые имеют это неправильно или правильно (в отношении расширения файлов YAML). Вы можете попытаться доказать, что некоторые проекты популярны, просто потому, что они используют расширение .yml вместо правильного .yaml, но я думаю, что вам будет сложно это сделать.

Некоторые проекты (слишком поздно) осознают, что они используют неправильное расширение (например, первоначально docker-compose использовал .yml, но в более поздних версиях начал использовать .yaml, хотя они все еще поддерживают .yml). Другие по-прежнему не знают правильного расширения, например AppVeyor в начале 2019 года, но позволяют вам указать файл конфигурации для проекта, включая расширение. Это позволяет вам избавиться от файла конфигурации и придать ему правильное расширение: я использую .appveyor.yaml вместо appveyor.yml для создания колесных дисков моего парсера YAML для Python).


С другой стороны:

Компонент Yaml (sic!) В Symfony2 реализует выбранный набор функций, определенных в спецификации версии YAML 1.2.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню