WordPressのコアファイルを読んでいるとちょくちょく@packageとか@linkなどアノテーションというものが出てきました。調べても全然意味わかりませんでしたが、また調べてみたらすっきりしました。どうやら難しく考えすぎていたようです。
要するに「アノテーションは便利なコメント」のようです。
アノテーションとは、データに注釈となるう情報を、メタデータとして追加すること、あるいは、
そのようにして追加されたメタデータのことである、アノテーション(annotation)は元々、注釈、注記といった意味合いの英語である。
http://www.weblio.jp/content/アノテーション
とあります。何となくプログラミングのコメントのようなものみたいです。
ではメタデータとは何なんでしょう。
メタデータとは、データについてのデータ。あるデータそのものではなく、
そのデータに関連する情報のこと。データの作成日時や作成者、データ形式、タイトル、注釈などが考えられる。
データを効率的に管理したり検索したりするために重要な情報である。文書や画像などを保存するファイル形式の多くは、
ファイルの先頭にメタデータを格納し、続いてデータ本体を格納するようにできている。
http://e-words.jp/w/メタデータ.html
プログラミングにおけるデータのデータですから、アノテーションはプログラミング要素(変数や関数など)に関する情報を記述すること、記述されたものということですね。
変数や関数などに関する情報、例えば引数の説明や関数が何をするかの説明などはコメントに書くこともできます。
コメントとアノテーションの違う点は、コメントがプログラム的に意味を持たないのに対して、アノテーションはプログラム的に意味を持つということです。
メモ : アノテーションとは.NETにおける属性のことだそうです。
例えばこれはVisual Basic.NETでの属性の記述です。
1 2 3 | <Description("オブジェクトの名前です")> Public Property ObjectName() As String ...... |
同じことをコメントで
1 2 3 | ' オブジェクトの名前です Public Property ObjectName() As String ...... |
と書くこともできますが。属性として記述すれば、プログラムからDescription属性の値、つまり”オブジェクトの名前です”
というテキストを取得することができるようになります。それに対してコメントは単に人間が見るだけのものでしかありません。
というわけなので、WordPressのコアファイルに出てきた@Packageや@linkなどはコメントにプログラム的な意味合いを持たせるということでした。
何か変に難しく考えすぎていたみたいです。+α具体的に何らかの便利な使い方があるみたいなのですが、ひとまずその機会は見えないのでおいておきましょう。
まとめ
アノテーションはコメントにプログラム的意味を持たせた「コメントの進化形」。
おまけ
何で数日前あんなに悩んでたのか分からないくらいすっきりしましたが、もしかしたら一度に色んなことを理解しようとしていたのかもしれません。アノテーションが何なのか、アノテーションはどういうときに使うのか、@linkは何?@packageって何?などなど色々理解しようとしてごちゃごちゃになっていたんですね。
調べても分からないときは、一度に色んなことを理解しようとしていないか要チェックです。