プログラミングでよく使う英単語のまとめ【随時更新】

随時追加、整理していきます。

名前をつけるときには、名詞、動詞の違い、複数形、過去形などに注意しましょう。
オブジェクト指向では、クラス名は名詞、メソッドは動詞とします。

使ってはいけない言葉

get / set
アクセサ(getter/setter)やプロパティによく使われている。
逆にそれ以外に使うと混乱を招くのでよくない。
中に重い処理は書いてはいけない。
プロパティ以外で使いたくなったら他の言葉を考える。
load, save, commit, store, enable, disable,
fetch, apply, configure, add, etc...

check
意味が広すぎて何をしているかわからない。
できるだけ別の言葉を使う。
具体的に何をしているかに分解して考えるとよい。
代わりによく使われるメソッド/プロパティ名は下記の通り。
isNull, isEmpty, isNullOrEmpty, isValid, canSave, canClose,
hasSaved, hasChanged, exists, contains, etc...

xxxManager / xxxController
こういう名前をつけるとクラスが肥大しやすい。
単一責任の原則にのっとってクラスを設計するべし。
UNIX哲学にも「Small is beautiful.」という考え方がある。

xxxType, xxxData, xxxItem, xxxInfo
冗長になりやすい。
Type, Data, Item, Infoを取っても意味が通じないか検討してみる。

使わないほうがよい言葉

compare
比較する。
便利なときもあるが、比較した結果がどうなるか分かりにくいので他の動詞を検討する。
exists, contains, equals, isSmall, etc...

toggle
切り替える、入れ替える。
便利なときもあるが、切り替えた状態がどうなるか分かりにくいので他の動詞を検討する。
turnOn, turnOff, etc...

対になる言葉

comment out / uncomment
コメントにする、コメントを解除する。
comment outはinto a commentの意味。
commentだけならコメントする、評するの意味になる。

add / remove
追加する、削除する。
リストなどに値を入れる場合などにも使われる。
特に、末尾に追加する場合はappend、先頭に追加する場合はprependを使う。
Add A to Bで、AをBに加える。
Remove A From Bで、BからAを取り除く。

start / stop
開始する、止める。
静止状態から動き出す感じがstart。

begin / end
始める、終わる。
最初の一歩を踏み出す感じがbegin。

first / last
初め、終わり。
単純な並びの場合や数を数える場合はfirstを使う。

top / last
先頭、末尾。
順位やレベルを意識する場合はtopを使う。

head / tail
頭・尾から転じて先頭・末尾。
ファイルの先頭や末尾を表すのに使う。

header / footer
ヘッダー、フッター。
本文を表す場合はtextやbodyが使われる。

top / bottom
頂上、底辺。

up / down
上へ、下へ。

upper case / lower case
大文字、小文字。

under / over
未満、超える。

or under / and over
以下、以上。
greater thanとかnot less thanなど多数の言い方がある。

previous / next
前へ、次へ。

go / back
前へ、後ろへ。

forward / backward
前方、後方。

foreground / background
前景、背景。
プログラミングでは使わないがmiddle-groundで中景という言い方もある。

push / pop
箱に入れる、中から取り出す。
キューや順序を持ったリストに対して使う。

push / pull
入れる、引っ張る。
gitのコマンドなど。

enqueue / dequeue
キューに追加する、キューから取り出す。
queueは待ち行列の意味。
末尾は上上(ueue)で覚えておくとスペルに迷わない。

before / after
適用前、適用後。

parent / child / children / self
親、子、子供達、自身。

open / close
ファイルやソケットを開く、閉じる。

delete / restore
ファイルを削除する、復元する。

connect / disconnect
回線を接続する、切断する。

source / destination
送り元、送り先。

input / output
入力する、出力する。
デバイス(画面やキーボードなど)からの入出力。

import / export
取り込む、輸入する、インポート。
外に出す、輸出する、エクスポート。

read / write
ファイルやポートを読み出す、書き込む。
readは読む行為そのものを指す。

save / load
保存する、読み込む。
読み出して取り込む(設定する)までがload。

set / unset
設定する、解除する。
resetは再設定する、セットし直す。

lock / unlock
ロックする、解除する。

attach / detach
結びつける、切り離す。

suspend / resume
休止する、復帰する。

enable / disable
有効にする、無効にする。

activate / deactivate
アクティブ化する、非アクティブ化する。

show / hide
表示する、非表示にする。

visible / hidden
表示の、非表示の。
hiddenの方がinvisibleより物理的な感じ。

valid / invalid
有効な、無効な。
validationで検証の意味。

collapse / expand
折りたたむ、展開する。
ツリーを操作する場合に使う。

available / unavailable
利用可能、利用不可または入手可能、入手不可。

allow / deny
許可する、拒否する。アラウ、ディナイと発音する。
ファイルシステムのパーミッションやネットワーク関連では失敗するとよくdeniedと言われる。

host / guest
ホスト、ゲスト。
客を招く側がホスト。
客がゲスト。

server / client
サーバー、クライアント。
サービスを提供する側がサーバー。
依頼する方がクライアント。

provider / user
提供者、使用者。

caller / callee
発信者、受信者から転じて関数の呼び出し元と呼び出し先。
末尾がeeで終わると「された側」を表す。

on-premise / cloud
premisesで施設。on-をつけて、施設内で。つまり自社システム。
クラウドはインターネットを介したシステム一般のこと。クラウドサービスなど。

似た意味の言葉 / ニュアンスの違い

log in / log out
log on / log off
sign in / sign out / sign up / sign on
logは丸太に印を付けて記録していたのが語源。転じてパソコンのログに記録すること。
log inは主にLinuxで使われる。アカウントに入る。
log onは主にWindowsで使われる。
signは署名なので、パソコンがない時代から使われている。
sign inは主にWEBで見かける。署名して入る。
sign upは申し込む場合。アカウントを作成する。
sign onは書類にサインする場合。
login, logon, signinは用法に違いはない。

certification / authentication
certificationは権威をもった第三者が証明するイメージ。認証局による証明。
authenticationは二者間での証明。パスワード認証など。本人確認。
日本語ではどちらも証明や認証となるので混乱する。

identify / identification / identifier / identity
そのユーザーが本人かどうか識別するのをidentify。動詞。
識別する行為そのものはidentification。identifyの名詞形。識別、ID、身分証。
そのユーザーを特定するために用い情報をidentifier。識別子。氏名、変数名など。
そのユーザーを特徴付けるあらゆる情報をidentity。アイデンティティ、同一性。

classify / classification / class
classifyは分類する。動詞。
classificationは分類。classifyの名詞形。
classは分類された区分。

category / group
categoryは分類、種類、ジャンルのこと。
genre(ジャンル)というのは特に芸術やエンタメで使われるカテゴリのこと。
groupは共通性を持つ集団。どのカテゴリに属しているグループか。

kind / class / type
kindは大まかな種類分けで用いられる。品種。
classは差別化した種類分けで用いられる。階級。
typeは一般的な意味で種類を表す。より具体的な感じ。種類。

class / rank
classは階級、等級、層を表す。区切りはしっかりしているが、大雑把な感じ。
rankは外部からの評価に対して使われる感じ。classより順位を意識させる。

grade / level
gradeは等級や段階を表す。上下や優劣を表すが、大雑把な感じ。
levelは水準を表す。gradeより具体的な感じ。

config / setting / preference
構成、ハードよりの設定、開発者が設定するものはconfig。
ソフト側の設定、ユーザーが変更できるものはsetting。
ユーザーが設定するもので特に表示や挙動の好みの設定はpreference。
基本はconfigとsettingの使い分けで十分。

initialize / setup
初期化する。セットアップする。
一番初めに行う意味合いが強い。
setupは名詞だが、set upだと動詞。
終了の時に行うのはfinalize。

stop / end / finish / complete / terminate
再開する可能性があるのがstop。
再開する予定がないのがend。
最後まで完了して終わる、やり遂げるのがfinish。
目標を達成して終わるのがcomplete。完璧な感じ。
行き止まりまでいって終わるのがterminate。締めくくる感じ。

stop / suspend / pause
動いているものを止めるのがstop。再開する可能性はある。
一時停止の場合はsuspend。一息ついた感じ。
一旦動きを止める場合はpause。いつでも動き出せる。

stop / break / abort / quit / exit
動いているものを止めるのがstop。意味が広い。
割って入って中断するのをbreak。
異常によって中断されるのがabort。
現在の状態から離れるのをquit。
出口から抜け出すのをexit。その場所から立ち去る。

calculate / compute
数式を使った計算をするのがcalculate。
難解な計算をするのがcompute。行列計算など。

update / upgrade
最新のものにするのがupdate。
より優れたものに置き換えるのがupgrade。updateより交換の意味が強い。

update / refresh
最新のものを取得するのがupdate。
新たにするのがrefresh。全体を更新するニュアンスがある。
Windowsでは画面を更新する場合にInvalidate(無効化する)が使われるが、
描画領域を無効化することによって再描画を促すため。

update / changed / modified / revised
情報を最新にするのがupdate。
全面的に変更した場合はchanged。
修正や改善を行った場合はmodified。
書類の修正や改定、改版を行った場合はrevised。

adjust / adapt
何かに合わせて調節するのがadjust。サイズをピッタリ合わせる。
周りの環境に合うように変更するのがadapt。コネクタの形に合わせるのがアダプター。

apply / fix / restore
モノを当てる、適用するのがapply。
目標に固定させる、修理するのがfix。
元の状態に復元するのをrestore。

output / export
そのまま出力するのがoutput。
変換して書き出すのがexport。

find / search
見つかるのを期待するのがfind。
探してみるのがsearch。
searchは目的語に場所を指定する。

toXXX / XXX.parse / XXX.convert
XXXに変換する。

XXX.tryParse
XXXに変換を試みる。

fromXXX
XXXから変換する。
メソッド名は動詞が原則だが、toやfromは例外的に用いられる。

clear / delete
中身だけ消すのがclear。
外側も含めてすべて削除するのがdelete。

erase / trash / delete
消しゴムで消すのがerase。物理的でアナログな感じ。復元できない。
ゴミを捨てるのがtrash(俗)。アナログな感じ。ゴミ箱がある。
削除するのがdelete。デジタルな感じ。復元できる。

create / generate / make / build
創造する、何もないところから生み出すのがcreate。
何かを変換して生成するのがgenerate。
材料から作り出すのがmake。
材料を組み立てて作るのがbuild。
明示的にインスタンスを作るときはcreateを使うことが慣例。

parameter / argument
メソッドに定義してあるのがparameter。
メソッドに渡された値はargument。
仮引数(parameter)と引数(argument)とも言われる。
話す上ではどちらも引数で通じる。

property / attribute
どちらも属性で用法に違いはない。
ただし、分野や製品によって使い分けられている。
オブジェクト指向のクラスの性質を表すのはpropety。
HTMLのタグの属性はattribute。

number / numeric
数字、番号のことを表すのがnumber。
数字のこと、特に10進数を表すのがnumeric。
numericの方がより数学的な感じ。

sum / total
金額や合計、要約する、足し合わせたものがsum。
合計、全体の、特に総計を表すのがtotal。

limits / bounds / range
境界、制限範囲、制限区域がlimits。制限の意味が強い。
限界内、境界線がbounds。より数学的な感じ。境界を示している。
値が変動する幅、上限下限が決められた範囲がrange。範囲を示している。
limitsとboundsは複数形で用いられる。
bounds checkで境界チェック。

top / peak / spike
頂上、てっぺん、先端がtop。
山脈の中の一つの頂上がpeak。
折れ線グラフなどの尖りはspike。
迷ったらtopを使えば間違いない。

exclude / ignore
排除する、締め出す、考慮しないのがexclude。
無視する、気がつかないフリをするのがignore。

state / status
状態そのものを意味するのがstate。
状態の入れ物を意味するのがstatus。
ゲームのキャラなどのstatusで、毒というstateにあると考えるとよい。

letter / character
aとかbとかの文字自体のことはletter。
アルファベット全体、文字全体を指す場合はcharacter。

title / caption
本や記事の見出し、題名、表題がtitle。
短い説明文、ページの見出しがcaption。

subject / topic / theme
主題、議題、大きな項目を表すのがsubject。
小さな話題を表すのがtopic。subjectの下にぶら下がる感じ。
特定の話題を表すのがtheme。subjectより感覚的な感じ。

issue / problem
問題、論点、争点、話し合うべきことをissue。
困難を引き起こす問題で、解決が必要なのをproblem。

individual / personal / private
多くの人々に対しての個人がindividual。個別の。
人数に関係なく、他の誰でもない、その個人を表すのがpersonal。個人的な。
public(公の)に対する、private(私的の)。
従業員一人ひとりを表す個人などはindividualを使えば良い。

just / only
何かを基準にして、ちょうど、たった今を表すのがjust。
絶対的な意味で、唯一の、のみ、たったひとつをあわらすのがonly。

within / inside of / less than
withinは時間、距離、範囲を意味する以内。感覚的な感じ。within 3 secで3秒以内。
inside ofは具体的な場所を示す。
less thanは数字全般で使える。未満。以下ならor less。

validate / verify
要求を満たしているか、正しいのか確認するのはvalidate。
工程の一部として組み込まれているチェックやテストがverify。より限定的な感じ。
CD/DVDの書き込み工程の最後にverifyがある。
日本語にするとどちらも検証するとなる。

permit / allow / accept / grant
法律や公式、免許で許可するのがpermit。違反すると罰がある、硬いイメージ。
人が何かをするのを許可するのがallow。口語的な感じ。立場が上で偉そう。
要求を受け入れ承認するのがaccept。立場は関係ない。
許しを与えられるのがgrant。支給や付与されるイメージ。

memo / note
業務で記録するのはmemo。
メモ書き、記録として残しておくのがnote。
英語と日本語ではメモとノートのニュアンスが異なる。

notice / caution / warning
大切なことが書いてあるから読んでほしいのがnotice。
注意や警告はcaution。
絶対にしてはいけないのがwarning。
コンパイラでwarningはありふれているが、実際は強い警告の意味がある。

table / figure
tableはデータを見やすく表にしたもの。
figureはデータを図にしたもの。
論文でよく登場する表現。

plot / graph
plotはグラフに書き出されたもの。概念的な感じ。
graphはグラフや図表、図式など。数学的な感じ。

chart / diagram
chartは物事をわかりやすく図示したもの。棒グラフ、天気図。
diagramは流れや関係性、意図を図示したもの。ネットワーク図、フローチャート、ベン図。
chartはgraphもdiagramも含む、日本語で言う「図」という表現。
diagramも広義では「図」といえるが、より概念的、抽象的な感じ。

間違いやすい言葉

programming
mは2つ必要。
programingという言い方もあるが少数派。

license(en) / licence(uk)
licenseの方が多数派。
lisenceやlisenseは間違い。
ライセンスを与えるものをlicenser。
ライセンスを受けるものをlicensee。

cache / cash
cacheはメモリなどのキャッシュ。
cashは現金。

suffix / postfix
postfixでも意味は通じるが間違い。

register
registerで登録する。
resistは抵抗する。
registと略すのは混乱の元なので省略しない。
regと略すとWindowsのregistryを指すことが多い。

disk / disc
diskはdisketteの略で、ケース入りの磁気ディスクのことを指す。
discは特に円盤を意味し、剥き出しの光学ディスクを指す。

index / indexes / indices
indexesは本やデータベースで索引を意味する場合。
indicesは数学や統計で指数とか指標を意味する場合。

crypto / crypt
cryptoは暗号。
cryptで止めると地下納骨堂。

svr / srv
serverを略す場合はsvrを使うのが一般的。
srvだとserviceを連想する。

間違いやすい読み方

そもそもカタカナで表記しているので正しくない。
日本人が英語の発音がダメなのはカタカナのせいだと思う。

done
ダン。

align
アライン。

radius / relative / relation
レイディアス、リラティブ、リレイション。

temporary
テンポレェリィ。
カタカナでテンポラリーと書くので勘違いしがち。

false
フォルス。
ファルスと読むとphallusで男根の意味。

tip
ティップ。
チップだとchipとなる。

null
ナル。
ヌルで和製英語化している。

ping
ピン。グは聞こえないけどngで発音している。
丁寧に言うとgを強調してグになることもある。
ピングで和製英語化している。

JPEG / GIF / PNG / WebP
MPEG / WebM
ジェイペグ、ジフ、ピング、ウェッピー。(静止画)
エムペグ、ウェブエム。(動画)

repository / Git / TotoiseGit / Mercurial
リポジトリ、ギット、トータスギット、マーキュリアル。
バージョン管理。

Ubuntu
|oǒ'boǒntoō|
ウブンツ、ウブントゥ、ウブンチュ。
ズールー語の発音を聞くとウブンツ。

nginx
engine x(エンジン エックス)。

Xeon
ジーオン。

GNOME
グノーム。
英語読みだとノームだが、グノームと発音するのが正しい。

頻出単語

syntax / statement / expression / operator / signature
syntaxは構文。構文はstatementとexpressionからなる。
statementは文。if文, for文, 関数呼び出し文など。
expressionは評価される式。
operatorは演算子。
signatureはメソッド名、パラメータ、戻り値の型をあわせて表現したもの。
プログラミング言語によって定義が異なる場合がある。

dynamic / static
dynamic(動的)は必要に応じて、随時処理を行うこと。
static(静的)は事前に必要な処理をしておくこと。
dynamic libraryは動作中にDLLをロードし、
static libraryは予めLIBをリンクしておく。
ルーティングのdynamic routeは自動で追加され、
static routeは予め手動で設定しておく。
static変数は言語によって定義がことなるが、メモリ上に予め領域を確保しておく。

create / destroy
インスタンスを作成する、インスタンスを破棄する。

allocate / free
メモリを割り当てる、メモリを開放する。

inheritance / overload / override
継承。多重定義。上書き。

delimiter / separator
区切り文字。

log
記録、ログを取る。
名詞と動詞が同じ。

emit
ログをファイルに出力する。

flush
溜まっているデータやログをクリアする。
押し流す、すべて吐き出す。

stack
積み重ね、積み重ねる。
名詞と動詞が同じ。

token
トークン、しるし、証拠。
字句解析の場合は、分解できない最小単位のこと。
ネットワークなどの場合は、送信権をやり取りするデータのこと。

optimize
最適化する。

normalize
正規化する。

NDA / Non-Disclosure Agreement
秘密保持契約
closureはcloseから変化して、締め切りを意味する。
disclosureは否定形だから、閉鎖の反対で、公開する。
non-disclosureは更に否定だから、秘密にする。

cheatsheet
虎の巻。使い方を1ページにまとめたもの。

usage
使用方法、使い方

unknown
未知の、正体不明の。
unknown error, something happened

misc / miscellaneous
雑多な、多方面の。

TOC / table of contents
目次。

description
説明。
SQLではdescは降順を意味するdescendingとなる。

brief
概要、要約する。

recommend
推奨する。

features
特徴、機能。
たいてい複数形で用いる。

via
~によって、~を経由して。

required
必須の。

reserve
予約する。

diversity
多様性。

Proof Of Concept
プロトタイプを作って検証すること。

ecosystem
エコシステム。生態系から転じて複数の企業・ソフトウェアが協力・連携してマーケットを育てる手法。

omni channel
オムニチャネル。複数の販売形態を持つこと。
App Storeだけでなく、自社ダウンロード販売、店舗USB販売など。

full stack
上から下まで全部。
full stack developer / engineerは、インフラからシステム開発、データベース、フロントエンドまですべて出来る人材。
full stack frameworkは、必要な機能を全て備えたフレームワーク。

関係のある言葉

値について

Initial Value / Initialized Value
初期値、初期化値。
プログラムの初めや、コンストラクタで初期化される値。
または変数と同時に宣言される値。
初期値には広い意味があるが、初期化の意味合いが強い。
初期値はなるべく入れたほうが予期せぬトラブルを減らせる。

似た意味を持つものは下記の通り。
Default Value: 既定値
Start Value: 開始値
Regular Value: 標準値
Reference Value: 基準値

Default Value
何も設定しなかった時の値、転じて既定値。
工場出荷時の設定などの値。
初期値の意味で使われることもあるが、厳密には違う。
引数を省略した場合の値、その場合はOptional Valueとも。
defaultのみだと怠慢や無作為を意味する。
日本語でデフォと略して言う場合は、本来の意味とは逆に普通などという意味で使われる。

Original Value
元値。
変更前の値。

Current Value
現在値。

Parameter / Argument
引数。
区別するならparameterは仮引数、argumentは実引数。

Return Value / Returned Value
戻り値。

Variable / Var
変数。

Constant / Const
定数。

Literal
リテラル。直接記述された値のこと。
変数の反対の意味。
int x = 10;
String str = "abc";
10を数値リテラル、"abc"を文字列リテラルという。

Primitive Data Type
プリミティブ型。基本型。組み込み型。
プログラミング言語で最初から用意されている変数の型のこと。
bool, char, int, short, long, double, float, unsigned charなど。
Boolean, Int32, String, Decimalなど。

declare / define
変数や関数を定義すること。

signature
シグネチャ。関数の型情報。
関数の「戻り値の型」や「引数の型」の組み合わせのこと。

null / nil
存在しないこと。ヌル。
英語読みだとナルだが、あまり聞かない。

void
空。
ヌルと似たような意味。

prefix / suffix / affix
接頭辞、接尾辞、接辞。
disconnectのdis-やrestartのre-が接頭辞。
playerの-erやnullableの-ableが接尾辞。
affixは添付する、添えるの意味があり、prefixとsuffixをまとめて表現するときに使う。

数値表現

binary number
2進数。
先頭に0b-をつけて表現する。0b10で2を表す。

octal number
8進数。
現在ではまず使われない。
メインフレームの時代(1word=24bit)によく使われていた。
先頭に0-をつけて表現する。010で8を表す。

decimal number
10進数

hexadecimal number
16進数。
先頭に0x-をつけて表現する。0x10で16を表す。
0xFF、FFH、0xFFHなど表現方法はいくつかある。
RGBの値としてよく見かける。

even / odd
偶数、奇数。
名詞または形容詞として用いる。

真偽値

true / false
真、偽。
トゥルー、フォルスと発音する。
言語による違いも大きいが、通常は0以外がtrue、0がfalse。
比較する場合はif (a == false)やif (a == 0)など偽と比較するべし。
理由は真値のバリエーションが多く、偽値と比較した方が間違いが少ないためと思われる。

プログラムの終了ステータス(Exit Status, Return Code)は、0が通常終了、それ以外がエラーコードを表す。
ただし、Linuxのファイルディスクリプタ、ファイルハンドルに限り、取得に失敗すると-1となる。
なので、比較する場合は関数化しておくと混乱が少ない。
bool FileDescriptor::isOpened()として、内部でreturn (fd != -1)とする。

isXXX / canXXX / hasXXX
状態を判定する場合。
is-<形容詞>、can-<動詞>、has-<過去分詞>とする。
isSaved、isNull、isNumber、canSave、hasConnectionなど。
isXXXは動詞から始まるが、例外的に真偽値を表す変数名としてもよく使う。

exists
ファイルなどが物理的に存在するかどうか。
三単現のsをつける。

contains
リストなどに含まれているかどうか。
三単現のsをつける。

equals
等しいかどうか。
三単現のsをつける。

型について

float
浮動小数点数のこと。
floating point numberから。

double
倍精度浮動小数点数。
double precision floating point numberから。

string
文字列のこと。
ひと続きのという意味。
character stringsから。

Memory

RAM

RAM (Random Access read/write Memory)

stack-based memory
スタック領域。静的メモリ領域とも。
スコープを抜けると自動で開放される。

heap memory
ヒープ領域。動的メモリ領域とも。
heapは、山積みを意味する。
newやmallocした場合はこちらに確保される。
deleteやfreeのし忘れでメモリリークを起こしやすい。
またフラグメンテーションも起こしやすい。

ROM

ROM (random access Read Only Memory)
組み込みで書き込みを行うメモリ領域。
BIOSやファームウェアが書き込まれている。
必要なROMの容量は program + const + dataとなる。
必要RAM容量はdata + bssである。

※何故か日本ではAndroidスマホの内蔵ストレージ容量がROMと書かれている。
たしかにフラッシュメモリはEEPROMだが、ROMだけ書かれると意味が違う。

VECT section (Vector)
割り込みベクターテーブルが書き込まれる領域。
すべてのコンピュータはリセットベクタから開始される。

Program section
プログラムが格納される場所。
text領域とも。

Const section
定数が格納される場所。
rodata(read only data)領域とも。

Data section
初期値ありのグローバル変数が格納される場所。

BSS section (Block Started by Symbol)
初期値なしのグルーバル変数が格納される場所。

メモリ用語の対比

ROM (read only memory) - RWM (read write memory)
RAM (random access read/write memory) - SAM (sequential access read/write memory)
一般的にRAMと言った場合はRWMに分類されるRAMを指している。
ROMはROM(Read Only Memory)の中のrandom access Read Only Memoryのことを指す。

単位

b / bit : binary digit
B / Byte : 1byte=8bit
KB / KiB : kilo byte (10^3) / kibi byte (2^10)
MB / MiB : mega byte (10^6) / mebi byte (2^20)
GB / GiB : giga byte (10^9) / gibi byte (2^30)

MSB : Most Significant Bit(最上位ビット)
LSB : Least Significant Bit(最下位ビット)
MSBit / MSByteなどとbitかByteを明示する場合もある。

bps : bits per second(ビット毎秒)
B/s : bytes per second、1B/s=8bps

sec : second(秒)
ms : millisecond(ミリ秒)、1sec=1000msec
us : microsecond(マイクロ秒)、1msec=1000us
ns : nanosecond(ナノ秒)、1us=1000ns

Hz : Hertz(周波数)、1MHz=1us周期
組み込みの周期計算は厳密に2の冪乗(べきじょう)で計算しないとズレる。
1MHz=1,048,576Hz=2^20Hz

dB : decibel(デシベル)
px : pixel(画素数)、picture element
bpp : bits per pixel(色深度)

記号

! exclamation mark
" double quote, double quotation mark
# hash, number, pound
$ dollar
% percent
& ampersand
' single quote, apostrophe
() paren, parenthesis, round brackets
- hyphen, minus, dash, bar
= equal
^ caret, hat, up arrow
~ tilde
\ yen
| pipe, vertical bar

@ at mark
` back quote
[] brackets, square brackets
{} braces, curly brackets

; semicolon
+ plus
: colon
* asterisk, star

, comma
. dot, period, point
<> angle brackets
/ slash
? question mark
\ backslash
_ underscore, underbar, underline

ギリシャ文字

Α α alpha アルファ
Β β beta ベータ
Γ γ gamma ガンマ
Δ δ delta デルタ
Ε ε epsilon イプシロン
Ζ ζ zeta ゼータ
Η η eta イータ
Θ θ theta シータ
Ι ι iota イオタ
Κ κ kappa カッパ
Λ λ lambda ラムダ
Μ μ mu ミュー
Ν ν nu ニュー
Ξ ξ xi クシー
Ο ο omicron オミクロン
Π π pi パイ
Ρ ρ rho ロー
Σ σ sigma シグマ
Τ τ tau タウ
Υ υ upsilon ウプシロン
Φ φ phi ファイ
Χ χ chi カイ
Ψ ψ psi プサイ
Ω ω omega オメガ

日付の表現

date_created: よく使われる
created_date: こっちもよく使われる
creation_date: あまり使われない
created: DateTime型であればよいが、名前だけではboolと判別が付かない

onとatでタイムスタンプを表すのはrailsで使われている用法。
created_on: 作成日
created_at: 作成日時
updated_at: 更新日時

狭いスコープで、日付を文字列で保持する場合、変数名でどのような形式か明示できる。
var yyyymmdd = DateTime.Now.ToString("yyyyMMdd");

データベース関連

データベース関連のキーワードはすべて大文字で記すべし。

テーブル名は複数形とする。
単数形にする文化もあるが少数派。

テーブル名にmst_, tbl_, m_, t_などを付けるときは一貫性を持たせる。
そもそも冗長となるのでいらない。
例えば、マスターとして作ったけど、更新が頻繁にあれば、それはもうマスターではないので、mst_となっていたら混乱のもと。
_区切りはふたつ程度までがちょうどよい。

外部キーのフィールドはすべて"_id"で終わる名前にする。
列名に_id, _code, _type, _cd, _kbnなど付けるときは一貫性を持たせる。
必ず付ける、略さない、混在させない、など。
具体的には_code_cd_type_typ_kubun_kbnを混在させない。
_kbnは英語ではなくローマ字読みなので使わない。

SQL

SQLはエスキューエルまたはシークェルと読む。
元になったデータベース言語がSEQUEL(Structured English Query Language)。

an SQL(アン エス キュー エル)
a SQL(ア シークェル)

SQL文例

    SELECT t.name FROM table t WHERE t.id = '1';
    SELECT t.name FROM table t ORDER BY t.id DESC;
    SELECT COUNT(t.day) FROM table t WHERE t.year = '2015' GROUP BY t.month HAVING t.month LIKE 'J%';

    UPDATE table SET name = 'aaa' WHERE id = '1';
    INSERT INTO table (id, name) VALUES ('1', 'aaa');
    INSERT INTO table VALUES ('1', 'aaa');
    DELETE FROM table WHERE id = '1';

キーワード

TABLE : テーブル、表
ROW : ロー、行
COLUMN: カラム、列
SELECT: セレクト、選択
UPDATE: アップデート、更新
INSERT: インサート、挿入
DELETE: デリート、削除
UPSERT: アップサート、update or insertの意味
CREATE: クリエート、表を作る
DROP : ドロップ、表を削除する
INDEX : インデックス、索引
PRIMARY KEY: 主キー、NOT NULL制約、一つだけ
UNIQUE KEY : ユニークキー、いくつでも作れる
ASC : Ascending、昇順
DESC : Descending、降順

よく使う言葉

customer 顧客、取引先
employer 雇用主
employee 従業員
quantity 数量
order 注文

orderというテーブル名を使いたいときは気をつける。
(ORDER BYの予約語なので[order]としなければならない。)

段組み

title 題名
subtitle 副題

caption 短い説明、主に画像の説明

part 部
chapter 章
section 節
subsection 項
paragraph 段落
sentence 文
word 語

配列やリスト構造、文字列など

clear / add / remove / append / prepend / insert
trim / split / compare / replace

[0]から始まる配列
zero-based(ゼロから始まる) or index origin = 0

[1]から始まる配列
one-based(1から始まる)

ネットワーク関連

listen / accept / send / receive
local / remote

ping
ピング。英語だとピンだが、あまり聞かない。

イベント

Click / Clicking / Clicked / OnClick
例えばクリックされたイベントの発生はClickedとする。
時制を表す場合は、-ingまたは-edとする。
クラス内部のイベントはOnClickに記述する。

call / invoke
ただ単に呼びだすのをcall。直接的な感じ。
別スレッド、別コンテキストの処理を呼びだすのをinvoke。お願いする感じ。

delegate / dispatch
処理を委譲するのがdelegate。代理に任せる感じ。アプリケーション内のイベントで使われる。
タスクを割り振るのがdispatch。即実行する感じ。マルチタスクOSがプロセスを実行する際に使われる。

図形

point / x / y / offset
座標、X軸, y軸、相対的な位置。
画面の左上が(0, 0)となる。
offsetは引き算するという意味がある。

size / width / height
大きさ、幅、高さ。
ウィッズ(ウィドス)とハイトと発音する。
発音は諸説あるが、些細な違いなので許容すべし。
「昔」を意味する「かつて」を口語で「かって」と発音するようなもの。

top / middle / bottom
left / center /right

front / middle / back
front / center/ side / rear

fill
塗りつぶす。

depth
色深度。
32bitカラー、16bitカラーなどのこと。

省略した言葉

スコープがごく狭い範囲でしか省略語は使ってはいけない。

i : integer(整数) / i, j, k
n : natural number(自然数) / n, m
c : char
ch : char
f : float
d : double
l : long
u : unsigned
uchar: unsigned char

p : pointer(ポインタ)
g : global
o : object
obj : object
t : type
e : event
e : error
err : error
ex : exception
iter : iterator

prop : propety
attr : attribute
conf : configuration
pref : preference

len : length(配列の長さ)
cnt : count
num : number
str : string
buf : buffer(一時的な文字配列)
mem : memory

txt : text
doc : document
ext : extension

h : handle
fh : file handle
fd : file descriptor

tmp : temporary
temp : temporary

min : minimum
max : maximum
add : add(足す), addition(加算)
sub : subtract(引く), subtraction(減算)
div : divide(割る), division(除算)
multi: multiply(掛ける), multipication(乗算)
sum : sum(合計する, 合計)
avg : average(平均)

qty : quantity(個数)
ttl : total(総数)

exec : execute
sync : synchronous
prev : previous
init : initialization
addr : address
conn : connection

w : width
h : height
sz : size
pt : point
pos : position
img : image
fig : figure
pct : picture
bg : background
fg : foreground
mid : middle
nav : navigation
req : request

std : standard
cfg : config
conf : config

sec : second
min : minute
ss : second
mm : minuts
hh : hours
dd : days
MM : months
yyyy : years

Sun : Sunday
Mon : Monday
Tue : Tuesday
Wed : Wednesday
Thu : Thursday
Fri : Friday
Sat : Saturday
DOW : Day of the week(曜日)

Jan : January
Feb : February
Mar : March
Apr : April
May : May
Jun : June
Jul : July
Aug : August
Sep : September
Oct : October
Nov : November
Dec : December

E : Electromotive force(電圧)
I : Intensity of electric current(電流)
R : Resistance(抵抗 ohm、Ω)、E=RI

f : frequency
u : micro、μ
m : milli
A : Ampere(アンペア)
V : Volt(ボルト)
W : Watt(ワット)
temp : temper, temperature(温度)

eval : evaluation(評価)

R,S,T: 三相交流の電源を表す
U,V,W: 三相交流の動力を表す

mAh : milliampere hour(放電容量)
C : charge and discharge rate(放電電流)
1000mAhを1Cで放電すると1hでなくなる。
つまり1Ahの2Cは2Aで、30minで放電できる。
C(放電電流)については、詳しくはBattery chargerのC-rateを参照。

MSのシステムハンガリアンでよく使われている省略形

obj : Object
ctl : Control
frm : Form
mdi : MDIChildForm
pnl : Panel
btn : Button
lbl : Label
txt : TextBox
chk : CheckBox
cbo : ComboBox
rdo : RadioButton
lst : ListBox
pic : PictureBox
img : Image
bmp : Bitmap
shp : Shape
gra : Graph
lin : Line
grd : DataGridView, DataGrid
dgv : DataGridView
dgview : DataGridView

mnu : Menu
opt : OptionButton
tabs : TabPages
spn : Spin
tmr : Timer
hsb : HorizontalScrollbar
vsb : VerticalScrollbar
ani : Animation
clp : Clipboard
rpt : Report

db : Database
conn : Connection
ole : OLEContainer
sql : SQLStatement
qry : Query
dg : DataGridView, DataGrid
ds : DataSet
dt : DataTable
dr : DataRow

data : DataSet
tbl : Table
row : Row
rows : Rows
col : Column
cols : Columns
fld : Field
flds : Fields

id : ID, Identifier
cd : Code
idx : Index
mcr : Macro
snp : Snapshot
trn : Transaction

addr : IPAddress

名詞を作る接尾辞

-ance : instance, resistance, impedance
-ence : existence, silence
-ency : dependency

-ty : difficulty
-ity : ability, reality
-ion : destruction

-ment : development
-ness : thickness, darkness
-th : growth

-or : selector
-er : player
-eer : engineer

-age : usage

メタ構文変数

サンプルプログラムなどで特に意味のない変数名に使われる。
何者でもないものを意味する記号。

foo, bar, baz, ...
foobarと合わせて呼ぶこともある。

hoge, piyo, hogera, hogehoge, ...
hogeとpiyoの掛け合わせもある。

unko
一部に熱狂的な支持者がいる。

spam, ham, eggs
pythonでよく使われる。

Alice, Bob, Charlie, Dave, Eve, Ivan, ...
プロトコルや暗号の説明でよく使われる人名。
Aliceは本人や当事者。
Bobは相手。
Charlieは第三の当事者。
Daveは第四の当事者。
Eveは盗聴者(eavesdropper)など。
Isaacはプロバイダ(ISP)。
Justinは司法。

山田太郎, John Smith, Hans Schmidt, ...
名無しの権兵衛, John Doe, Jane Doe, ...

リリース

alpha release, alpha version
α版。開発初期や試作段階にあるソフトウェア。
動作が不安定だったり、予期せぬトラブルがつきもの。

beta release, beta version
β版。評価版。開発途中にあるソフトウェア。

RC (Release Candidate)
リリース候補版。試用版。β版より更に製品に近づいた状態。
版が進むとRC1, RC2, ... と増えていく。

RTM (Release To Manufacturing)
ゴールデンマスター。製品出荷版。製造ラインに載せるための最終段階。

GA (General Availability)
正規版。

stable / devel
安定版、開発版。
製品への明確な基準がないOSSでよく使われている。
安定版はテストなどを通しているので安心して使える。

nightly build
毎日の成果を反映した最新の状態。
開発者が最新の機能を試すために利用する。

SaaS (Software as a Service)
WEBアプリケーションを提供すること。ネットを通してオンラインでソフトウェアを実行できる。

PaaS(Platform as a Service)
WEBアプリケーションの実行基盤を提供すること。
GAE(Google App Engine)、Microsoft Azule、AWS(Amazon Web Services)など。

俗語 / スラング

InternetSlang.com

XD : (笑)
XXD : (爆)
LOL(Laughing Out Loud) : (爆)
ROFL(Rolling on the Floor Laughing) : (核爆)
LMAO(Laughing My Ass Off) : (藁), ワラタ, クソワラタ
haha : w
hehe : hahaより得意げだったり、照れたり
ayy, ayy lmao : w
ayyyyyy : www
LOLOLOL : www
lolz: ワラ(少し嘲笑が入る)

hakspek, leet
同じ発音の数字や記号に置き換えた表現をhakspekと称する。
より隠語的な表現をする場合は1337を使う。
1337→l33t→leet

2U, 4U
to you, for youの略。あなたへ。

thx
Thanksの略。ありがとう。

pls, plz
pleaseの略。お願いします。

NP
No Problemの略。問題ないよ。
分かりにくいのでまず略さない。

GJ
Good Job。よくやった。
ネトゲ用語なので、ネイティブは略さない。

WIP(Work In Progress)
未完成、未解決なもの。

RTFM(Read The Fucking Manual)
マニュアル読め。ヘルプくらい見ろ。>>QtのForumでよく見かける
派生がたくさんある。>>WikipediaのRTFMを参照

JFGI(Just Fucking Google It)
ググれかす(ggrks)の意味。
グーグルで検索しないで聞く人に対して使う。
JをとってFGIとも。
これも派生が多い。

R.I.P(Rest in Peace / Requiescat in Pace)
安らかに眠れ、冥福を祈るの意味。
墓とかにR.i.pと刻まれる。
RIPと書いても通じる。
使われていないコードを消す時のコメントなどに。

cf. (confer)
………を参照。………と比較。
関連項目として挙げる場合はsee alsoを使う。

e.g. (exempli gratia)
例えば。
日本ではexと書かれることもあるが、exampleで実例や手本の意味。
for exampleで例えばの意味だが、exとは略さない。
またexで始まる語は多いので略語としては適さない。

i.e. (id est)
すなわち、つまり、いわゆる。

a.k.a. (also known as)
………と知られる、またの名を、別名。
AKAとも書かれる。

N/A (not available, not applicable)
利用できない、該当なし。
NAとも書かれる。

w/, w/o
withとwithoutのこと。

TL;DR (too long; didn't read)
長過ぎるから読まなかった。長すぎ。長文うざい。
自分で書いた文章の頭につけて、長文注意の意味でも使う。
Qiitaでもたまに目にするが、キャプションにつけて要約を表すことも。

;(semicolon)
「だから」「すなわち」「そして」にあたるsoやi.e.やandなどを意味する。
TL;DRでは、長すぎる「から」読まなかった。
ピリオドとカンマの中間くらい。

:(colon)
左側を具体的に説明する場合に使う。
イコールに近い。

記法について

CamelCase, InterCaps

キャメルケース。
文字の起伏がラクダのコブのように見えることから。
主にオブジェクト指向言語で使われる。

PascalCase / UpperCamelCase
先頭を大文字から始める。

camelCase / lowerCamelCase
先頭を小文字から始める。

snake_case

スネークケース。
C, Perl, SQLなどで使われる。

snake_case / SNAKE_CASE
区切りをアンダーバーで表現する。
C言語などでは定数を表す場合は全て大文字で書くのが慣例。

chain-case

チェーンケース。
PowerShellなどで使われる。

chain-case / Chain-Case
区切りをハイフンで表現する。

ハンガリアン

考案者の出身地にちなんで命名。
名前に情報を追加して書く記法。

元々はアプリケーション ハンガリアンとして考案された。
本来は意味を表すプレフィックスを付け、間違ったコードを発見しやすくするもの。

    int rpX; // 相対座標 Relative Position
    int apY; // 絶対座標 Absolute Position
    var point = new Point(rpX, apY); // rpとapが使われているので間違いだと気づく

型情報を付与するのがシステム ハンガリアン。
論文中のtypeを種類ではなく型情報と誤解し、コンパイラの型情報が十分でなかったC言語において広まった。

    bool bFlag; // 論理型
    char chChar; // 文字型
    char[] sString, szString; // 文字列型, ゼロ終端文字列型
    int iInteger; // 整数型
    int* pPointer; // ポインタ型
    int (*fnFunction)(void); // 関数ポインタ
    int hFileHandle; // ハンドル型

しっかりした型付け言語が登場して、使われなくなってきたが、たまにどこかで使われている。
AndroidでGoogleのガイドラインに載ってたりする。

    private int mMember { get; set; }
    public static int sStatic { get; set; }

アクセサは不要という流れ

アクセサ(getter/setter)とは、Java言語における、隠匿されたフィールドにアクセスするためのgetXXX/setXXXというメソッドのこと。
JavaBeansにおいては、getter/setterを強制するという言語仕様があった。
アクセサがあまりにも冗長なので廃れた。

Java SE 7からpropertyが使える。
public property String name;

C#ではJavaのアクセサより洗練されたプロパティという仕組みがある。
C#の言語バージョンが進むにつれ、より洗練されていった。
public string Name { get; private set; } = 0;

Rubyは言語仕様としてアクセサ(attr_accessor)を簡単に定義できる。
attr_accessor :name, :price

新しく登場した言語であるKotlinやSwiftではフィールドは宣言できず、全てプロパティとなる。
public var name : String

カプセル化

オブジェクト内の振る舞いやデータを隠匿するカプセル化という考え型がある。
多数のアクセサやプロパティを設けることにより、誰でも自由にデータを変更できるとカプセル化の原則に反してしまう。
必要のない情報は公開しないようにする。

言語によっては、フィールドをpublicにできるのでプロパティの代わりに利用されることがあるが、よくない設計である。
簡潔に書けるからといって、フィールドをpublicにしてはいけない。(最近のVisual Studioでは警告が出るようになったらしい)

デメテルの法則(LoD: Law of Demeter)、最小知識の原則(PLK: Principle of least knowledge)

「知らないヤツには話しかけない」とも。
アクセサやプロパティで他のクラスを参照できてしまうと、余計な依存関係が生まれてしまう。
直接参照する必要のないクラスは隠匿しておくのがよい。

求めるな、命じよ(TdA: Tell, don't ask.)

オブジェクト指向における重要な設計指針の一つ。
関数型言語では、データを取得して、処理をして、データを戻すという手順をとるが、
オブジェクト指向では、データを持つクラスに命じるだけで済む。
この原則を守ることにより、データを取得する必要が最小限となる。

翻訳サイト

よく使う翻訳サイトは下記の通り

英辞郎(アルク)
多数の結果が引っかかるので探しやすい

Google翻訳
URLを渡せばサイトを丸ごと翻訳も可能

Google
細かいニュアンスなんかを調べるときは「"XXX" 翻訳」で検索する
似た意味の言葉で迷ったら「"XXX" "YYY" 違い」などとする

Dictionary.com
英語の語源なんかも調べられる。

Wikitionary(en)
意味、由来、用法、関連語などが調べられる。

GitHub
オープンソースなコードを検索できる。
その単語がどういう使い方をされているか実例を見たい時に。

参考にしたサイト

お気に入りの記事

きれいなソースコードを書くために必要な、たったひとつの単純な事
鉄の意志、超重要

Qiita

ネイティブと働いて分かった英語コミットメッセージの頻出動詞10つ
プログラマなのに知らなかったら恥ずかしい英単語集
英語コミットコメントに使えるオシャレフレーズ集
ggrksと英語でコメントしたい時
ネイティブと働いて分かった英語コミットメッセージの頻出動詞10つ
Naming -名前付け-
日本人が間違いやすいコーディング上の英語
技術記事読んだ時の英単語メモ①
クラスの命名のアンチパターン
よりよいネーミングを目指して
コンピュータ業界でよく出る英語
IT企業で英語を使う時の3つのポイント
"a SQL" と "an SQL" どちらが正しいか?
IT英単語の発音とスペル
多忙なプログラマーのための軽トラな英語リスニング&スピーキング
フォニックスで英語発音は良くなる

それ以外

関数名によく使われる英単語の意味とニュアンス
今更聞けないIT英語
「よりよいコードを求めて命名について頭をひねる会」のログ
INFO: Object Hungarian Notation Naming Conventions for VB
機械学習に出てくる数式で読めないギリシャ文字チートシート
LOL - Wikipedia

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.