プログラミング:絶妙に悩む【ネーミング】

C# IT技術

プログラミングにおいてちょっと悩むけど、考えすぎかな…とも思うことについてのメモです。

あくまでも私自身の環境ではこのやり方ですので、参考程度に見ていただければと思います。

スポンサードサーチ

絶妙に悩む

  • Linqの中の単数アイテムのネーミング
  • 濁る複数形のときの表現
  • 『複数形』と『~List』の使い分け

Linqの中の単数アイテムのネーミング

何処の話かというとここ。


// Linqの中の単数を表すuserについての話
var targetUser = Users.Where(user => user. ...);

ここの単数表現についてです。

考えるべきこと

  • 複数形の単数で変換できるか
  • itemやentryでごまかせないか

良くないこと

  • x,y,zなどの一文字も、探しにくいため非推奨
  • _(アンダースコア)は使わない変数を意味するため、非推奨

Lingの他にforやforeachなどもそうです。
寿命が短いため、『まぁ、多少抽象的な名前にしても分かるよね』という話。



//例1 英語の単数で
var targetUser = Users.Where(user => user.Id == targetId);

//例② きちんと単数にすると長いので、itemやentryでごまかす
var target = SuperLongNameTerms.Where(item => item. ...);

//例③ foreachでよくある使い方。これは普通にあり
foreach(var item in Users){
    // 処理
}

複数形は、~sなのか、~Listとすべきか

私は違和感がある複数形を、読みにくいからと言って~Listと直してしまう癖がありました。ですが、

英語の複数形はそのまま使えばいい

です。

違和感がない一般的な複数形とは

  • items
  • users
  • orders…

反対に、違和感がある複数形とは

  • codes: codeの複数形
  • methods: methodの複数形
  • statuses: statusの複数形

コーディングにおいて聞きなれないが、これらの単語でも思い切って使えばOK。

聞きなれないからと言って、わざわざ『methods => methodList』とか、『statuses => statusList』とかしなくても大丈夫です。

『複数形』と『~List』の使い分け

では、どんな時に名前の後ろにListやCollectionsとつけるのか。

  • ~List、~Collections:
    なるべくクラス名で
  • 複数形:
    メソッド、プロパティ、クラス名など

ということで、クラス名で~List(Listを意味する)や~Collection(配列を意味する)を使うのはありかなと。
マイクロソフトがどうもこのような書き方をしているぽいです。

この記事の内容

  • Linqの中の単数アイテムのネーミング
  • 濁る複数形のときの表現
  • 『複数形』と『~List』の使い分け

についてのメモでした。
ですが、社内やチーム内でコーディングの書き方にルールーがある場合はそれに従ってくださいね。あくまでも参考程度に