0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

5==変数とか、strNameとか、**記法

Last updated at Posted at 2026-01-19

入社当初、定数と比較するときは右側に変数を書きなさいとか、リプレース案件で型名が接頭辞に付いていたりしていました。以下のようなコードですね。

//型名を接頭辞に付ける
string strName = "legacy";

//比較演算子の右側に変数を記載する
if ( "legacy" == strName)
{
    //省略
}

これらに名前があることを学びましたので、記事にしてみました。

yoda記法

概要

比較時に定数を左側に書く手法です。

if ( "legacy" == strName)

名前はスターウォーズの「ヨーダ」の話し方からきているらしいです。
見たことないですけど、逆説的なしゃべり方をするとか…

長所

代入ミスの防止で、以下みたいいに==を=と1つで記載した場合の誤動作を防ぐ目的です。

//これは代入になりエラーや警告になる
if (strName = "legacy")

//左辺が定数なら誤って代入してもコンパイルエラー
if ("legacy" == strName)

短所

可読性が悪くなります、慣れればOKなのかもですが。現代のIDEでは、if文内で=と書くとエラーや警告が出るので、安全策としては不要な場合が多いです。

ハンガリアン記法

概要

変数の先頭に、型や用途を示す接頭辞を付ける手法です。

string strName = "legacy";

調べてみると、以下もハンガリアン記法の一部らしいです。

//整数を示したり、真偽値を示したり
int iCount = 0;
bool bFlag = true;

長所

型や用途が名前から一目で分かります。また、古いWindows APIコードでも存在するようです。

短所

コードが長くなりがちなのと、型変更に弱いです(例えば、intをfloatに変える場面とか)

所感

yoda記法よりも可読性悪くはならない感じがしますが、varのような型類推などの記載方法を踏まえると、時代に即してはないのかなと感じます。また、変数をみて型を覚えておかないといけないほど、スコープの長くなるコードを避ける方針で組立していきたいですね。

コラム

以下は、新人教育で学んだけど場面によるよねと思うものたちです。数年後に認識変わるかもですが、現時点での視点です。

2026.01.24、追記
少し分かりづらい書き方しました。
会社では以下で習いましたが、場面によるよねってものたちです。
→自分は違うんじゃないの?て思ってる教えですね。

三項演算子を使うのはやめましょう

これは可読性が悪くなると聞きますが、観点を変えれば読みやすいと感じます。if文を使うと分岐が出来ますが、どちらの分岐でも同じ変数に値を入れるのであれば、それは三項演算子で表現した方が、分岐しても変化や代入される値として明示していると捉えます。if文の分岐内で複数行あり、異なる処理がある場合は別に感じます。新人などへは説明が少し曖昧なりそうなので要注意ですね。

returnは1か所にしましょう

これも観点を変えることで可読性が増すと考えています。よくあるコードでは、関数の先頭に引数チェックでreturnする文章などで、returnしますが、returnを1か所にすると、メインロジックを飛ばすためにif文を書いて、最後にreturnするだけのスコープが長いコードになります。それ以外でreturnが複数ある場合は、そもそも関数の作りがイマイチと捉える可能性がありそうですね。

さいごに

開発環境の利便性が増すと同時に、先人の工夫が失われてしまうのは複雑な気持ちですが、自然言語に近い可読性の高いコーディングができるのは嬉しく思います。一方で、リプレース案件や過去案件で見かけることが多いコードだと感じますので、背景を踏まえた上で読むことができれば、コードに含まれている意図も掴めて、理解が深まりそうですね。

0
0
2

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?