2012年3月11日日曜日

MiscとかUtilって付けたら負けだと思ってる

変数名やらモジュール名やらにお悩みなプログラマは多いと思われます。
しかし大抵行き詰まって、misc.cppだのutil.phpだのに捻じ込んでませんか?

順番に行きましょう。

まず和英翻訳は、
googleじゃなくて、weblioを使いましょう。別に他のサイトでも構いませんが、「和英翻訳」じゃダメで、英語辞書が望ましいです。

具体例をあげると、「希少」の意味のレアのスペルを調べようとしたら、Rheaとか出ます。(今試したら違いますね) 誰か「翻訳を改善する」をやったのだろうか。
http://translate.google.co.jp/?hl=ja&tab=wT#ja|en|%E3%83%AC%E3%82%A2%0A
これはアメリカダチョウの事です。
http://ejje.weblio.jp/content/Rhea

 と言うことが翻訳だけじゃ判らないよ。って話です。
google翻訳は、実は英語中級用なのです。 googleがダメだって言ってるんじゃありません。駄目なのは使う方です。

そういう人は、翻訳に入れる「日本語」もワンパターンです。
何かの計算をするメソッドの名前に、get○○とか付けてませんか?

多分これはJava族のgetter/setterが歪んで伝わってるのだと思います。
 get/setと言えば、setで入れたモノが、殆どそのままgetで受け取れることを想像します。

計算してるならそう書くべきです。calculate○○。

単語が長いから嫌だって?
アナタはまずタイピングの練習をするのが先のようですね。

中途半端な省略は、辞めるべきです。

ありがちな手口で、countをcntとする流派がありますが、カウンタが複数あると破綻します。cuntとかcontとか、ギリギリな単語を使い始めます。 これらはもう別単語にカスってるので、勘違いさせる可能性があります。
http://ejje.weblio.jp/content/cont
http://ejje.weblio.jp/content/cunt

と言う感じで繰り返してると、紙面がいくらあっても足りないので、一気にいきましょう。

使用禁止単語 ※どうしても使いたければ、「前」「後」に適切な単語を付加する。
  • ID
  • max, min
  • get, set
  • temp
  • value, key, index
  • init,result
  • array,dict,hash,map
じゃあどうするのか?
  • 何処かから抽出する場合
    • 検索してるならfind, query,
    • 名指しで取り出すならload ※getは辞めた方が良い
  •  入力した通りのものが出てくる場合
    • オブジェクトに閉じた話ならget/put #get/setだと字面が似てるので、タイプミスの可能性が増えます&しても判らない可能性が高いです。
    •  データベースへの保存なら、save/load/store。オブジェクトの「外」を意識して使うべきです。
  • 入力を加工してから出力する場合
    •  計算するならcalculate
    •  評価はevaluate
    •  再構築はrebuild
  • 新規作成 create
  • 数量
    • 個数 number, count
    • 通番 serial, unique
    • 容積 limit, capacity,
    • 長さ length ※1次元的な大きさ
  • 識別子
    • "ID"は定義が緩いので、本来は使わないほうが望ましい
    • 通番ならserial, unique
まあこれらの単語の選択は、小生の「流派」であるとも言えますが、getとかで押し通すよりはマシでしょう。