コードのひよこ感 ~ .NETの文字列を添えて ~

最終更新日:


はじめに
コードについてあれこれ話し、思った何かをまとめたポエムです。
人間がコードを書くのもあと10年くらいかもしれませんが、現在コードを書いている方々、将来プログラムを書く人工知能にも「ひよこ感」は共有したいと思ったのでちょっとまとめてみる次第です。
ひよこ感とは
「ひよこ感」というのは「コードに対する伸びしろの予感」です。
もう少し具体的に言うと、「とりあえず書いたコード」や「初心者のときに書きがちだなぁ」、「もっと効率が良い書き方あるんだけどなー」と思われがちなコードに働く直感でもあります。
ベストプラクティスに至る前段階のコード、とも言えるかもしれません。
(ベストプラクティスを知っていればこそ、ですが)
なお、「ちゃんとしてる感」を「にわとり感」、「やりすぎ感」を「やきとり感」「ひきにく感」と呼んだりしています。

たとえば「文字列に対して大小を無視した比較がしたい」ときのコードがイメージしやすいので並べてみます。
言語は C# で、Aがちりばめられたコードは「ひよこ感」が強い、Bなら「にわとりだなぁ」という印象になりやすいです。
A
static void SomeFunc(string a, string b)
{
if (a.ToLower() == b.ToLower())
{

}
}
B
static void SomeFunc(string a, string b)
{
if (string.Equals(a, b, StringComparison.OrdinalIgnoreCase))
{

}
}
コードを見て思うこと
コードに対して考えることは色々ありますが、なんとなく考えているレイヤーが違う感じがします。
A
大小考慮せず比較したいんだなー
.ToLower() によって小文字化されたstringのインスタンスが作られるんだよなぁ。メモリ確保が行われるから遅くなりそうだなぁ。
nullだったら例外起きるなぁ
B
StringComparisonのところを見るとカルチャは考慮せずにバイナリ比較なんだな。
元の文字列はカルチャ揃ってるかな?ユーザー入力じゃないかな?
引数がnullだとどうなるんだっけ?
どう書けばいいのか
.NETの文字列を使用するためのベストプラクティス
https://docs.

サイト名: Qiita
2019年5月11日

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する