「A より Bを使いましょう」って感じで対比して書いてある項目を、抜書きしてみた。
Item NN が前者で C# 4.0、Item mNNが後者で C# 3.0。
Item 01: Use Properties Instead of Accessible Data Members
パブリック・フィールドよりプロパティを使いましょうという当然な話。
Item 02: Prefer readonly to const
runtime 定数と compile-time 定数の違い。極限られた場合を除いて、普通は前者を選択するに越したことは無いとのこと。
Item 03: Prefer the is or as Operators to Casts
安全かつ効率的という事で強く推奨。
Item 04: Use Conditional Attributes Instead of #if
Conditional 属性はメソッド単位でしかつけられないが、むしろそのおかげで良好な構造化が保て、#if/#endif の濫用による可読性低下を防止できる。
Item 08: Prefer Query Syntax to Loops
for/while などの手続型構文よりも、宣言型の Query 構文を使うべし。Linqのメソッドも場合により可。
Item 12: Prefer Member Initializers to Assignment Statements
ローカル変数の宣言と初期化と同じで、保守性が高い。
Item 22: Prefer Defining and Implementing Interfaces to Inheritance
昔からあるオブジェクト指向プログラミングのプラクティス。
Item 30: Prefer Overrides to Event Handlers
ちょっと意外だけど、どちらも使える状況でさえあれば、よく考えてみると Override の方が簡単な上に自由度が高いという話。
Item m09: Prefer Generic Tuples to Output and Ref Parameters
『More ~』の方なので、C#4.0のTupleでなく C#3.x 環境で、Generics を用いた自作のクラスの話題。今の携わってる案件がC#3.5なので、使える。
Item m11: Use the Thread Pool Instead of Creating Threads
.Net が提供してくれてる Thread Pool の方が、使いやすくて効率がいいとの事。
Item m22: Prefer Defining Methods to Overloading Operators
まあ、明らかにメソッドよりも演算子オーバーロードの記述性が高いなんて場面は、滅多にないしね。
Item m38: Prefer Lambda Expressions to Methods
ラムダ式の方が、より小さい要素に分解したり、それらを組み合わせたりするのに便利。関数型言語に馴染みがあれば断然読みやすいし。
Item m44: Prefer Storing Expression<> to Func<>
式を保存したり複雑に組み合わせたりするときは、FuncよりExpressionの方が便利という話。
にしても、前回からずいぶんと間が空いてしまった・・・
0 件のコメント:
コメントを投稿