息抜き C# ~ New Normal なコードの書き方:第00回「新しいC#の機能達」 ~

f:id:ecb_smiyahara:20210309005443j:plain

可読性のはなし

可読性の重要度

みなさんは日々のコーディングで一番気をつけているのはどんな事でしょうか?
バグやセキュリティ、実行速度やメモリ使用量など気をつけるべきことは多々あります。

中でもプログラムが長く使われたり、多人数での開発が行われたりする場合など、コードが多くの人の目に触れるような場合、コードの可読性が重要になってきます。

コードを書く回数に比べ、読まれる回数が多くなればなるほどコードの読みやすさが大事になるということですね。

可読性は誰が判断するのか

ところがコードの可読性とは、自分一人で判断できるものではありません。
そのコードを読む可能性がある人すべてが、読みやすいと思うコードが可読性が高いコードです。

コードを読む可能性がある人、というのは一般的に一緒に開発しているチームメンバー全員が対象であることが多いでしょう*1

可読性と新機能

C#で開発を行っている場合、チームメンバーが全員最新のC#の全機能に精通していれば、最新のC#の機能を駆使してコードを書いても可読性が落ちることはありません。

しかし、チームとは能力の異なったメンバーを集めるものです。
メンバー全員がC#のスペシャリストというチームは極まれなチームでしょう。多くの場合チームメンバーの何人かはC#がそこまで得意ではなく、時にはC#ビギナーがチームメイトの場合もあるでしょう。

そうなった場合、最新のC#の機能を使ってコードを書いてしまうと、その機能を知らないメンバーには非常に読みづらいコードになるでしょう。
メンバー全員の可読性を考えるとどうしても最新のC#機能を多用した挑戦的なコードではなく、旧来のC#の書き方を踏襲した保守的なコードを書かざるを得ません。

新しい機能

保守的なコード

保守的な機能のみを使いつつ可読性の高いコードを書くことはもちろん可能であり、またその様なコードを書くことも重要なコーディング技術の一つです。

新しいコード

しかし、C#の文法的な新機能の多くは「今までできなかったことが出来るようになる」、というものより「今までできていたことがよりシンプルに表現出来るようになる」というものです。

新しいコードはシンプルなコード

コードは可読性が同じである場合、シンプルであればあるほど書く時間も読む時間もバグの数も少なく済みます。

つまり、可読性が犠牲にならないのならば新機能を使用してコーディングした方が生産性が高くなる、という結論になります。

新しいコードは良いコード

可読性を落とさずに新しいコードを書くには?

  • 新機能を使用すると生産性が高くなる
  • 新機能を使用すると可読性が低くなる

新機能のメリットとデメリットがわかりました。
では、どうすればこのデメリットを解消して新機能を使うことが出来るでしょうか?

思い出してください。新機能を使って可読性が下がる理由は、それがコードを読むメンバー達がC#の新機能を知らないからです。
つまり、チームメンバー全員に新機能の知識が普及すればよい わけです。

息抜きついでに読める新機能解説、始めます

というわけで、全てのC#プログラマーに新しい書き方を普及させるための連載をこれから始めたいと思います。

とは言うものの、忙しい仕事の合間にC#の新機能の解説を読むのは気が進まないでしょう。

そこでこの連載ではC#の新機能の詳細な仕様を解説するのではなく、書き方/読み方といった側面からなるべくかんたんに、ふわっとした新機能のご紹介をしていきたいと思います。

次回の連載第01回目では新しくなった「is演算子」について紹介しょうと考えています。
第01回目はこちら (近日公開予定)
仕事の合間の息抜きついでに、ぜひ読んでみてください。

ecbeingでは可読性を犠牲にしたくないエンジニアを募集しています!!

careers.ecbeing.tech

*1:他にも品質管理部やセキュリティ監査室などがコードを読むかもしれません