あなたが今まで遭遇したソースコードの中で最も良いコメントは何ですか?
TextBox1.Text = TextBox1.Text; //Point less yes, who writes this crap?
MAPPERアプリをコーディングするときには、 some という標準があり、そのうちの1つは、スイート全体で使用されている標準変数のリストがあることです。これらのうちの1つ - 「V43」は常に姓を保持するために使用されていました。だから私が修正を求められていたMAPPERコードの大きな不可解な塊の中の only comment が次のようになったときの私の不快さを想像してみてください。
Here V43 contains the Surname
よく書かれたLISPは最も読みやすい言語の1つで、私はそれが大好きです。しかし、不適切に書かれたLISPは、悪いJavaなどよりもはるかに悪い悪夢になる可能性があります。
ここで、接尾辞a、b、およびcで名前が付けられたオリジナルファイルの3つの亜種が存在する場合、「グループファイル」を作成する必要があります。不要なグループファイルを受け取っていたという奇妙なバグを突き止めようとしていました….
(let ((varianta (format nil "~aa" problem))
(variantb (format nil "~ab" problem))
(variantc (format nil "~ac" problem)))
;;if the A and B variants exist, create a group file
;;(why not just check for a? I don't know, this just feels right)
(when (and (probe-file varianta)
(probe-file variantb))
...)))
バグ:1、ガット:0。
3つの亜種すべてをチェックするのが良い考えであるとこれを書いた人が誰にも起こらなかったようです。もちろん、それが最初にこのコードが書かれてから10年後に追跡してしまったバグでした(それは最初のSVNログの前にあります)。
[onload_1;block=begin;when 1=0]
Some of the techinques in this template are rather obscure, just trust me, they need to be there.
OTOH a better sollution would be to create a few seperate templates and pick one in the php-script...
[onload_1;block=end]
私のお気に入りは、Javaで書かれた学校プロジェクトのビジネスロジックの一部に含まれる変数名でした。
int StupidJava = -1;
<cftry>
...code...
<cfcatch>
<!--- Gobble --->
</cfcatch>
<cftry>
それは私の会社のコードベース全体にあります。それはColdFusionです、そしてそれは単にエラーを無視します。
クラスからの古いコードを振り返るのは楽しいです...
cardDeck.Push_back(*(new card((rank)r, (suit)s))); // Push each card onto the deck
// Temp. objects are overrated
いくつかのことを経験しながら、ランダムコードを一緒にハッキングしていた4 AMにもっとコメントを残したいと思います。
REM Don't delete this print statement ****** will die
問題のプロセスは、いくつかのレガシコードのサービスでした
自分のドッグフードを食べること:私たちの職場でも同じ用語が使われています(私がそれを紹介したからといって当然です)。私のコードは "TODO"と言うコメントにこだわっていて、最終的にやるべきことを示していますが、 "DOGFOOD"と言うコメント(両方のキーワードは常にコメントの先頭にあります)このプログラムは内部でも使用することができます前に。 "dogfood"という単語が引用符で囲まれた文字列に表示されることは決してないため、検索には便利です。大文字と小文字が区別されない場合でも、 "dog-food"などと言うことができます。正しい結果を出してください。
アキュムレータをゼロにすることに関して:私はIntel 80x86をプログラムするときに全く同じことをしました(私は8086で始めて、そしてそこから現代のPentiumに移動しました)。自分自身でレジスタを排他的論理和することは、それをクリアするための最も迅速で最もきつい方法です。 "MOV AX、0"を使用すると3バイト(オペコードと2バイトのリテラル16ビットゼロ)が必要ですが、 "XOR AX、AX"は2バイトのみです。 "MOV EAX、0"には5バイト(32バイトのゼロの4バイト)が必要な386以上の拡張レジスタでは、さらに顕著になります。私のC/C++コンパイラは常にこの方法でレジスタをゼロにするので、それがまだ最善の方法であると思います(ただし、古くはオペコードのタイミングテーブル、そしておそらくXOR reg、regおよびMOV reg) 、1クロックかかる).
私はちょうどこれをいくつかのレガシーコードで見つけました..
'CANNOT JUST QUIT!
私はAccessでデータベースを作成していましたが、非常に単純なことです。少なくとも開始時にデータベースを作成するか、またはDelphiで作成したはずです。顧客はデータベースから顧客情報を取り出すことができることを望みましたが、顧客を確実に識別するのに十分な情報を入力しませんでした。私は彼らに、各顧客(彼らが働いたやり方ではなく全員のためではない)が異なる番号を持つことになるので、キーとして電話番号を使うように言いました。彼らからいくつかの必死の電話の後、(私たちは顧客を入力することはできませんそれは機能していない)私は彼らが彼らの古いシステムから電話番号を調べるには遅すぎた"該当なし"。それらを整理しようとすると、私はコード内のたくさんのループをチェックすることになり、1つの結果の横にコメントを残しました。 」
彼らはまた私に一度「間違った住所を入れてもどうやって正しい顧客を見つけることができるのか」と尋ねました。そしてピーナッツのためのすべて。
// now swap like a <explicative removed>
(A bunch of code that's really weird looking) //Kludge.
// long live COM'n'Roll
public enum StatusCode
{
//success codes
S_OK = 1,
S_NONE = 2,
S_SQL_OPERATIONS_LISTS_EMPTY = 3,
//error codes
E_NO_MATCHING_END_FOUND = -1,
E_SEQUENCE_NUMBER_NOT_FOUND_AT_BEGINNING = -2,
E_SEQUENCE_NUMBER_NOT_FOUND_AT_END = -3,
E_FORWARD_AND_BACKWARD_OPS_COUNT_DO_NOT_MATCH = -4,
E_FORWARD_AND_BACKWARD_IDS_DO_NOT_MATCH = -5,
E_IDS_DO_NOT_MATCH = -6
}
// Hack-er-AMA
これは古いIOCCCの入賞作品からのものです。私は勝者のアーカイブ全体をダウンロードする必要がありました。
構文的には、これはおそらくコメントではありません。それともそうかもしれません。私はそれを考え出していません。コメントの区切り文字は絶対にありませんが、Stringの区切り文字もありません。
C="Lint says "argument Manual isn't used." What's that
mean?";
Lintからの出力を推測するための価格はありません。
そして好奇心が強い人のために、そのエントリは ここ です。
私が見たいくつかの古いFortranコード:
integer *4 one,two,three;
c asssign one to 100 before entering the loop
one=100;
// Oh crap, i think i'm gonna yack
その後まもなく:
// TODO: end this lunacy