web-dev-qa-db-ja.com

あなたが今まで見た中で最も役に立たないコメントは何ですか?

コードにコメントを付けることは、コードを次の人、または6か月ほどで自分自身に理解できるようにするためのコーディングスタイルの重要な部分であることは誰もが知っています。

ただし、コメントでマスタードが切れない場合もあります。私は明白なジョークやベントされたフラストラトンについて話しているのではなく、説明を試みているように見えるコメントについて話しているのですが、あまりにも貧弱なため、そこにいない可能性があります。 短すぎる不可解すぎる、またはまったく間違っているのコメント。

おとぎ話として、あなたが見たもので本当にただのことを共有できますかその悪いそしてそれが明白でない場合は、それが参照していたコードを示し、それの何が悪いのかを指摘しますか?代わりに何すべきそこに入ったのですか?

参照:

20
Adam Bellaire

典型的なCompSci 101タイプのコメント:

$i = 0; //set i to 0

$i++; //use sneaky trick to add 1 to i!

if ($i==$j) { // I made sure to use == rather than = here to avoid a bug

そういうこと。

112
Rich Bradshaw

埋められていないjavadoc定型コメントは特に役に立ちません。彼らは何も役に立たずに多くの画面領域を消費します。そして最悪の部分は、そのようなコメントの1つが現れるところに、他の何百ものものが確かに遅れているということです。

/**
 * Method declaration
 *
 *
 * @param table
 * @param row
 *
 * @throws SQLException
 */
void addTransactionDelete(Table table, Object row[]) throws SQLException {
75

私は以前にこの小さな宝石を書いていることに気づきました:

//@TODO: Rewrite this, it sucks. Seriously.

通常、その夜のコーディングセッションが終了したことを示す良い兆候です。

53
Ross
// remember to comment code

wtf? :D

51
Decio Lira

このようなもの:

// This method takes two integer values and adds them together via the built-in
// .NET functionality. It would be possible to code the arithmetic function
// by hand, but since .NET provides it, that would be a waste of time
private int Add(int i, int j) // i is the first value, j is the second value
{
    // add the numbers together using the .NET "+" operator
    int z = i + j;

    // return the value to the calling function
    // return z;

    // this code was updated to simplify the return statement, eliminating the need
    // for a separate variable.
    // this statement performs the add functionality using the + operator on the two
    // parameter values, and then returns the result to the calling function
    return i + j;
}

等々。

42
Robert S.

コードの内容を繰り返すだけのコメントはすべて役に立たない。コメントは、コードが何をするのか教えてはいけません。プログラミング言語を十分に理解していない場合、コードを読むだけで何が起こっているのかを理解するには、そのコードをまったく読んではいけません。のようなコメント

// Increase i by one
i++;

完全に役に立たない。私は私が1つ増えているのがわかります、それはコードが言っていることです、私はそれについてコメントする必要はありません!コメントを使用して説明する必要があります理由何かが行われている(それが明白であるとはほど遠い場合)または理由何かがそのように行われ、他の方法ではない(だから私はできる別のプログラマーが行った特定の設計上の決定を理解します。これは、一度には明らかになりません)。トリッキーなコードを説明するために、さらにコメントが役立ちます。コードをざっと見て何が起こっているのかを判断することは絶対に不可能です(たとえば、数値に設定されたビット数をカウントするトリッキーなアルゴリズムがあります。そうでない場合。このコードが何をするかを知っていれば、そこで何が起こっているのかを推測する機会はありません)。

41
Mecki
Thread.Sleep(1000); // this will fix .NET's crappy threading implementation
38
MusiGenesis

私はかつて奇妙なCコンパイラでプロジェクトに取り組んだことがあります。 2つのステートメントの間にコメントが挿入されていない限り、有効なコードでエラーが発生しました。そこで、コメントを次のように変更しました。

// Do not remove this comment else compilation will fail.

そしてそれはうまくいきました。

37
Toon Krijthe

私はそれを信じていません。 22の回答があった後、私はこの質問に答えましたが、最も役に立たないタイプのコメントを指摘した人は誰もいませんでした。

間違っているコメント。

人々がコードを理解するのを邪魔する余分なコメントを書くのは十分に悪いことですが、誰かが何かがどのように機能するかを説明する詳細なコメントを書いたとき、それはそもそも間違っているか、コメントを変更せずにコードを変更した後に間違っています(はるかに可能性の高いシナリオ)、それは間違いなく最悪の種類のコメントです。

29
David M. Karr

GhostDocは、それ自体でかなり興味深いものをいくつか考え出します。

/// <summary>
/// Toes the foo.
/// </summary>
/// <returns></returns>
public Foo ToFoo()
25
Mark
// secret sauce
23
Justin
// Don't know why we have to do this
21
ljs
try
{
...some code...
}
catch
{
// Just don't crash, it wasn't that important anyway.
}

*はぁ

20
BoltBait

ファイルに一度出くわした。数千行のコード、そのほとんどは非常に恐ろしいものです。間違った名前の変数、ループのトリッキーな条件、ファイルの途中に埋め込まれた1つのコメント。


   /* Hmmm. A bit tricky. */
18
//' OOOO oooo that smell!! Can't you smell that smell!??!??!!!!11!??/!!!!!1!!!!!!1

If Not Me.CurrentMenuItem.Parent Is Nothing Then
    For Each childMenuItem As MenuItem In aMenuItem.Children
        do something
    Next

    If Not Me.CurrentMenuItem.Parent.Parent Is Nothing Then
        //'item is at least a grand child
        For Each childMenuItem As MenuItem In aMenuItem.Children
            For Each grandchildMenuItem As MenuItem In childMenuItem.Children
                do something
            Next
        Next

        If Not Me.CurrentMenuItem.Parent.Parent.Parent Is Nothing Then
            //'item is at least a grand grand child
            For Each childMenuItem As MenuItem In aMenuItem.Children
                For Each grandchildMenuItem As MenuItem In childMenuItem.Children
                    For Each grandgrandchildMenuItem As MenuItem In grandchildMenuItem.Children
                        do something
                    Next
                Next
            Next

        End If
    End If
End If
16
Levi Rosol

IDEによって挿入されるデフォルトのコメント。

WebSphere Application Developerを使用して私が取り組んだ最後のプロジェクトには、数千とは言わないまでも数百のJavaクラスのようなものを含むクラスに悩まされていないように見える、多くの保守開発者と請負業者がいました。この:

/**
 * @author SomeUserWhoShouldKnowBetter
 *
 * To change this generated comment edit the template variable "typecomment":
 * Window>Preferences>Java>Templates.
 * To enable and disable the creation of type comments go to
 * Window>Preferences>Java>Code Generation.
 */

よくコメントされたソースファイルを実際に見つけたと思ってから、それが別のデフォルトのコメントであることに気付くまで、常にその一瞬があり、SWEAR_Word_OF_CHOICEを使用せざるを得ませんでした。

15
Jonny Buchanan

私は昨日C#アプリでこのコメントを見ました:

//TODO: Remove this comment.
15
Mike Cole

私のお気に入りのコメント。

/* our second do loop */
do {

それを書いた人は誰でも-あなたはあなたが誰であるかを知っています。

13
Robert

何年も前のCでの非常に大規模なデータベースエンジンプロジェクト-短い変数名とスペルミスのある変数名を含む数千行のコード、コメントなし...モジュールに数千行のネストされたif条件が深くなるまで、次のコメントが表示されました:

//if you get here then you really f**ked

その時までに、私たちはすでにそれを知っていたと思います!

11
Steven A. Lowe

私のいずれかから取得 ブログ投稿

私が管理しているプロジェクトの1つのソースコードの一部をクリーンアップする過程で、次のコメントに出くわしました。

/*
   MAB 08-05-2004: Who wrote this routine? When did they do it? Who should 
   I call if I have questions about it? It's worth it to have a good header
   here. It should helps to set context, it should identify the author 
   (hero or culprit!), including contact information, so that anyone who has
   questions can call or email. It's useful to have the date noted, and a 
   brief statement of intention. On the other hand, this isn't meant to be 
   busy work; it's meant to make maintenance easier--so don't go overboard.

   One other good reason to put your name on it: take credit! This is your
   craft
*/

そして少し下に:

#include "xxxMsg.h" // xxx messages
/*
   MAB 08-05-2004: With respect to the comment above, I gathered that
   from the filename. I think I need either more or less here. For one
   thing, xxxMsg.h is automatically generated from the .mc file. That might
   be interesting information. Another thing is that xxxMsg.h should NOT be
   added to source control, because it's auto-generated. Alternatively, 
   don't bother with a comment at all.
*/

そしてまたもや:

/*
   MAB 08-05-2004: Defining a keyword?? This seems problemmatic [sic],
   in principle if not in practice. Is this a common idiom? 
*/
10
Scott Dorman

AHHHRRRGGHHHいくつかの古代のコードでこれを見つけただけで、男は彼がかなり面白いと思ったに違いない

private
  //PRIVATE means PRIVATE so no comments for you
  function LoadIt(IntID: Integer): Integer;
10
Peter Turner

巨大なVB5アプリケーションで

dim J
J = 0 'magic
J = J 'more magic
for J=1 to 100
...do stuff...

参照は明らかに [〜#〜] this [〜#〜] ...です。そうです、これらの2行のないアプリケーションは、実行時に不明なエラーコードで失敗します。理由はまだわかりません。

10
Axeman

最悪のコメントは、コードの機能について間違った説明をするコメントです。それはコメントがまったくないよりも悪いです。

私はコードでこの種のことをあまりにも多くのコメントで見ました(コードはそれ自体で十分に明確であるため、そこにあるべきではありません)、そしてそれは主にコードが更新されたとき(リファクタリング、変更など)に起こりますしかし、コメントはそれに伴って更新されません。

経験則としては、コメントを書いて説明するだけですwhyコードは何かをしているのであって、whatはしていません。

9
Tom De Leu

間違いなく、エラー処理の代わりとなるコメントである必要があります。

if(some_condition){
    do_stuff();
}
else{
    //An error occurred!
}
8
Jason Baker

コメントアウトされたコード行の前の行に書かれている、これを見つけました。

//This causes a crash for some reason. I know the real reason but it doesn't fit on this line.
8
snicker

vb6からvb.netに移植された100kLOCアプリケーション。以前の開発者が1つのメソッドにコメントヘッダーを配置し、それ以降に作成したすべてのメソッドに正確なコメントをコピーして貼り付けたように見えます。何百ものメソッドとそれぞれが誤ってコメントしました...

私が最初にそれを見たとき、私は笑いました... 6か月後、冗談は薄く着ています。

7
SecretDeveloper

これは、データベーストリガーからの絶対に実際の例です。

/******************************************************************************
   NAME:       (repeat the trigger name)
   PURPOSE:    To perform work as each row is inserted or updated.
   REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        27.6.2000             1. Created this trigger.
   PARAMETERS:
   INPUT:
   OUTPUT:
   RETURNED VALUE:
   CALLED BY:
   CALLS:
   EXAMPLE USE:
   ASSUMPTIONS:
   LIMITATIONS:
   ALGORITHM:
   NOTES:
******************************************************************************/
7
JosephStyons
/** function header comments required to pass checkstyle */
6
Bill the Lizard

私が非常に役立つと思ったことのないもの:

<!--- Lasciate ogne speranza, voi ch'intrate --->
5
Soldarnal

私が今まで見た中で最も役に立たない2つのコメント...

try
{
  ...
}
catch
{
  // TODO: something catchy
}

これもDailyWTFに投稿したので、コメントだけにトリミングします...

  // TODO: The following if block should be reduced to one return statememt:
  // return Regex.IsMatch(strTest, NAME_CHARS);
  if (!Regex.IsMatch(strTest, NAME_CHARS))
    return false;
  else
    return true;
5
GalacticCowboy

自動javadocツールによって生成されたコメント(例: JAutoDoc )。チームメンバーに、次のようにコメントされた大量のコードを送信してもらいました。

/**
 * Gets the something
 *
 * @param num The num
 * @param offset The offset
 */
public void getSomething(int num, bool offset)

出発点として役立つかもしれませんが、定義上、プログラムが変数名とメソッド名を解析してコメントを作成している場合は、あまり役に立ちません。

4
sk.

私はこれらをたくさん持っています:

# For each pose in the document
doc.elements.each('//pose') do |pose| ...

# For each Sprite in sprites
@sprites.each do |Sprite| ...

# For each X in Y
for X in Y do ...

しかし、私はそれを削減しようとしています。 :(

4
Firas Assaad

私がC++またはJavaでOOPを教えるときはいつでも、私は通常次のようになります:

// My class!
Class myclass 
{
    //Default constructor
    public myClass()
    {
       ...
    }
}

私の方針は、不十分な文書と余分な文書の両方でポイントを失うことを学生に発表することです

4
Uri

私たちはPHPアプリケーションのひどい混乱を維持しており、元の開発者はその場所に「デバッグコード」をコメントアウトしたままにする習慣がありました。彼がいつも言っていたように、それは「彼が必要な場合に備えて繰り返しになりますが、彼はコメントを外して出来上がりなので、多くの作業を節約できます。」.

したがって、すべてのスクリプトは文字通り次のような行でいっぱいです。

//echo "asdfada";
//echo $query."afadfadf";

それらのどれも実際には機能していません。それらは主に、コードの実行がそのポイントに到達したことを確認するためにあります。

関連するメモとして、彼は廃止されたスクリプトやデータベーステーブルを削除したことはありません。したがって、dosomething.php、dosomething1.php、dosomething1.bak、dosomething1.bak.phpなどのファイルで満たされたディレクトリがあります...誰もが実際に使用されているものを知らないため、誰もが何かを削除することを恐れています。

4
Josef Sábl
#include <stdio.h>
//why isn't this working!

/*-style */グローバルコメントのみをサポートするc-compilerを使用。

4
rlb.usa

典型的なCompSci 101タイプのコメント:

私は、生徒が宿題でこれを行った場合、極端な暴力行為をランダムに行うと脅迫しました。そして彼らはまだしました。しかし、適切なインデントの感覚は完全に失われているように見えました。 Pythonが初心者にとって理想的な言語である理由を示します。

4
Konrad Rudolph

これが私の2つのお気に入りです:

                // do nothing

スペースをとるだけなので、これは実際には役に立ちません。

その後、さらにどこかに:

        // TODO: DAN to fix this.  Not Wes.  No sir.  Not Wes.

私がダンでもウェスでもないのなら、これは無視すべきだと思いますよね?

3
JB King

過度の冗長性は、何が起こっているのかを明確にしません。これは携帯電話のファームウェアからのものです

/*========================================================================

FUNCTION 
    DtFld_SetMin

DESCRIPTION
    This local function sets a nMin member of the Dtfld struct.

DEPENDENCIES
    None

ARGUMENTS
    [in]me
        Pointer to the Dtfld struct.
    [in]val
        Value to set

RETURN VALUE
    None.

SIDE EFFECTS
    None

NOTE
    None
========================================================================*/
/**
 @brief This local function sets a nMin member of the Dtfld struct..
 @param [in] me  Pointer to the Dtfld struct.
 @param [in]val Value to set
 @retval None 
 @note None
 @see None
*/

static __inline void DtFld_SetMin(DtFld *me, int val)
{
  me->nMin = val;
}
3
jonny

私の研究はAPIの使いやすさを扱っており、誤解を招く、見当違い、不正確、または不完全であるという理由だけで悪いコメントをたくさん目にしました。

たとえば、Javaメッセージングサービス(JMSまたはJ2EE内)では、QueueReceiver.receiveクラスに次のgemが含まれます: "この呼び出しは、メッセージが到着するか、タイムアウトが期限切れになるか、このメッセージコンシューマーになるまでブロックされます。ゼロのタイムアウトが期限切れになることはなく、コールは無期限にブロックされます。」

いいね?正しい?

問題は、私のラボの調査が示すように、コメントがすべてをカバーしているとユーザーが信じていることです。メッセージが届かない状況に直面して、彼らは説明を他の場所で探すことを拒否します。

この場合、QueueConnectionFactoryからQueueConnectionを作成すると、startが呼び出されるまでメッセージが配信されないことが通知されます。しかし、それはreceiveメソッドには表示されません。

その線がなかったら、もっと多くの人が他の場所でそれを探していただろうと私は信じています。

ちなみに、私の研究では、JavaDocのユーザビリティ全般と、人々がJavaDocsで重要なディレクティブを実際に見つけるかどうかを扱っています。誰かが見てみたいなら、関連するのは ここ です。

3
Uri
cntrVal = ""+ toInteger(cntrVal)      //<---MAYBE THIS IS THE WAY I'M GOING THROUGH CHANGES (comin' up comin' up) THIS IS THE WAY I WANNA LIVE

それはEタイプの曲からの歌詞です...

3
Ace

無関係なコメントが壊れます。通常、フローが論理的に分離されている場合は、次のようなコメント行があります。

/***************************************************************************/

コードのそのセクションの上下が役立つ場合があります。また、後で戻って大きな関数(最初は小さな関数)をいくつかの小さな関数に分割して、コードを読みやすくする必要がある場合にも便利です。

名前のないままでいる元プログラマーは、次の2行を追加することにしました。

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

コードの1行ごと

3
Steropes

あるコードで次のコメントを見たら:

//I know that this is very ugly, but I am tired and in a hurry. 
//You would do the same if you were me...
//...
//[A piece of nasty code here]
3
Doron Yaacoby
// initialise the static variable to 0
count = 1;
3
EMP

私はこれを行うのに非常に悪い習慣があります、特に私が転がっているとき:

// TODO: Documentation.
3
bouvard

非常に大きなソースファイルで、単一のプロセスでマルチスレッドを実装します。すべてのコールスタックの切り替えとセマフォの取得、スレッドの一時停止と再開の真っ只中に、ポインタ操作の特にあいまいなビットに関する簡単なコメントがありました。

/* Trickiness */

ジー、共有してくれてありがとう。

3
CJP

// 幸運を

2
Alex

私は2つの言語(英語とフランス語)で働いていますが、私のお気に入りのコメントはフランス語でした:

/* La passe du coyote qui tousse */

翻訳すると、次のようになります。

/* The coughing coyote trick */

これは通常、作成者にとって巧妙なアイデアのように見えて完全にあいまいなコードのセグメントを表すか、作成者でさえそれが機能する理由を理解していなかった奇妙なバグ修正でした(ifステートメントを移動して競合状態を修正することを考えてください)。すべての場合において、それを変更することの効果を予測することは非常に困難であったため、それをリファクタリングしなければならない人を怖がらせるのは、不十分に書かれたコードでした。

2

昔々、私は見ました:

#region This is ugly but a mas has to do what a man has to do
Initialization of a gigantic array (...)
#endregion 
// Aren't you glad this has ended?

私はその開発者でなくてよかったです。

2
rshimoda
add ax,1 ;add 1 to the accumulator

真剣に?そのコメントは私の人生の5秒を無駄にしました。

また、古いコメントFTL

//the system can only handle 5 people right now. make sure where not over
if(num_people>20){ 
2
Earlz

あまりコメントではありませんが、私がかつて使用しなければならなかったシステムのAPIを記述したJavaDocからです。

setAttribute(attributeName、attributeValue)属性を設定します

属性が何であるか(HTML/XML/etc属性ではない)、存在する属性、またはそれらが持つことができる値はどこにも文書化されていませんでした。

2
Quentin
// Magic
menu.Visible = False
menu.Visible = True

これは、私が以前作業していたPowerBuilderコードのUIフレームワークからのものです。フレームワークは、メニュー項目を動的に(データベースデータから)作成しました。ただし、PowerBuilderを16ビットから32ビットにアップグレードすると、メニューコードが機能しなくなりました。リード開発者は、メニューを非表示にしてから表示すると、メニューが正しく表示されるとどういうわけか判断しました。

2
Paul Lefebvre
/// <summary>
/// Disables the web part. (Virtual method)
/// </summary>
public virtual void EnableWebPart() { /* nothing - you have to override it */ }
2
kjv

私が今まで出会った中で最もおかしなものの1つ。

// HACK HACK HACK. REMOVE THIS ONCE MARLETT IS AROUND

不思議に思ったもの。

// this is a comment - don't delete
2
Secko

これまで誰もこのような投稿をしていなかったことに驚いています。

 #contentWrapper{
  position:absolute;
  top: 150px; /*80 = 30 + 50 where 50 is margin and 30 is the height of the header*/
 }

明白な間違ったコメントは、最悪の種類のコメントです。

2
Pim Jager

私はこれをソフトウェアのINIファイル(少し前に私にダンプされたものの1つ)で見ました)私は維持しています:

;--- if LOGERR=1, errors are logged but debugging is difficult
;--- if LOGERR=0, errors are not logged but debugging is easy
LOGERR=1

さて、デバッグは確かに難しかったですが、私はあえて設定を変更しませんでした。

2
MPelletier
// yes, this is going to break in 2089, but, one, I'll be dead, and two, we really ought to be using
// a different system by then
if (yearPart >= 89)
{
    // naughty bits removed....
}

(コメントが進むにつれて役に立ちませんが、どちらも真実のステートメントです。)

2
Michael Todd
/* FIXME: documentation for the bellow functionality - and why are we doing it this way */

それは会計アプリケーションのための巨大な統計プログラムでした。私たちは、なぜ彼女がそれを-間違った-方法でやったのか理解できませんでした。しかし、私たちはそれを書き直さなければならず、顧客にペナルティを支払いました。

2
Zsolt Botykai

今日、宣言のブロックの真ん中でこれを見つけました:

// other variables

ねえ、本当に?ありがとう。

1
JohnFx

1000行を超えるがコメントのないJavaクラスにいくつかの変更を加えています。私はコーディングスタイルの初心者なので、次のようなコメントを追加するのは仕方がありません。

/*Added because someone asked me to add it*/
1
dagofly
if (returnValue ==0)
  doStuff();
else
  System.out.println("Beware of you, the Dragons are coming!");
1
greuze
/**
 * Implements the PaymentType interface.
 */
public class PaymentTypePo implements PaymentType
1
andersonbd1

この:

うん、空白スペース、Subversion変更ログとして残されています。

1
Stefan Kendall

私が遭遇した最も役に立たないタイプのコメントは、第二言語のコメントであると言わざるを得ません。

私は、英語の非常に貧弱な近似で走り書きするよりも、誰かの母国語ではっきりと書かれたコメントを見たいと思います。少なくともその時、その言語のネイティブスピーカーはそれを翻訳することができました。 ESLのコメントは、それを書いた人を除いて、地球上の誰もが読めないことが多く、時には彼らによってさえも読めません。

1
user23405

// Undocumented

私はかつて、ハリスのミニコンピューター用にカスタマイズしたオペレーティングシステムコードを保守していました(はい、これはかなり前のことです)。ある日、スケジューラコード(アセンブラ)を調べてみると、上部に「Begin Magic」というコメントがあり、約25行後に「EndMagic」というコメントがあるコードブロックに出くわしました。その間のコードは、私が今まで見た中で最もタイトで、最も複雑で、エレガントなコードの一部でした。コードのその小さなセクションが実際に何をしているのか(VMスイッチング)を理解するのに4人かかりました。

1
jfawcett

恥ずかしさを避けるために名前を削除しましたが、これは一部の製品コードで見つかったコメントです。残念ながら、これはASPコードであり、VB6モジュールを参照しており、顧客は非常に好奇心旺盛だったため、コンサルタントの訪問中に現場にいる間にコメントを指摘してくれたのは彼女でした。幸いなことに、彼女はそれについてユーモアのセンスを持っていました。

'この@ "%&がどのように機能するのかわかりません。その請負業者によって作成された&£$!の負荷です---------。
そのままにしておき、誰も変更する必要がないことを願っています。

残念ながら、私にとってコードは約1年後に変更する必要がありました。その時点で、ソースコードがなく、ジャンクして無料で書き直す必要がありました。

1
BlackWasp

//リターン

return;

1
Eli

私はこれをねじれたプログラムで見つけました

# Let them send messages to the world
#del self.irc_PRIVMSG  # By deleting the method? Hello?
1
vikingosegundo

私はかつて、いくつかのマクロで基本的なARM命令セットを拡張した非常に才能のあるアセンブリ言語プログラマーと協力しました。彼のコードは数万命令は次のようになりました-私(有能なARMプログラマー)が???で表されて読むことができなかったマクロ命令と時折通常のARM = ADDのような命令:

 ... 
 ??? R0、R0、#1 
 ??? R0、R1 
 ADD R0、R0、#6; 6 
を追加しますか? R1、R0 
 ??? R0、R0、R1 
 ... 

あなたが惑星の大きさの脳を持っているとき、それはあまりにも単純すぎるそれらの厄介な指示に対処するには高すぎる眉であると私は推測することができるだけです。

1
Jason Williams

誰かの名前やイニシャル、それだけです。これらの署名がコードのブロックを定義する場合があります...

//SFD Start
...code...
//SFD End

コードがそのような芸術作品であるように、彼らはそれに署名しなければなりません!さらに、他の誰かがこのようにマークされたコードを変更する必要がある場合はどうなりますか?

これを、ソース管理システムの「非難」または「注釈」機能と混同しないでください。

1
Aardvark

これは、マッピング製品のサンプルアプリケーションで見つかりました。

// Return value does not matter
return 0;
1
Nathan W
if (someFlag)
{
    // YES
    DoSomething();
}
else
{
    // NO
    DoSomethingElse();
}

それを絶えずやっていた一人の男がいました、チームの残りは結局彼にそれをやめるように説得しました!

1
Antony Scott

これは私が大学での私のグループの最後のプロジェクトでファイルに書いたコメントです

/* http://youtube.com/watch?v=oHg5SJYRHA0 */
1
Derek H

私たちが仕事でいつも冗談を言っている古典(タイプミスあり):

// Its stupid but it work

これは、古いコードベースで複数回見つかりました。

1
David Thibault

オーディオをGSMからmu-lawにトランスコードする2000行のコードのバグを修正する必要がありました(主にビットシフトと変換値の配列を使用)。ファイル内の唯一のコメントは、ファイルで定義されている唯一のメソッドの先頭にありました。そうだった:

/* Do the business */
1
Dan J

これをメモリから引用するため、正確ではない可能性があります。

これが何をするのかわかりませんが、うまくいくようですので触れていません。

面白いのは、私がそれを見つけた方法です。このコメントは、当社の一部の開発者がクライアント用に作成し、MDBで配布したアクセスアプリケーションに埋め込まれていました。残念ながら、「動作しているように見える」コードが爆撃され、Accessはコードウィンドウを忠実に開き、デバッガーがコメントのすぐ下の行を強調表示しました。それはその顧客への信頼を正確に刺激しませんでした。

1
JohnFx

今日はやっかいなことに出くわした。それがExcelワークブックのVBAマクロの一部であったことを考えると、私はそれを期待すべきでした。

a.writeline s 'write line

これを書いた人が、スペースを使って、信じられないほど混乱している「writeline」コマンドをクリアするコメントを書くのに時間がかかったのは特に魅力的でしたが、意味のある変数名を使用する必要はありませんでした。私が知る限り、aは「ファイル」の略であり、sは「文字列」の略です(「a」はすでに使用されているため)。

1
JohnFx

レガシーコードから取得した、これは次のif条件の目的の唯一の説明でした(条件は120列で4行にまたがっていました):

#-- Whoa, now that's a big if condition.
1
Adam Bellaire

今日これを見つけました...

// TODO: this is basically a copy of the code at line 743!!!
1
mezoid

私はかつてVB.NETアプリでこの小さな美しさに出くわしました

Dim huh as String 'Best name for a variable ever.
1
John Lechowicz

ランダムに、コードの途中で:

//???
1
Greg

ゲームのAI部分の中に素晴らしいコードを見ました:

..."AI code"...
if(something)
   goto MyAwesomeLabel;   //Who's gonna be the first to dump crap on me for this?
..."More Ai code"...

MyAwesomeLabel:
   //It wasn't that hard to get here, right?
   ..."Even more AI code"...
0
/* this is a hack.
 ToDo: change this code */
0
dotnetcoder

# Below is stub documentation for your module. You'd better edit it

0
pestilence669

私が覚えているもう一つ:

//TODO: This needs to be reworked.  THIS CRAP NEEDS TO STOP!!!
0
Mike Cole
//I am not sure why this works but it fixes the problem.

これは私の役に立たないコメントのリストの一番上にあります。

0
StubbornMule

質問に完全には適合していませんが、私は次のことを見ると嫌いです:

try
{
  someSeeminglyTrivialMethod();
}
catch (Exception e)
{
  //Ignore. Should never happen.
}

コードレビュー中にそれを見つけたときはいつでも、キャッチを次のように置き換えるように指示します。

catch (Exception e)
{
  System.exit(0);
}
0
Snekse
{
    Long complicated code logic  //Added this
}
0
Kapsh

レガシー通信アプリケーションに取り組んだときからの私のお気に入り。

// Magic happens here...
0
Thomas DeGan

このコメントは実際には別の言語で書かれていますが、翻訳で効果を伝えようと思います。

//we trick it, if forbidden, as if it had already existed

コメントが説明しようとしていたのは、オフにされたリストアイテムの処理方法でした。コードはアイテムを重複としてマークしたため、スキップする必要があります。はい、非常に低音の扱いにくい方法ですが、無意味なコメントと比較すると見劣りします。

0
Martha
// this is messed up, and no one actually knows how it works anymore...
0
madlep
[some code]
// [a commented out code line]
// this line added 2004-10-24 by JD.
// removed again 2004-11-05 by JD.
// [another commented out code line]
[some more code]

a)なぜですか? b)どの行ですか?

0
whybird

私は最近、私が何年も前に書いたいくつかのコードでこれを見つけました:

// it's a kind of magic (number)
$descr_id = 2;
$url_id = 34;
0
DisgruntledGoat

{いくつかのコード;} //なぜこれを行うのか覚えていませんが、機能します...

0
hminaya

今日これに出くわした:

/// <summary>
/// The Page_Load runs when the page loads
/// </summary>
private void Page_Load(Object sender, EventArgs e) {}
0
Gavin Miller

誰かが私に彼のプログラムが作成したバイナリファイルを記述したcファイルを送ってくれました。

実際のデータの書き込みのどこかを除いて、コメントは含まれていませんでした

SwapArray(..); // Big endian ???
write();

SwapArrayの実装について尋ねたところ、彼はそれは必要ないと言った。それはLinuxマシンで動作することを確認するためだけだ。

実験した後、彼はどこでもリトルエンディアンを使用していることがわかりました(これは通常のようです)が、実際のデータのみがビッグエンディアンで書き込まれていました。通常は16進エディタで表示できますが、データは浮動小数点で格納されているため、混合エンディアンに気付くのはそれほど簡単ではありません。

0
Davy Landman

トップ・オブ・ザ・ポップスは確かに

//  This code should never be called
0
endian

実際、私はこれらのいくつかを持っています、

// 18042009: (Name here) made me do this

それらのコメントをあまり誇りに思っていませんが、なぜ私がその特定のセクションでWTFコードを作成したのかを思い出させるために、その点で非常に役立ちます。

0
Makach

//緊急の作業:このたわごとを再実装します。古いコードは地獄のように壊れています...そして私たちはすべての問題を解決したと考えました

私の古いプロジェクトの1つでそれを見つけました。最初は笑いましたが、まだバグが見つからなかったので、結局は噛みつきました。

0
Dr.Optix