rksoftware

Visual Studio とか C# とかが好きです

More Effective C# 6.0/7.0 を読みました

More Effective C# 6.0/7.0 を読みました。

今確認してみると 2018/02/20 発売ということで、大分間をあけての読破ですが。

■ 副題について・概要

API設計、非同期プログラミング、動的プログラミング、
並列処理をクールに使い倒す50の方法

です。
主に4種類のテーマに分けて、計50のプラクティスを学べます。

API設計

クラスのインターフェイス設計に関する話題でした。例えば

  • なるべくインターフェイスを作ったほうが良い
  • setter と持つ参照型をプロパティで公開すると、外部から値の変更が可能になるから注意
  • なるべくプロパティは値型にしたほうが良い

の様な、一人でいちプロジェクトでプログラミングしていると中々見落としてしまう基礎を学べます。

非同期プログラミング

ズバリ async/await ですね。
何となく書くだけで、いい感じに動いてくれる async/await をきちんと教えてくれます。

  • デッドロックの危険性・なぜ起こるのか
  • いつ非同期を使うべきか
  • 非同期中の例外の扱い方

等、知らなくても何となく動いてしまい綱渡りでコーディングしていた私にも深く刺さる内容でした。

動的プログラミング

dynamic とかそのあたりの話題です。
dynamic が活きる場所・動的が良い場所、静的がいい場所など。
私は型がないと生きていけないプログラマなので、何としても dynamic を避けて生きてきましたが、本書のおかげで可能性が広がりました。

並列処理

バックグラウンドワーカーや同期ロックについてです。
同期ロックについては業務プログラマだとあまり触れる機会がなく、きちんと把握していない方もいると思います。本書おススメです。
また、バックグラウンドのスレッド処理に知らない専用の機能が多く知ることができとても勉強になりました。

総評

本書で扱う話題は、きちんと把握できていなくても何となく実装できて動いてしまうことが多いです。
その点で学習の優先順位が下がってしまう部分だというところが正直なところあると思います。
書籍の購入は学習のきっかけとして非常に優れたソリューションだと思います。とりあえず買いましょう。
そして読みましょう。一歩進んだプログラマに慣れること間違いなしです。