ソフトウェア業界に限った話ではありませんが、その世界でしか通じない言葉というものがあります。
隠語です。
スラングとかジャーゴンとも呼ばれます。
先日、Coding Horror というブログに面白い記事があるのを発見しました。
(かなり昔の記事なので有名かもしれませんが。)
このブログを書いてるのは Jeff Atwood というプログラマーで、Stack Overflow や Stack Exchange の設立者の1人です。
昔、Stack Overflow に「New programming jargon you coined? (あなたが作った新しいプログラミング業界の隠語は?)」という投稿あったらしいのですが、運営によって削除されました。
「この投稿は質問じゃない」というのが理由とのこと。
彼自身、この投稿に否定的な感情を持っていなかったので、投票数の多いトップ30を自分のブログに掲載したみたいです。
と、前置きはここまで。
個人的に「今後使いたいな〜」と思ったものをピックアップ。
ヨーダ記法
if ( value == 0 )
ではなく
if ( 0 == value )
と書く手法のことです。
==
を =
とタイプミスした場合にコンパイルエラーになってくれるという利点があります。
ヨーダというのは、スターウォーズのヨーダです。
私はスターウォーズに詳しくないし、英語音声や英語字幕で見たこともありませんが、彼が使う文法に似た表現なのでヨーダ記法と呼ばれているらしいです。
例えば、日本人なら誰でも知ってる有名な "This is a pen" というフレーズですが、ヨーダは "A pen this is" と表現します(たぶん)。
this == pen
ではなく pen == this
となるわけです。
Wikipedia にページがあるぐらい一般化してる隠語ですね。
個人的には、読みにくく感じるので、ヨーダ記法は好きではありません。
最近のコンパイラは、条件式で代入すると警告してくれる場合が多いですし。
ポケモン例外処理
どんな例外も処理する方法のことです。
英語のキャッチフレーズが "Gotta Catch 'Em All" だから、「全部キャッチする」ってことで ポケモン例外処理 です。
try {
// 略
}
catch (...) {
// ポケモン例外処理!
}
エジプト人波カッコ
波カッコを、行の末尾で始める書き方です。
壁画に描かれているエジプト人の手の位置と似ていることが元になっています。
if ( value == 0 ) {
// 略
}
私はエジプト人波カッコ派です。
たぶん、Xcode の影響。
リファックタリング(Refuctoring)
リファクタリング (Refactoring) とはスペルが違います。
改善しようとリファクタリングしたら、むしろ悪化してしまった場合の表現です。
リファクタリングしようとして fuct = fucked (めちゃくちゃ) になってしまうからリファックタリングです。
恐怖駆動開発 (Fear Driven Developement)
テスト駆動開発(Test Driven Development)、ドメイン駆動開発(Domain Driven Development) などが有名ですが、実際には、この恐怖起動開発も多いのではないでしょうか?w
解雇、納期の前倒し、リソース削減などのプレッシャー(恐怖)をキッカケにして仕事に取り掛かることです。
ヒドラコード
1つ不具合を直すと、新しい不具合が2つ出現するような恐ろしいコードのこと。
首を切ると、新たに2本の首が生えるというギリシャ神話のヒドラが元。
怒った彼女バグ (Mad Girlfriend Bug)
明らかに問題が起きているのに、画面やログは問題ない振る舞いをするバグのこと。
明らかに怒ってるのに「別に怒ってない」って言うアレ。
ジェンガコード
少し触るだけで全てが崩壊する危険なコード。
おもちゃのジェンガが元。
ヨーダ記法 と ジェンガコード は、この記事を知る前から普通に使っていました。
ポケモン例外処理 と 怒った彼女バグ は発想が良いですね。
こういうセンスが欲しい・・・。