設定ファイルの名前、API の仕様書、ライブラリのドキュメント。コードの周辺には「読めるけれど、正確な意味は説明できない」英単語がよく登場します。このブログの taxonomies.toml にある taxonomy もその一つです。知っていれば一瞬、知らなければ調べても腑に落ちにくい——そんな語を、意味と由来からまとめて押さえます。

taxonomy — 分類の「体系」

taxonomy(タクソノミー) は、ものを階層的に分類する体系のことです。語源はギリシャ語の taxis(配置)+ nomia(法則)で、もとは生物学の分類(界・門・綱・目・科・属・種)を指す言葉でした。

ソフトウェアでは「カテゴリやタグでデータを整理する仕組み」を指して使われます。このブログにも taxonomies.toml があり、カテゴリ(大分類)とタグ(細分類)を定義しています。単なる「カテゴリ一覧」と言わず taxonomy と呼ぶのは、個々のラベルではなく 分類の構造そのもの を指したいからです。

taxonomy = 「何をどう分類するか」を決めた枠組み。ラベルの一覧ではなく、ラベルの体系。

近い言葉に ontology(オントロジー) があります。taxonomy が「親子の階層」を表すのに対し、ontology は「関連まで含めた概念の地図」を表す、と区別すると分かりやすいです。

「性質」を一語で言い切る形容詞

コードの振る舞いや設計の性質を、英語の形容詞ひとつで言い切る場面が多くあります。日本語にしにくいぶん、そのまま使われがちです。

  • idempotent(冪等, べきとう): 何回実行しても結果が同じこと。HTTP の PUTDELETE は冪等で、POST はそうではありません。「リトライしても安全か」を語るときの鍵語です。
  • canonical(正規): 「公式に一つだけ」と決めた標準形。同じ内容に複数の URL があるとき、検索エンジンに正本を伝える rel="canonical" が代表例です。canonical form と言えば「表記ゆれを一つに揃えた形」を指します。
  • orthogonal(直交): 互いに独立していて、片方を変えてももう片方に影響しないこと。「この2つの機能は直交している」と言えば、組み合わせても干渉しないという意味です。
  • agnostic(非依存): 特定の何かに縛られないこと。cloud-agnostic なら「どのクラウドでも動く」。「〜を選ばない/問わない」と訳すと近いです。
  • opinionated(規約重視): フレームワークが「やり方はこれ」と強く決めていること。最小限しか決めない設計は逆に unopinionated と呼ばれます。

コードそのものを指す言い回し

  • boilerplate(ボイラープレート): 毎回ほぼ同じ形で書かされる定型コード。語源は新聞社が使い回した鋼板(boiler plate)で、「使い回しの決まり文句」の比喩です。
  • syntactic sugar(糖衣構文): できること自体は増えないが、読み書きを楽にするための構文。新機能ではなく「砂糖でくるんで飲みやすくした」だけ、という比喩です。
  • vanilla(バニラ): 何も足していない素の状態。vanilla JavaScript はフレームワークなしの生の JS を指します。アイスの基本がバニラ、というイメージです。

一覧で押さえる

出会ったときに「あれだ」と思い出せるよう、もう少し並べておきます。

読み・訳 意味
deprecated 非推奨 まだ動くが、将来消える予定で使うべきでない
arbitrary 任意の/恣意的 何でもよい、または特に理由なく決めた
semantic 意味論的 見た目(構文)ではなく意味に関する。semantic versioning など
heuristic 発見的 最適は保証しないが、だいたいうまくいく経験則
graceful 穏当な 急に壊さず行儀よく処理する。graceful shutdown など
sensible default 妥当な初期値 設定しなくても困らない、まともなデフォルト値

まとめ

  • これらは 英語の一般語をそのまま専門語として使っている ので、訳より「どの場面で何を指すか」で覚えるのが近道
  • taxonomy は個々のラベルではなく 分類の体系 を指す語
  • 性質を表す形容詞(idempotent / canonical / orthogonal / agnostic / opinionated)は、一語で設計の意図を伝えるための語彙
  • 意味をあいまいにしたまま流している語に気づいたら、由来まで一度引いておくと定着する