コメントが要らないプログラムの書き方

はてなブックマークで「コメントの要らないプログラムの書き方」が話題みたいです。

個人的には以下はまぁOKかなぁと思ってます。

  • 自分の確認のために書いてある書くコメント(ギリギリ)
  • 業務仕様を記述したコメント
  • どうしてそうしているのかを書いているコメント

但しこんなのは許せません。コメントなのでプログラム本体の話じゃ全然ないですが。

ちなみに以下、全部この目で見た事がある系です。

そんなこと見ればわかる

// エラーを出力する
Log.err(e.ToString());

// ログを出力する
Log.trace("Message");

そんなこと見ればわかる

catch(Exception ex) // エラーをキャッチする
{
}

そんなこと見ればわかる。

// 数字をパースする
int num = int.Parse(str);

そんなこと見ればわかる

/** フーフーする */
public static void Foo(string str/** 入力文字列 */) { }

/** ホゲホゲする*/
public static void Hoge(string str/** 入力文字列 */) { }

/** メインメソッド */
public static void Main(string[] args)
{
    // フーフーする
    Foo("foo");
    
    // ホゲホゲする
    Hoge("hge");
}

違う、そうじゃない

catch (Exception)
{
    return false; // 握りつぶして上位に返す
}

違う、そうじゃない

// ビットフラグ
uint flag = getSystemFlags();

おい、急に黙るな

public static void hage(IDictionary<string, IDictionary<string, string>> dicInDic, 
                        IList<IList<IList<string>>> listArray)

なんか言え

public static Tuple<string, IDictionary<string, string>> calc(int x, int y);

急にうるせぇぞ!

しかも名前は無意味系

public static void IfStringIsNullReturnsAnException(string str);

まとめ

特にそんなの知ってる系は何千個と繰り返されている場合が稀によくあるので本当に辛いですね。

以上です。