ディーバ Blog

大阪発 C#の会社、株式会社ディーバの Blog です。

C# は「1クラス500行・1メソッド50行」なのか

経緯と結論

以下のツイートを見かけました。

C# のコーディングガイドラインとして「1クラス500行・1メソッド50行」を見かけたというツイートと、その出所を知りたいというツイート。既に、ツイート元の方は、間違いであった とツイートしています。

しかし検索すると、近しい C# のガイドラインは存在します。が、現在 まったく従う必要はないでしょう。C# のコーディング規則 には「C# 言語仕様では、コーディング標準が定義されていません。」とあります。

C# Coding Standard

それらしい記述は、「Programming .NET Components (O'Reilly Media, 著者 Juval Lowy)」の Appendix C# Coding Standard - Codeing Practices に見つかります。

Programming .NET Components: Design and Build .NET Applications Using Component-Oriented Programming

Programming .NET Components: Design and Build .NET Applications Using Component-Oriented Programming

内容は、Google ブックス から閲覧できます。IDesign からも Coding Standard 部分のみ少し新しい内容がダウンロードできます。

該当箇所はこちら。

  • Avoid files with more than 500 lines (excluding machine-generated code).
  • Avoid methods with more than 25 lines.

500行を超えるファイルを避ける・25行を超えるメソッドを避けるという内容で少し異なりますが、1ファイル1クラスとする記載もあり500行に関しては同義です。

また、2003年に C# 1.1 用にこの Coding Standard を発行し、C# のデファクトスタンダードとなったとも書いています。

Juval Lowy 氏は、Microsoft Regional Director を務め(社員ではない)、MSDN Library にいくつか記事も掲載されています。現在は見つけられませんが、当時は Microsoft 公式または公式に近いところから、この Coding Standard も参照できたかもしれません。