経緯と結論
以下のツイートを見かけました。
C# のコーディングガイドラインとして「1クラス500行・1メソッド50行」を見かけたというツイートと、その出所を知りたいというツイート。既に、ツイート元の方は、間違いであった とツイートしています。
確かC# に関して以前に見かけたガイドラインだと、メソッドは50行、ソースは500行超えたら何か変な兆候らしい
— 獏(ばく) (@baku_dreameater) 2016年5月12日
このガイドラインがどこに書いてあったかを知りたい。つまりそんなのは全く信じてないし、ガイドラインとして出してほしくない。 https://t.co/lJkhJOwhq8
— じんぐる (@xin9le) 2016年5月12日
しかし検索すると、近しい 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
- 作者: Juval Lowy
- 出版社/メーカー: O'Reilly Media
- 発売日: 2009/02/09
- メディア: Kindle版
- この商品を含むブログを見る
内容は、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 も参照できたかもしれません。