コメントが必要かどうかを問われれば、僕は「不要」と言います。
でも、それは二者択一な回答を期待されたときの話で、ドキュメントコメントのような、クラスや各メンバのドキュメントは書くべきだと思います。
僕が不要だと思うのは、メンバの実装部分に記述されているコメントです。
つまり、処理している内容や変数に対する説明のコメントが必要だと感じたら、そのコードはおそらくリファクタリングすべきコードであると考えます。
などと、もっともらしいことを書いたのですが、そもそも、僕は
コメントを書くことが大嫌い
なので、屁理屈を言っているだけなのかもしれません。
例えば、次のようなコードをコメントを書くように命じられたら、反発するのは僕だけではないでしょう。
void Method() {
// コンソールウィンドウにユーザー名を表示する
Console.WriteLine(_username);
}
そして、どうしてもコメントが必要だと言われたら、僕は、以下のように書き直すことを提案します。
void Method() {
ShowUsername();
}
/// <summary>
/// コンソールウィンドウにユーザー名を表示する
/// </summary>
void ShowUsername() {
Console.WriteLine(_username);
}
結果的にコードは長くなります。
しかし、先に書いたとおり、メンバのドキュメントコメントと、処理に対するコメントは別のものです。
もし、処理にコメントが必要だとするなら、それはメソッドアウトが必要であることと同じ意味だと思っています。
逆に、メソッドアウトの必要がないなら、コメントも必要ないと思ってます。
#ちょっと前に受けた、組み込み系の開発を除いてはw