10
C#で「静的」を使用しないでください
コードレビューのために、他のアーキテクトに書いた申請書を提出しました。そのうちの1人はすぐに返事を書き、「「静的」を使用しないでください。静的クラスと静的メソッドを使用して自動テストを作成することはできません。「静的」は避ける必要があります。」 チェックして、クラスの1/4が完全に「静的」とマークされています。クラスはコード全体で使用される単一のグローバルクラスであるため、クラスのインスタンスを作成しない場合は静的を使用します。 彼は、静的コードでは使用できないモック、IOC / DIテクニックを含むものについて言及し続けました。彼は、サードパーティのライブラリがテスト不能であるために静的である場合、それは残念だと言います。 この他の建築家は正しいですか? 更新:ここに例があります: APIManager-このクラスは、次に許可される時間とともに呼び出しているサードパーティAPIの辞書を保持します。多くのサードパーティが利用規約で持っているAPIの使用制限を強制します。Thread.Sleep(APIManager.GetWait( "ProviderXYZ"))を呼び出して、サードパーティサービスを呼び出す場所で使用します。電話をかける前に。ここにあるものはすべてスレッドセーフであり、C#のTPLでうまく機能します。