web-dev-qa-db-ja.com

.yaml拡張子と.yml拡張子の違いは何ですか?

私はそれらを YAML-wikipedia で読みましたが、それらの主な違いを本当に理解していませんでした。誰かが.yaml拡張を使用しているのを見ましたが、Symfony2.yml拡張を使用します。

YAMLは、C、Perl、Pythonなどのプログラミング言語の概念、およびXMLと電子メールのデータ形式。

YAMLは、「YAML Ai n't Markup Language」の再帰的な頭字語です。開発の初期段階では、YAMLは「Yet Another Markup Language」[3]を意味すると言われていましたが、ドキュメントマークアップではなく、データ指向としての目的を区別するために再解釈されました(元の頭字語と逆称)。

それで、.yaml.ymlの正確な違いは?どちらを優先するかはいつですか?

90
lvarayut

ファイル拡張子は、ファイルの内容に影響を与えたり、影響を与えたりしません。 YAMLコンテンツは、.yml.yamlなどの任意の拡張子を持つファイルに保持できます。

(ややまばらな)YAML FAQ 推奨.yamlよりも.ymlを優先的に使用するが、歴史的な理由から多くのWindowsプログラマーはまだ使用するのが怖い拡張子が3文字を超えるため、代わりに.ymlを使用することを選択します。

したがって、実際に重要なのは、ファイルの拡張子ではなく、ファイルの中にあるものです。

134
David Heffernan

@David Heffemanが示すように、可能な場合は推奨が.yamlを使用することであり、2006年9月以降はそのように推奨されています。

一部のプロジェクトが.ymlを使用するのは、主に実装者/ドキュメント作成者の無知が原因です。読みやすさ、または他の形式では利用できない他の機能のためにYAMLを使用したかったため、推奨事項に慣れておらず、おそらく他のプロジェクト/ライブラリを見た後、(何が行われたのが正しいかどうかを疑わずに)働いた。

これにアプローチする最良の方法は、新しいファイルを作成するときは厳密に(つまり.yamlを使用)、入力を受け入れるときには寛容にする(つまり、.ymlを検出したとき)可能であれば、これらのエラーを自動的にアップグレード/修正します。

私が持っている他の推奨事項は、引数を文書化することですなぜあなたがする必要があると思うとき、.ymlを使用しなければなりません。そうすれば、あなたは無知を嫌い、他の人にあなたの推論を理解する機会を与えます。もちろん、「他の誰もがやっている」と「Googleで.yml.yamlよりも多くのページを持っています」は議論ではなく、間違っているか正しいプロジェクトの人気に関する統計にすぎません(YAMLファイルの拡張子に関して)。正しい.ymlの代わりに.yaml拡張子を使用しているという理由だけで、一部のプロジェクトが人気があることを証明することはできますが、そうするのは難しいと思います。

いくつかのプロジェクトは、誤った拡張子を使用していることに気づきました(たとえば、元はdocker-compose.ymlを使用していましたが、後のバージョンでは.yamlを使用し始めましたが、.yml )。 AppVeyor 2019のように、正しい拡張子についてはまだ知らない人もいますが、拡張子を含むプロジェクトの構成ファイルを指定できます。これにより、顔から設定ファイルを取得し、適切な拡張子を付けることができます:私は.appveyor.yamlの代わりにappveyor.ymlを使用して、Python用のYAMLパーサーのWindowsホイールを構築します)。


一方:

Symfony2のYaml(sic!)コンポーネントは、YAML 1.2バージョン仕様で定義されている選択された 機能のサブセット を実装します。

したがって、推奨される拡張機能のサブセットも使用するのは適切なようです。

1
Anthon