今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200


投稿日:2015年4月6日
  • 446
  • 0



プログラミング初心者こそ覚えるべき名前の付け方

meimei

プログラミングを始めたばかりの方にまず理解しておいてほしい、「命名規則」についてまとめました。

プログラミングの勉強を始めるとHello Worldから始まり、関数クラスオブジェクトと理解を深めていくと思います。

いざ「自分でコードを書いてみよう」となった時に困るのが、名前の付け方です。変数や関数になんと名前をつけていいか分からず、ローマ字で$moziretsu(文字列)なんて黒歴史は誰もが通る道です。

他にも名前が適当で「自分で書いたのに変数に何が入っているか分からない」なんてこともありがちです。

そうした問題を解決するのが「命名規則」です。

このページでは少し解釈を広げて、「誰が見ても理解できるコードを書く」ということを目標に様々なテクニックを紹介します。


目次


ハンガリアン記法もしくはハンガリー記法

考案者チャールズ・シモニーがハンガリー出身であることに由来する。

接頭辞に論理型を付けることで間違えたコードを間違えて見えるようにする記法。

それぞれの接頭辞と意味

文字 意味 使用例
b または f 論理型 bDutyFlag
by バイナリ型 byCount
n または i integerなどの整数型 nPower
l long整数 lDate
u 符号なし整数 uiColor
dw double word型 dwSize
 fp または f  単精度浮動小数点型  fpPrice
 db または d  倍精度浮動小数点型  dPi
 p または lp  ポインタ型  lpDirectSound
 s  文字列型  sPlayerName
 sz  ゼロ終端文字列型  szFileName
 fn  関数ポインタ型  fnCallback
 hwnd または h  ウィンドウハンドル型(Windowsのみ)  hMainWindow
 g_  グローバル変数  g_iErrorCode
 m_  クラスのメンバ変数  m_nx
 _  クラスのメンバ変数  ny_
 C  クラス  CHoge
 tag  構造体  tagRECT

(Wikipediaより)

ハンガリアン記法のメリット

論理型であるbFlagと、文字列型であるsNamebFlag + sName となっていれば誤りであることがわかる。

型の記述が2文字程度で済むので、変数名が短く済む。

ハンガリアン記法のデメリット

暗黙の型変換ができない。変数の型を変更するごとに変数名まで変更しなくてはならず、命名法に添って名前を付けるのが面倒。
(同じユーザーIDでも使い方によってはsUserid、iUseridなど)


キャメル記法

文字のラインが凸凹になる様をラクダのこぶになぞらえてキャメル記法と名付けられた。

大文字小文字を区別する言語と区別しない言語があるので使う場合は全体を統一すること。
先頭の文字を大文字にするか小文字にするかで2つのパターンがある。

アッパーキャメルケースまたはパスカルケース(1単語目から大文字)

悪い例	$userparameter
良い例	$UserParameter

ローワーキャメルケースまたは単にキャメルケース(2単語目から大文字)

悪い例	$userparameter
良い例	$userParameter

キャメル記法のメリット

単語同士の間に余計なスペースや区切り文字がないので文字数が短くて済む。

キャメル記法のデメリット

ぱっと見で単語の区切りが分かりにくい。


スネーク記法

単語と単語の区切りにアンダースコアを使う記法をスネーク記法(スネークケース)と呼ぶ。ちなみにアンダーバーという呼び方は和製英語なので止めよう。

単語の結合は一部COBOL、URLやCSSなどハイフンを推奨する例もあるが、普通ハイフンは演算子なので使用を避ける。

スネーク記法の例

悪い例	$userparameter
悪い例	$user-parameter
良い例	$user_parameter

スネーク記法のメリット

ぱっと見で単語の塊を認識できる。

スネーク記法のデメリット

区切り文字が入るため、単語数が多いと名前が長くなってしまう。page_size_ask_check_qsなど


変数や関数の一般的な名付け方

記法を理解したら次は一般的な名付け方を解説します。

なぜ「一般的」としたかというと、名付け方はコードの作者の好みによって異なるからです。好みについて議論しても一致点は見られないので、一般的に良しとされているルールを踏襲しておきましょう。


2015年2月にGoogleが面白いデータを公表しました。

関数の名前、コメント、スペース入れ方などのクセを探し出し、作者を特定するという試みです。

その結果630行のコードを分析すれば95%の精度で作者を特定できたそうです。

95%もの高い精度で判定できたということは、それだけプログラマーによって異なるルールを持っているという証明です。

「精度95%以上! ソースコードは指紋、作者はほぼ特定できる」より

長い名前は付けない

名前は長くても20文字程度に収まるように設計する。無駄に長い名前は可読性が落ち、入力が面倒で打ち間違いの元になる。言語によっては変数名の長さに制約がある。

悪い例	$user_reset_password_code
良い例	$resetPassCode

しかし現在の言語では制約がないものが多く、IDEの補完機能もあるため無理に短くするルールに縛られる必要はない。

理解できる名前にする

短ければ良いというものでもなく、適切な長さで意味の通じるものにする。また他の要素と混同するような省略の仕方は避ける。

短く済むならわざわざ省略しない

悪い例	$t
良い例	$total

別の意味に取られるような省略はしない

悪い例	$up
良い例	$UserPriority

複数の単語を組み合わせる場合はキャメル記法かスネーク記法を使う

悪い例	$dosaveoptions
良い例	$do_save_options

現代の言語は変数名の長さに制限はなく、古いエディタにあった1行78文字という制限も無いため、イレギュラーで長い名前になる程度は許容しよう。

それでもさすがに「GetApplicationConfigurationString」は長すぎる気がする…。

慣例としてあるものはその例に習う

略語が一般的なもの

悪い例	$average
良い例	$avg

悪い例	$Monday
良い例	$Mon

悪い例	$number
良い例	$no

「~であるか」、「~を有するか」、「~が可能か」といった場合、isを付ける

(当初「真偽値を取るものは先頭にisを付ける」としていましたが、コメントで誤りを指摘していただき修正しました。)

悪い例	$Login
良い例	$isLogin

定数の場合は大文字にする

悪い例	database_path
良い例	DATABASE_PATH

ループカウンターはiから始まる

(何重にもネストしていたり、ループが大量にある場合は名前に意味をもたせたほうが良い場合もあります)

悪い例	$loop
良い例	$i, $j, $k
ループカウンターに使う変数はなぜ「i」か

答えはFORTRANという言語で使われたから。ちなみに由来は整数型を表すintegerから。複数のループカウンターが必要な場合は「i」から始まりアルファベット順に「i」、「j」、「k」…と続く。

視認性の良さからi1i2等とすることもある。

以上のルールを混ぜない

せっかく良いルールを作っても統一されていなければ意味がありません。
また、どんなに自分のルールが素晴らしいと思っても、既に決められたルールには従いましょう

悪い例	$user_id、$UserEmail、$user-name
良い例	$user_id、$user_email、$user_name

対義語を理解する

こちらも間違って使用すると何のことやら分からない変数が出来上がるので注意。

Begin ⇔ End
Start ⇔ Stop
Top ⇔ Bottom
High ⇔ Low
Big ⇔ Small
Create ⇔ Destroy
Previous ⇔ Next
Allocate ⇔ Free
Attach ⇔ Detach
Get ⇔ Set
Get ⇔ Put
Input ⇔ Output
Show ⇔ Hide
Go ⇔ Back
Up ⇔ Down
Upper ⇔ Lower

私の命名法より


適切なコメントを付ける

コードはコンピューターに理解できる言語
コメントは人間に理解できる言語
自ずと求められる役割は異なります。

チームを組んでコーディングする以上、コンピューターと人間の両方に理解できるように書くのがプロの仕事です。

関数を書く場合、何のための関数なのか、バージョンいくつで追加されたのか変数には何が入るのか返り値は何か
以上の点を記載しておくと理解の助けになります。

WordPressのコメントが端的で秀逸なので紹介します。

/*
 * Retrieve ancestors of a post.
 *
 * @global array      $wp_post_types List of post types.
 *
 * @since 2.5.0
 * @param int|WP_Post $post Post ID or post object.
 * @return array Ancestor IDs or empty array if none are found.
*/

携わるのが日本人限定なら、もちろん日本語でも良い。

/*
 * 前のバージョンの投稿を取得する
 * 
 * @グローバル 配列 $wp_post_types ポストのリスト表示
 * @グローバル 配列 $wp_post_types 複数行に及ぶ長々とした冗長な解説も
 *                 後で見ると助かったりする。
 * @追加バージョン	2.5.0
 * @引数   整数|文字列 ポストIDもしくはポストオブジェクト
 * @引数   真偽値      複数引数がある場合は追加していく。
 * @返り値 配列        配列で前のバージョンのIDを返すか、ポストが見つからない場合は空要素を返す
*/

本当の上級者は難しい処理を、簡単なコードで実現します。
そうした方々はコードリーディング能力も高いため「下手なコメントは逆に邪魔になる」という意見もあります。

しかしそれができない初心者のうちこそ、丁寧にコメントを付けるように心がけてください。


変数や関数に使われる必要最低限の単語を覚える

プログラミングするにあたって、ネイティブのように英語を使いこなす必要はありません。しかし多少の英語力は求められます。

例えば何か要素を追加する場合、「addとputどちらが適切か。いや、setやappendもあるな…。そもそも新規の追加はcreateだったような…。」と、もやもやすることがあります。

そんな疑問を抱かずに済むように、よく使われる単語は覚えてしまいましょう。

当サイトで無作為にCMSやフレームワークを選び、変数や関数に使われている単語を調べたところ、共通して使われているのは200単語程度でした。これくらいなら簡単に覚えられますね。

へんてこな読み方をして恥ずかしい思いをしないように、読み方や省略形も含めてまとめてみました。

単語 読み 意味 使い方
absolute アブソリュート 絶対の 絶対パスの指定などに使われる。対比は相対(relative)。absと省略して使わえる。
abstraction アブストラクション 抽象化 サブルーチン化、モジュール化など
accept アクセプト 受け入れる、許可する 何かの申し出に対して許可する、受け入れる。acptと省略して使われる。
add アッド(アドとも) 追加、登録 既にあるものに何かを追加する際に使われる。1つのものに要素を追加する際はappend。
addition アディション 追加 何かの要素に新規に追加する場合に使用する。add(アッド)と省略して使われる。
after アフター 事後に 何かの処理の後に実行するものに使われる。aftと省略して使われる。
aggregate アグリゲイト 集計 aggrと省略して使われる。
align アライン 一直線にする テキストの揃え方を指定する。アリジン、アージンなど誤読多数。
allow アラウ 許す、許可する AがBに○○することを許可する、許可を与える。といった指定に使う。
append アペンド 付加 何かの要素を追加する際に使われる(合計は1つ)。addは物の追加に使われる(合計は2つ)。concatenateは物と物を繋げる(2つが1つになる)。
apply アプライ 適用する 何かを適用する際に使用する。
approve アプルーブ 承認する 公的に承認する際などに使われる。申し出に対して正式に受け入れるといった使い方。appvと省略して使われる。
argument アーギュメント 引数 arg(アーグ)またはargsと省略して使われる。複数の引数をまとめて渡す際によく使われる。
array アレイ 配列 hogeArray等として使われる。arrとして省略されることもある。
attachments アタッチメント 添付ファイル attachと省略して使われる。
authentication オーセンティケイション 認証 authと省略して使われる。実はcertificationのほうが一般的だがユーザー認証システムの場合はこちらを使うのが慣例。
author オーサー、実際の発音はアーサー 著者、作家 投稿やコメントを作成した投稿者に使われる。
authorize オーシャライズ 権限を与える 公認にするなどの意味。authと省略して使われる。
back バック 後部 何かの後ろの場所を示す。対義語はfront。
before ビフォー 前に 何かの処理の前に実行するものに使われる。bfrと省略して使われる。
boolean ブーリアン 真理値(trueもしくはfalse) bool(ブール)またはbと省略して使われる。真偽値を取る変数や関数は先頭にisを付ける方法も一般的。isLogin、isPostsなど。
boot ブート 起動 靴ではない。
build ビルド 作る、組み立てる URLなどをを組み立てる関数に使われる。
bundle バンドル 束ねる 何かをまとめる際に使われる。bdlと省略して使われる。
button ボタン ボタン btnと省略して使われる。
capability ケーパビリティ 能力 特定の機能を付加する際に使われる。
captcha キャプチャ キャプチャ 文字を画像にして入力してもらうことでスパム対策にする。
category カテゴリ 区分、種類 catと省略して使われる。複数の場合はcategories。
cd シーディー change directoryの略。
certification サーティフィケーション 認証 certと省略して使われる。認証局の認証などはこちらを使う。ユーザー認証はauthenticationを使う。
character キャラクター 文字列を表す型 char(チャー)もしくはch(シーエイチ)と省略して使われる。
children チルドレン 子要素 オブジェクトの子要素を扱う際に使われる。childrenはchildの複数形。foreach($children as $key => $child)など
clause クローズ SQLに渡す節を指定する際に使われる。複数の場合はclauses(クローズイズ)。
collapse コラップスもしくはコラプス 破線 いわゆる点線
column カラム 囲み記事、カラム、列 フィールド等と同じように使われる。
compile コンパイル 編集する 何かを設計図通りに変換する際に使う。
compute コンピュート 計算する 正規表現で計算する関数などに使われる。cmptと省略して使われる。
condition コンディション 条件 特定の値がtureか調べるときなどに使われる。
config コンフィグ 設定 confと省略して使われる。
confirm コンフォーム 確認 入力内容の確認の際に使われる。
construct コンストラクト 構築する 初期設定など、class内で初期設定する際に使われる。専用の指定方法があるため変数や関数名としてはあまり用いない。
consumer コンシューマー 使い手、利用者 実行しているログインユーザーを特定する場合などに使われる。
container コンテナ 容器、コンテナ データを格納する構造に使われる。オブジェクトの扱いを標準化するための入れ物。cntnrと省略して使われる。
context コンテキスト 文脈 プログラムでは複数の型の変数で異なる返り値を設定している場合に判断する際に使う。
control コントロール 操作 何かを操作する関数等に使われる。Ctrlと省略して使われる。
count カウント 項目の個数 cntもしくはcontと省略して使われる。
create クリエイト 作る 全く新しい要素自体を作るときに使う。既にあるものに要素を追加する場合はadd。
credential クリデンシャル 信任状、資格証明書
date デイト 日付 年月日。$post_dateなど
day デイ 普通dだけの場合はdayの省略形。複数はdays。
dead デット サーバやデータベースが死んでいないか確かめる際に利用する。
decimal デシマル 10進数 10進数に丸めるさいに使う。decと省略して使われる。
default デフォルト 初期値 初期値を設定する際に使われる。
delete デリート 削除 ゴミ箱に入れる場合はtrash。deleと省略して使われる。
dispatcher ディスパッチャ 通信指令系 複数の処理を並行して行うために振り分ける役割をする。dispと省略して使われる。
distinguish デスティングイッシュ 区別する distもしくはdistingと省略して使われる。
draft ドラフト 草案,草稿 下書きに使われる。dftと省略して使われる。
dump ダンプ 捨てる 何かを捨てる処理をする際に使われる。
ellipsis エリプシス 省略記号 …やら…など。
empty エンプティ 空の 空データのチェックなどに使われる。
enable イネーブル 有効にする 可能にするという意味もあることから、許可を与えるといった用途にも使われる。enblと省略して使われる。
enclose エンクローズ 囲む 括弧やクォーテーションなどで囲む際に使う。enclと省略して使われる。
entity エンティティ 実体 プログラムではエンティティ処理(文字参照、実体参照)に使われる。
env エンブ UNIX系で使われる環境変数。 そのまま環境変数の取得する変数等に使う。
exact エグザクト 正確な 厳密な値を求める場合などに使われる。
exception エクセプション 例外 例外処理に使う。
excerpt エクサープト 抜粋 大量の文章を抜粋表示する際に使われる。post_excerptなど
extend エクステンド 伸展する、伸長する、拡張する extension(エクステンション)とも。ファイルの拡張子等や機能拡張の意味で使う。ext(エクスト)、と省略して使われる。
extract エクストラクト 抜き取る、抽出する 何かの要素を抽出する際に使われる。コンテンツからURLを抜き出すなど。
field フィールド オブジェクトの持つ固有データ プロパティ、メンバ変数とも呼ばる。fldと省略して使われる。
fill フィル 充填する、詰める 変数に値を全てセットするような際に使う。
filter フィルター 選別する 何かのデータから抽出する場合に使われる。抽出後のものはfilteredとされる。fltrと省略して使われる。
flag フラグ 条件判定時に満たすべき条件。flgと省略して使われる。
force フォース 強く 何かを強制的に実行する場合に使われる。force-quitなど。fと省略して使われる。
front フロント 前部 何かの前の場所を示す。時間的に前の場合はBefore。対義語はback。プログラムではrearはあまり使われない。frと省略して使われる。
function ファンクション 機能 特定の機能について使う。funcもしくはfctnと省略して使われる。
gmt ジーエムティー GMT timezone
gradient グラディエントもしくはグラジエント 傾斜、勾配、グラデーション CSSでグラデーションの指定に使う。gradと省略して使われる。
handle ハンドル ハンドル ファイルを識別する情報に使われる。hdlと省略して使われる。
height ハイト 高さ hgtと省略して使われる。
hidden ヒドゥン 非表示 hide(ハイド)と省略して使われる。表示はshow。
hierarchical ヒエラリカル 階層的な 階層構造を持つ要素のフラグ等に使う。
hierarchy ヒエラルキー 階層 階層構造を持っているか調べるさいに使う。ちなみにネイティブの発音はハイラァーキーと聞こえる。
history ヒストリー 歴史 更新履歴などに使われる。
hook フック 留め金 何かの処理を加えたり変更する際に使う。
horizontal ホリゾンタル 水平 CSS等で使われる。horizと省略して使われる。
how ハウ どのように
ignore イグノア 取り消す 処理を取り消す際に使われる。
implements インプルメンツ 用具 関数や変数を定義する際に使われる。
index インデックス 添字や項目番号 Idxと省略して使われる。
infinity インフィニティ 無限大 inf(インフ)と省略して使われる。
info インフォ 情報 何かの情報に使われる。組み合わせて使われることが多い。error_info、user_infoなど
instance インスタンス クラスによって生み出されたオブジェクト 説明が難しいが、これ以上噛み砕いた表現もできない厄介な言葉。get_instanceなど
integer インテジャー 整数を表す型 int(イント)と省略して使われる。
invalid インバリード 無効な 無効な値を入力した際の変数に使われる。invalidationで無効にする。
iterator イテレータ 反復子 要素に順番にアクセスするための機能。ループ等で順番に要素を取り出せるようにしてある仕組み。
key キー 鍵、インデックスキー 通常インデックスキーの意味で使われる。if(hoge = $key)やforeach($hogelist as $key => $value)など
length レングス 長さ lenと省略して使われる。
locator ロケーター 目的のものが存在する位置や場所 パスや○個目の配列を参照といった時に使う。
lower ロウワー lower case(小文字) 小文字にするときに使う。lwrと省略して使われる。
maximum マキシマム 最大 最も大きい値などに使われる。max(マックス)と省略して使われる。
message メッセージ 通信 msgと省略して使われる。
meta メタ 付加情報 分かりにくい単語の中でもトップクラス。何かの付加情報と覚える。post_meta、user_metaなど。
method メソッド 方法、法式 何かと組み合わせて仕組みを作る際に使う。addMethod、setMethodなど。mthdと省略して使われる。
minimum ミニマム 最小 最も小さい値などに使われる。min(ミン)と省略して使われる。
minute ミニット 普通mだけの時はminuteの省略形。もしくはmin。複数形はminutes。
mkdir エムケーディア make directoryの略。
moderate モデレート 節度ある、中くらいの、内輪 転じて投稿やコメントの表示を承認する際に使う。本来は内輪での発言を管理するための言葉で、承認ならapproveやacceptのほうが近い。mdtと省略して使われる。
modified モディファイド 修正する、変更する 修正日時などに使われる。post_modifiedなど
modify モディファイ 修正する、改造する 最終更新日などに使われる。last_modifyなど。modと省略して使われる。
month マンス 普通mだけの場合はmonthの省略形。もしくはmo。複数形はmonths。
n/a エヌエー 該当なし(not applicable)もしくは利用できない(not available) R言語ではNA(not available、欠損値)として扱われる。
nan ナン Not a Numberの省略形 日本語では非数と言われる。不正な処理をした場合に出力される値。
navigation ナビゲーション 航海、航行 ITではページ移動キーなどのインターフェイスを指す。navと省略して使われる。
next ネクスト 次のページなどに使わる。反義語の前はPrevious。
normalize ノーマライズ 標準化、正常化 特定のデータを正規化する際などに使われる。normと省略して使われる。
notice ノーティス 通知、予告、予約 解除通知やアラートメールなどに使われる。
notify ノティファイ 通知する お知らせなどの行為そのものを指す。お知らせ(notice)をする関数等に使われる。ntfyと省略して使われる。
null ヌル 「何もない」といった意味の型。 何も要素が無いという意味で使われる。
number ナンバー 数字を表す型 num(ナム)もしくはnoと省略して使われる。添字(index)なのか、カウント(count)なのかわからないことがあるため注意。
object オブジェクト オブジェクト objとして省略されることもある。
offset オフセット 転じてあるデータの基準点からの差を表した値。検索結果の5つ目から表示といった場合に使われる。ofsと省略して使われる。
opacity オパシティ 不透明度 CSS等で使われる。
option オプション 選択 選ぶか選ばないか選択できるものに使う。個人的にoと省略するのはやめてほしいw
output アウトプット 出力 反義語はaddではなくinput。outと省略して使われる。
override オーバーライド 上書き、再定義、無視する 上書きや再定義する際に利用する。要素を新規追加する場合はaddition。ovrdと省略して使われる。
parent ペアレント 親要素の指定に使われる。
parse パース 構文解析 前処理で変数やプロパティを使用する形に変換する際に使われる。rss_parse_argsなど
pattern パターン 模様、パターン 複数の処理をする場合に条件分岐のフラグに使う。pattと省略して使われる。
percentage パーセンテージ 割合 省略してpercとすることもある。
permit パーミット 許可する、許可証 ルールに添って公的に許可する。○○するのに問題がないといった使い方をする。
popular ポピュラー 人気のある 人気のある投稿の表示などに使う。
position ポジション 位置 posと省略して使われる。posnと省略して使われる。
pragma プラグマ プログラムの断片 接頭辞やフラグなどを付加するのに使われる。
prefix プレフィックス 接頭辞 prefと省略して使われる。
prepare プレペア 準備 何かの処理の準備段階の関数名などに使われる。prepと省略して使われる。
preview プレビュー 試写、下見 これは普通にプレビュー。
private プライベート 非公開 ページを非公開にするかの判断に使われる。pvtと省略して使われる。
protocol プロトコル 通信規約
publish パブリッシュ 公開 ページを公開にするかの判断等に使われる。公開済みの場合はpublished。
put プット 置く、追加する 位置を移動して置く場合にはput。右のものを左に代入するといった場合にはput。追加の場合はadd。
quality クオリティ 品質 jpegの圧縮率などの指定等に使われる。qualと省略して使われる。
query クエリ 質問、疑問、疑問符 DBへの問い合わせに使われる。接頭辞でqとして使われる。応答にはresultを使う。
queue キュー 順番を待つ人や乗り物の)列 転じて古く登録されたものから順番に処理するものや、順番待ちしているものに使われる。
radius レイディアスもしくはラディウス 半径 角丸の半径などに使われる。radと省略して使われる。
rate レート 割合 割合を出すときに使われる。rtと省略して使われる。
reference リファレンス 引用、基準 tokenの指定や、一意性の識別等に使う値に使う。refと省略して使われる。
regex レジェックス 正規表現 特定の正規表現で検索や置換等を行う関数に使われる。
register レジスター 登録 登録関連の処理に使われる。rgtrと省略して使われる。
relative リレーティブ 相対の 相対パスの指定などに使われる。対比は絶対(absolute)。relと省略して使われる。
reminder リマインダー 備忘録、念押し 利用者に重要な事を思い出させる通知サービス。
request リクエスト 要請する、頼む データベースから値を取り出したり、関数に処理を依頼する場合に使う。reqと省略して使われる(ただしrequireもreqなので注意)。
require リクアイア 必要とする 必須の項目に使う。必須条件はrequirements。reqと省略して使われる(ただしrequestもreqなので注意)。
reservation リザベーション 予約 場所を予約する場合に使われる。予約投稿などに使われる。名詞。
reserve リザーブ 予約する、保留する ものや場所を予約する場合に使われる。動詞。rsvと省略して使われる。
response レスポンス 応答 pingや返り値に使われる。resと省略して使われる。
restore リストア 再生、復活 元の状態に戻したり、1度ゴミ箱に入れたデータを復旧する際に使われる。rstと省略して使われる。
result レゾルト 結果 関数やデータベースから取得した値に使われる。
return リターン 返り値 関数の返り値等に使われる。rtnと省略して使われる。
sanitize サニタイズ 取り除く あるデータから必要のないデータを取り除く際に使う。filterを使ってsanitizeする。
sanity サニティ 正気、健全 正常かどうかをチェックする際に利用する。
schedule スケジュール 予定、時間割 予め決められた機関に処理をする際に使われる。schedと省略して使われる。
scheme スキーム 計画、企画 意識高い系クリエイターが大好きな言葉。
second セコンド 普通sだけの場合はsecondの省略形。もしくはsec。複数形はseconds。
sender センダー 差出人 メールの送信者に使われる。sdrと省略して使われる。
sentence センテンス 転じて文章を構成する要素などに使われる。
separator セパレーター 分離器、隔離板 何かの要素を区切るものについて使われる。カンマや句読点を追加したりなど。sepと省略して使われる。
serialize シリアライズ 直列化 オブジェクト指向でバイト列やXMLフォーマットに変換すること。反義語はunserialize。もしくはdeserialize。
set セット 置く、設置 決められたものを所定の位置に置く。その値が入ることが決まっていた変数に、所定の値を代入する場合に使う。
shown ショウン 表示 show(ショウ)と省略して使われる。非表示はhidden。
sign サイン 記号、合図、符号 署名という意味でも使われる。sign key fileなど。
slug スラッグ スラッグ ワープロで印刷時にページの位置を示すために入るコード。転じてURL等を指定する際に使われる。slgと省略して使われる。
stack スタック 積む 最後に入力したデータから出力されるというデータ構造。上から追加したものから取り出すので、積んだ書類から転じて使われる。逆に古いものから出力されるのはキュー(queue)。stkと省略して使われる。
static スタティック 静的 値が変化しない静的な変数に使われる。スタティック変数、スタティックリンクなどに使われる。反義語はdynamic(ダイナミック)。
stick スティック 添え木 転じて投稿の一番上に固定で表示されるものなどに使う。stick_postなど
string ストリング 文字列を表す型 str(エスティーアール)と省略して使われる。省略したほうが読み方が長くなってるのは内緒。
strip ストリップ 剥ぎ取る 文字列や数列の一部を削除するような処理に使われる。stpと省略して使われる。
subject サブジェクト 問題、主題、件名 メールの件名等に使われる。subjと省略して使われる。
summary サマリー 概要、要約 各情報から必要な情報のみを抜き出す際に使われる。smyと省略して使われる。
suspend サスペンド 保留、停止する 一時停止する際に使用する。suspと省略して使われる。
temporary テンポラリー 一定時間経つと元に戻る 一時ファイルを扱う際に使われる。tempと省略して使われる。
term ターム 期間、期限、条件、規約 普通は分類の項目という意味で使われる。タグ(分類)に動物(項目)とあったら、動物がターム。hoge($termId, 1)、post_termsなど。
terminate ターミネート 終了する 終了処理の際に使われる。
thumbnail サムネイル 簡潔な 単純に画像のサムネイルに使われる。thumbやthumと省略される。
timezone タイムゾーン 基準時間
transition トランジション 推移する CSSのアニメーションに使われる。他にも何かの状態が推移した時に実行される関数等に使われる。trnsnと省略して使われる。
trash トラッシュ 捨てる ゴミ箱に入れるフラグをつけるのに使う。削除をする場合はdelete。
unique ユニーク 一意 IDなど一意性を保つものに使う。
update アップデート 更新 最新のものにする。
upper アッパー upper case(大文字) 大文字にするときに使う。uprと省略して使われる。
validate バリデート 確証する、確認する 入力値のチェックをする際に使われる。
value バリュー 何の値かを併記する場合が多い。user_valueなど。valと省略して使われる。
variable バリアブル 変数 宣言時だけでなく、解説等でよく使われる。var(バー)と省略して使われる。適当な変数名を付けるのが面倒な時に便利。
void ボイド 「無効な」といった意味の型。 データ型が不明・不正、または無効といった意味で使われる。vdと省略して使われる。
vote ボート 投票 投票システムに使われる。
week ウィーク 普通wだけの時はweekの省略形。もしくはwk。複数形はweeks。
weight ウェイト 重さ 体重ではなく、記事の重み付け、プライオリティなどに使われる。wtと省略して使われる。
what ホワット 何を 何かの処理をする対象を指定する際に使う。
when ホエン いつ 処理の日時を指定するのに使う。
where ホエア どこで 位置情報やページ情報などを指定するのに使う。
who フー 誰が 対象となるユーザーの指定に使う。
why ホワイ なぜ 使うとしたらフラグ分けの時くらい?
widget ウィジェット 部品 サイトにちょっとした機能を追加する仕組み。
width ウィドス ウィズ、ワイズとも読む。wdと省略して使われる。
window ウィンドウ そのまま窓 winだと勘違いが多いので、wndもしくはwdoと省略して使われる。
wrapper ラッパー プロトコル情報http、httpsなど あるプログラムの動作を決定するためのプログラム。内包するプログラムという意味でも使う。wrap(ラップ)と省略して使われる。
year イヤー 普通yだけの場合はyearの省略形。もしくはyr。複数形はyears。

これだけ覚えれば、大抵の名前は付けられるようになります。

もしわからない単語が出てきたら適宜調べて、専用のチートシートに追加しておくと理解が早まります。
調べる際は以下の様な便利なサイトを利用しましょう。

発音もわかる英和辞典:Weblio

文章の翻訳をしてくれる:グーグル翻訳

命名に使われる単語と意味を調べられる:codic


以上、変数や関数の命名規則に関してまとめてみました。

全て読んでくれた方に、最後に最大のアドバイスがあります。
それは「以上のルールに縛られるな」という点です。

移り変わりの早いIT業界では、現在素晴らしいと言われれているルールも、5年後は見る影もないということが日常茶飯事です。大切なのはより良い方法を見つけた時に、それを取り入れる柔軟な姿勢です。


現在のページを共有する



現在のページに関連する記事

今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200 Firefox機能拡張のポップアップとコンテンツスクリプトについて
WordPressに人気の記事を表示するPopular Postsの導入方法 WordPressに人気の記事を表示するPopular Postsの導入方法
WordPressに現在のページに関連する記事を表示するSimilar Postsの導入方法 WordPressに現在のページに関連する記事を表示するSimilar Postsの導入方法
今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200 「人気ブログの作り方」もう色で悩まない!人気ブログから学ぶ色彩のテクニック
今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200 WordPressの新・旧ループからカスタムクエリ・アーカイブまで徹底解説
今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200 「人気ブログの作り方」最高のアクセスアップ法!記事とソーシャルメディアの相乗効果
今さら聞けない、変数や関数の命名規則と、まず覚えるべき英単語200 「人気ブログの作り方」一瞬で惹きつけるタイトルを人気10ブログから分析

おすすめの記事

Windows 10でネットワークが不安定になった際の対策まとめ

Windows 10でネットワークが不安定になった際の対策まとめ

WordPressでアイキャッチ画像をサムネイルとして一覧ページに表示する方法

WordPressでアイキャッチ画像をサムネイルとして一覧ページに表…

メールのエラーコードと、メールサーバのmaillog解析方法まとめ

メールのエラーコードと、メールサーバのmaillog解析方法まとめ

ページ編集の手間を劇的に減らす、Custom Field Templateでカスタムフィールドを作る方法

ページ編集の手間を劇的に減らす、Custom Field Templateでカス…

GMO VPSを契約してWordPressを安定動作させるまでのサーバ設定方法

GMO VPSを契約してWordPressを安定動作させるまでのサーバ設定…

WordPressの新・旧ループからカスタムクエリ・アーカイブまで徹底解説

WordPressの新・旧ループからカスタムクエリ・アーカイブまで徹…

Custom Post Type UIでカスタム投稿を作って、誰でも簡単に編集できる投稿画面を作る方法

Custom Post Type UIでカスタム投稿を作って、誰でも簡単に編集…

Adblock対策プラグイン「End of Adblock Cycle」を作成しました

Adblock対策プラグイン「End of Adblock Cycle」を作成しました


いただいたコメントなど

  1. ななし のコメント:

    >ループカウンターに使う変数はなぜ「i」か
    >
    >答えはFORTRANという言語で使われたから。ちなみに由来は整数型を表すintegerから。
    iteration(繰り返す)のiでは?

    • oxy のコメント:

      なるほど、繰り返すという説もあるんですね。
      少し調べなおしてみましたが、どうやら数学の式の習慣に則って整数にI,J,Kが使われていたことと、Index,Iterator,Integerといった変数に使うにはIから使うのが都合が良いからというのがあり、FORTRANの作者であるBakusが『Iから始まる6文字に決まったのは、みんな添え字にI、J、Kをつかっていたので、(L、M、Nを)気前よく増やした。』と発言しています。それが整数型を表す変数として定義されたことから定着したそうです。

      出典:http://qiita.com/yaju/items/38f63900491d4ac51af7

    • のコメント:

      学校では InTeger として、整数型の変数が I から T まで確保されていて、最初の変数が I と習いました。

    • oxy のコメント:

      今は皆が使ってる慣習も、さかのぼってみると以外に諸説あることが多いようです。
      何を信じるかは、我々の捉え方次第かもしれませんね。

  2. 匿名 のコメント:

    接頭辞に変数型を付けるのは本来のハンガリアン記法ではないですね。古い文章ですが
    http://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B
    の後半でそのあたりの話があります

    • oxy のコメント:

      なるほど、勉強になります。
      変数の役割などを識別するのにも使われるんですね。

  3. zan のコメント:

    lower、upperは、小さくする、大きくするから転じてじゃなくて、lower case、upper caseの略だと思うんですが。

  4. めとろいと のコメント:

    かなり過去のページですが、見つけたし、他の方も見つけるだろうから参考程度にコメントします。

    紹介されているのはシステムハンガリアン記法ですね。
    そのやり方が流行ったため、VB6だと逆にこれに則らないと毛嫌いされる傾向にあると思います。

    個人の好き嫌いもありますが、「真偽値を取るものは先頭にisを付ける」は誤解を招くと思います。
    「~であるか」、「~を有するか」、「~が可能か」などの求めるものによって、意味合いが異なるので。
    PHPでは「is_numeric」、「is_array」などという関数があって、他の言語でも似たようなものがあります。
    このことから、「数値かどうか」、「配列かどうか」という意味合いになります。
    なので、例にある「isLogin」は「ログインか」という、意味がわからない状態になってしまいます。

    以下は、命名規則の参考になるものです。
    http://qiita.com/KeithYokoma/items/2193cf79ba76563e3db6
    http://objectclub.jp/community/codingstandard/CodingStd.pdf
    2つめはJava用ですが、命名規則については参考になると思います。

    • oxy のコメント:

      ご指摘ありがとうございます。
      まさしくおっしゃる通り、真偽値という言葉の定義を勘違いしていました。
      修正させていただきました。

      参考のリンクもありがとうございます。勉強させていただきます。

  5. 匿名 のコメント:

    capabilitieはcapabilityだと思います

  6. 44heee のコメント:

    プログラミング知識の深い方からは、
    いろんなご指摘も受けるでしょうが、
    総じて、非常にためになるサイトだと思います。

  7. mk のコメント:

    childrenはchildの複数形ですので、childは省略ではありませんよ。

  8. noname のコメント:

    nullは本来の英語の発音に近い言い方で「ナル」っていう人もたまにいますね。
    まあ、入門書とかにも本当は「ナル」って言うんだよって書いてあってみんな知ってるけど
    その上で「ヌル」って呼ぶのが主流になってる気がしますが。

    • oxy のコメント:

      和製英語の難しいところですね。リナックスとリヌックスも悩ましいところです。
      一応このページの情報は初心者の日本人向けなので、ヌルで覚えたほうが実用的だと思います。

  9. yb.jack のコメント:

    細かいですが、append の 使い方に掲載されている `oncatenate` は先頭の `c` が欠けているかと思います。

  10. 匿名 のコメント:

    abstractionの読みが『アブストラクション』ではなく、『アブスラクション』となっています。
    あと、addの読みでは『アド』なのに、appendの説明文には、『add(アッド)と省略して使われる』とあります。
    同じ単語の読みなんだし、統一しましょうよ。

    細かい指摘だと思いますが、プログラミング入門者や今さら聞けないで勉強している人向けの記事なんだし、
    この記事の目的上、誤字・脱字・読み違いはしてはいけない部分ですよ。

    あと、additionの読みは『アディーション』でなく、個人的に『アディション』ですけどね。

    面倒な記事の割にツッコミも多くて苦労が報われないと思いますが、とても良いまとめ記事だと思います。グッジョブです。^_^b

    • oxy のコメント:

      細かな点までご指摘いただき、ありがとうございます。
      校正が行き届いておらず、失礼しました。
      修正させていただきました。

  11. 匿名 のコメント:

    serializeの逆はdeserializeじゃないんでしょうか?
    javaではその対応をよく見ます。

  12. 匿名 のコメント:

    最近のエディタは優秀なので困ることは少ないのかも知れませんが、、、、
    > ループカウンターはiから始まる
    > 悪い例 $loop
    > 良い例 $i, $j, $k

    使用箇所が数ステップであれば良いのですが、「1文字の変数名」は
    数十ステップで使用されると非常に追いにくい(読みにくい)ので推奨いたしかねます。

  13. nakato のコメント:

    アンダースコアは、publicやprivateの区別で使用されるみたいな事を聞いたのですが、どうなのでしょうか??
    リンク( https://teratail.com/questions/41277 )
    私はプログラミング学習初心者ですので詳しくありません。疑問に思い質問させていただきます。

    • oxy のコメント:

      アンダースコアをどのように解釈するかは命名規則だけでなく、おっしゃるとおり言語特有の扱い方もあります。
      使う言語に合わせて使ってください。

  14. 匿名 のコメント:

    細かい部分の指摘等はあると思いますが、全体的に
    とても分かりやすくまとめられていると思います。
    コーディング命名規則のサイトいくつか見ましたが、
    初心者には特に為になると感じました。

  15. Sei のコメント:

    width ウィドス 幅 ウィズ、ワイズとも読む。wdと省略して使われる。
    とありますが、「ワイズ」とは読みません。少なくとも、google君は(つまり英語の発音は)。

    「ワイズ」と読む人がいますが、「間違っている」ことを明記すべきだと思います。
    この発音は、恥ずかしいと思います。

コメントを残す

コメントは認証制のため、すぐには反映されません。

プログラミングに関する質問は「日本語でプログラミングの悩みを解決するQ&Aサイト sukegra」をご利用ください。