LoginSignup
20
23

More than 3 years have passed since last update.

変数名に使う英単語を省略するのための4方式

Last updated at Posted at 2020-06-12

はじめに

変数(や関数)の命名にあたっては、明確な名前をつけよう、とよく言われる。たとえば、このあたりのトピックで有名な書籍『リーダブルコード』では、「名前に情報を詰め込む」ために

  • 明確な単語を選ぶ
  • 汎用的な名前を避ける(あるいは、使う状況を選ぶ)

ことが推奨されている。他にも、以下のような記事で似た内容が書かれている。

一方で、変数名に使う英単語はなるべく短くしたいというニーズもある。そうでないと、何度も改行が必要になってコードが読みにくくなったり、アプリを構成するファイル名がエディタで表示しきれなくなったり、などの不都合が起きる。

したがって変数の命名にあたっては、なるべく短く、かつ元の形が推測できるようにしたまま単語を省略したい。この2つの条件を満たす省略法があれば、「このワードは変数名に入れた方がいいけど長くなるから止めよう」といった理由で情報量が不十分な変数名をつけてしまう事態も避けられるはず。

以上の目的から、変数名の省略にはどのような方法があるかを整理してみたい。

省略の4方式

1. acronym(pwd方式)

ここで紹介する省略法のうち、おそらく最も分かりやすいのがacronym(和訳は「頭文字語」らしいが、しっくりこないのでそのままacronymと呼ぶことにする)かと思う。何かというと、語句を構成する単語の先頭だけを取る形で省略したもの(ただし、REpresentational State Transferが略されてRESTになるように、頭文字より後ろの文字も使われる場合がある)。

たとえばUNIXコマンドの一つにpwdがあるが、これはPrint Working Directoryを略したacronym。他にも、このタイプの略語としては以下のような例がある。

cd # Change Directory
re # Regular Expression
html # Hyper Text Markup Language

ただ、世の中に浸透していないacronym(たとえばピコ太郎が登場する以前の「PPAP」)を急に使ってしまうと当然通じないので、オリジナルの略称を作る場合にはあまり適さないかもしれない。

2. ある子音より後を削る(app方式)

acronymほど単純ではないけれどよく見るのが、単語の中である子音より後を削る省略法。iOSアプリのプラットフォームApp Storeなどにも含まれるappという言葉がapplicationlより後ろを略した形であることから、ここではapp方式と呼ぶことにする。

以下ではRailsでの開発やPythonによる分析をしていてよく目にするapp方式の略称を並べてみたが、このあたりは言語を問わず広く使われているのでは。

dev # development
env # environment
col # column
const # constant

末尾になる子音の選び方としては、なるべく前方の文字を選ぶけれど、これより前にある文字まで削ると意味が曖昧になってしまう、ぎりぎりのラインを目指すということかと思う。

例として、categoryを省略したい場合を考えてみる。最後のoryを落とすのはいいとしても、さらに2文字削ってcatとしてしまうと、読む人に「これはcatenationかもしれないしcatchかもしれない」などと考えさせることになる。だからcategぐらいが適当なのでは、といった具合に調整するのがよさそう。

ちなみに、特定の母音より後ろを削るタイプの省略法もなくはない。たとえば日本語ではSFと略されるScience Fictionは、英語圏だとSci-Fiと呼ばれている。が、このパターンは上述のものと比べて稀なので、そういうパターンもある、くらいの認識をしておけば十分かもしれない。

3. 重要な文字だけを残す(img方式)

app方式はある文字より後ろをばっさり削るというものだったが、単語の先頭や末尾などポイントになりそうな文字だけ残してその他を間引くアプローチもある。このアプローチは、imageからagを落とした略称img(これはHTMLのタグ名でもある)に倣って、img方式と呼ぶことにしてみる。

btn # button
usr # user
idx # index

ここで挙げたidxは単にiと略されることも多いが、文脈によってintegerとかid (identification)の略ではないことを明確にしたい場合は使う価値がある。

ちなみに日本語で対応する例も考えてみると、「ありがとうございます → あざす」や「ウッチャンナンチャン → ウンナン」などは、同じ発想による省略と言えそう。

4. 2と3の合わせ技(jp方式)

tmp # temporary

このパターンは頻出ではないもののたまに見る。

japanjpと略すのはもはや慣例になっているが、よく考えてみるとapp方式ではjapimg方式ではjpnまでしか短くできないところで、この二つが併用されてjpという形になっていることが分かる。

まとめ

いろいろ見てきたが、コーディングの現場で変数名を決めるにあたっては短さより分かりやさが重視されることが多い。分かりやすさを損なわない方法としては、基本的にapp方式が無難なのではと思う(とはいえ他の方式も、省略形から原形を推測するにあたっては役に立つ)。

省略法を知っていることは、名前の衝突を避けたい場合も役に立つ。たとえばPythonの開発や分析では、リスト(一般的なプログラミング用語では配列)を意味するためにlstという変数名が使われることがある。ここでlistの代わりにlstという変数名を使うことには、list()という予約語(メソッド)を上書きしてしまう問題を避けるメリットがある。

なお、この記事では変数の例を中心に単語の省略法を見てきたが、これらは、関数、カラム、ディレクトリ、ファイルなどの命名にも当然ながら応用できる。

20
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
23