「.NETベストプラクティス」 - 研究ノート

「.NETベストプラクティス」

========== ========== ==========
[著者](米国)スティーブン・リッチー
黄色ブリッジ黄Haoyuリー(中)[翻訳]ウイング
[出版]マシンを押して
[版] 2014年1月初版
[感想] 2018年1月1日印刷
[価格] 69.00元
========== ==== ====== ==========

(P001)

開発者は、「ベストプラクティス」と呼ばれる任意の練習は懐疑的な態度を維持する必要があります。

開発者は、彼が採択された「ベストプラクティス」を選択するために使用される特定の環境に基づいている必要があります。

(P009)

MicrosoftのVisual StudioのIDEが広く慣れるための統合開発環境です。

(F0l6)

私は慎重に私は、.NETフレームワークが構築されている方法を学びましたから、各章の「.NETのデザイン」をお読みください。この本は、.NET Frameworkのチームを構築するための結晶デザイン思考を記録します。この本を通じて多くの重要な.NETの実践を学ぶことができ、それは非常に重要な資源です。

FxCopのツールは、の「.NETデザイン」を補完するものとして見ることができます。それはあなたが事前に指定されたルールに従ってアセンブリ1つの.NETずつチェックするのに役立ちます。

(P044)

ソフトウェアプロジェクトでは、活動が目標ではありません。すべての活動は、結果を達成するために標的にされなければなりません。

(P063)

ブレインストーミングは「アイデアと経験」の協力を促進するための方法です。

(P065)

唯一のコミュニケーションを通して、あなたのアイデアは誰か他の人のアイデアになることができます。

(P068)

良い仕事を整理するには、プロジェクトに精神的、物理的なニーズや作業の複雑な課題の初めに行きました。これらのシンプルかつ少ない厳しいタスクは、後でそれを行うことを残しました。方法は、考えると重要である、より良い探索するやりがいのある仕事のためのより多くの時間を残します。

(P069)

それらが発生する前に他の人の経験を学ぶことで、あなたは問題を防ぐことができます。

他人の経験を使用することは難しく、時間のかかる問題を回避するために、高レバレッジの方法です。

(P071)

学習体験を理解することは、仕事を見つけるか、材料と接触することです。多くのものが唯一の経験によって理解することができます。新しい知識が参加したり、ソフトウェア技術を接触させることにより得ることが必要。それは練習を介して取得する技術的なスキルの組み合わせを必要とします。物事の任意の書面が向上し、経験を通して強化されなければなりません。

(P077)

キャプチャと空のthrow文を書くときに例外をスローし直します。これは、コールスタックを保持するために設立された方法です。空のthrow文は、必ず助けデバッグエラーを原点位置に例外のためにそのスタックトレースすることができます。

(P078)

使い捨て.NETモードを使用して、ローカルとアンマネージリソースの解放のための主要なメカニズムです。

(P079)

.NETタイプはローカルリソースまたは使い捨てのフィールドを持っている場合、このタイプは、IDisposableインターを実装する必要があります。

(P081)

ステートメントを使用してステートメントは、IDisposableをオブジェクトを実装するためのコードを可能にし、正しく解放されなければならないとき。

(P082)

外層を交換しようと-finallyブロックの書き込みコードを使用して、ステートメントを使用しての二つの呼び出しDisposeメソッドを防ぐために。

(P084)

初期化されていないデフォルト値は0列挙です。

適切には、明示的に列挙のゼロ要素を定義する場合。

(P085)

空のインスタンスが意味的に等しい戻りNULLたびに、String.Emptyのように、空のインスタンスを返します。

フィールドは、クライアントがアセンブリ再コンパイルされている更新値を受信することを可能にするの値を変更することなく、このように宣言されたフィールドに、読み取り専用公開さ静的に定義します。

(P087)

変数名は、非常に簡単に理解するために、変数名は、その変数によって表されているもののことを示さなければならないはずです。変数名は、明確で正しいと一致している必要があります。

(P093)

拡張メソッドは、静的メソッド静的クラスとして定義する必要があり、このキーワードを配置する署名方式の最初のパラメータの前に決定します。

拡張メソッドは静的クラスを拡張することはできません。また、同じメソッドシグネチャと拡張メソッドの既存のタイプの署名場合は、拡張メソッドが呼び出されることはありません。

(P094)

一般的には、拡張メソッドは、新しい動作や機能を追加するために、クローズドタイプを変換するための効果的な方法です。

在某些情况下,使用 var 关键字是必需的。如果要让匿名类型工作,隐式类型的局部变量就是必需的。由于类型是匿名的,开发人员不能明确指定变量的类型。编译器会自动处理所有的匿名类型的隐式类型。

(P096)

在 C# 语言中,引用类型(类、接口、泛型和委托)的变量可分配空值。值类型(枚举、数字类型、布尔类型和用户定义的struct)不能分配空值。

在 .NET 2.0 中引入可以为空的类型,用来为一个基本值类型的变量分配一个空值。这些可为空的类型是 System.Nullable<T> 结构的实例,其中的类型参数 T 是值类型。更常见的是语法 “T?”,是 System.Nullable<T> 的简写,其中的 T 是值类型。

(P102)

从 .NET 2.0 开始,C# 语言就有两种形式的泛型:

泛型类型:使用一个或多个类型参数定义类、结构、接口或委托;

泛型方法:使用一个或多个类型参数定义的方法;

(P103)

随着 .NET 3.0 引入 LINQ,查询进入 C# 并作为一种主要的语言构造,成为 foreach 循环、委托和扩展方法的基础。

(P104)

LINQ 的内容很多。有许多相关的语言特性对 LINQ 来说是必不可少的,包括扩展方法、 Lambda 表达式、匿名数据类型以及分部方法。还有很多关键字和很多查询结构。

(P107)

实体框架 (Entity Framework)、NHibernate 和 LINQ to SQL 都可以提供数据库 LINQ,并且都支持延迟执行。

(P119)

命名约定使用 “<被测试类> + Tests” 的格式来命名包含了测试方法的类。

在测试类 (tests class) 中,单词 Tests 故意使用了复数。它的意思是包含了测试的类,也被称为测试夹具类。

测试方法的名称需要明确以下三个重要的事情:被测试方法; 测试执行的条件;测试通过后的预期结果;

测试方法的命名约定要符合可读性模式,并能清楚表达测试的意图。

这个约定是“被测试方法_指定的条件_期望的结果” (MethodUnderTest_WithSpecifiedCondition_ExpectThisResult)。

3A模式“安排-动作-断言 (Arrange-Act-Assert)”是一种广泛使用和有益的约定。

 

おすすめ

転載: www.cnblogs.com/GATTACA2011/p/12003844.html