LoginSignup
2
1

More than 3 years have passed since last update.

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

Posted at

はじめに

コードについてあれこれ話し、思った何かをまとめたポエムです。

人間がコードを書くのもあと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だとどうなるんだっけ?

どう書けばいいのか

これはやきとりではないでしょうか…
全部覚えてる人いないのでは…

まとめ

あらゆる状況で人を悩ませるnullはやっぱりよくないので早くなくなってほしいですね!
早くnull許容型が基本になってほしい!

2
1
0

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
2
1