你遇到过的源代码中最好的注释是什么?
当前回答
用VB写的很好。我今天早上跑进了NET,得到了一个笑声…
''' <summary>
''' Represents an exception that was logged. Since System.Exception implements IDictionary, it can't be
''' serialized, so I had to write this. Pretty fucking stupid thing to have to do, System.Exception should
''' be serializable right out of the box, IMHO.
''' </summary>
''' <remarks></remarks>
Public Class LogException
其他回答
// this comment included for the benefit of anyone grepping for swearwords: shit.
下面是我在不同时间放入代码中的一些代码。有些不是严格意义上的评论,但它们是相同的概念。
在一个跨平台项目中,只需要在一个平台上执行一些特殊代码:
//If defined, will include all the Windows-specific code.
#define LOSE
#ifdef LOSE
#include <windows.h> //WIN32. Duh.
#endif
---------------------------------------------------
//Stolen from other_project_name.cpp
---------------------------------------------------
/*
* These comments have been lifted from propagate() and, though they no longer apply to the code, they may still be of value somewhere. Original tabbing and structural elements have been preserved.
*/
//CAUTION: This has a major Bobby Tables risk. Even if a rulebuilder is used, there's still the risk of something getting corrupted in the database itself.
//Reading text from anywhere and simply slotting it into an SQL statement is a major security risk. (With thanks to xkcd for the name "Bobby Tables".)
//Requirement: Eliminate one Bobby Tables by changing [redacted] to be not just straight SQL.
[lots more comments that are not as funny]
/*
* End of lifted comments. There should not be any executable code between these markers.
*/
---------------------------------------------------
/*
Okay. It's unrecognized. Why is this a fatal error? It's actually very closely akin to the miswart of botched #includes being a fatal. When writing a C/C++
program, you need your headers, and if you don't have one, chances are there'll be a million cascaded errors; so by making "unable to open asdf.h" a fatal,
the compiler suppresses all those errors about undefined symbols and potentially misspelled type names.
*/
---------------------------------------------------
//If someone tries to import 'id' as a field name, it won't work. (We already have our own id.) But I think the probability is so low that I can afford to be funny.
if (!stricmp(ptr,"id")) {warn(0,"Import","","'id' is a reserved word and cannot be used as a column name. (Try 'ego' or 'superego'.)"); return;}
---------------------------------------------------
//Need a place to squirrel away SQL statements somewhere
char *uts[1024]; //Unified Temporary Storage. (Why? Because I said so.)
int nuts=0; //What is it that squirrels keep? Ha!
int utsid[sizeof uts/sizeof *uts];
---------------------------------------------------
/**************************************\
* NOTE: This sets tilde.action. If a *
* tilde header does not exist in the *
* import file (not the _content_, if *
* the entire column isn't there), it *
* will duplicate down through all of *
* the rows. This is fine for ~id, as *
* that will never be changed; and if *
* ~Quantity is blank, that throws an *
* error in 'Add'. With ~Action, I am *
* not so certain. I THINK it'd be OK *
* to dup-down most of the time... if *
* the user only ever imports Adds or *
* Revises, but never both at once in *
* a single import. So for safety, to *
* allow a blank ~Action to revise OR *
* add, I'm breaking the check out to *
* a new variable - the curaction. In *
* most cases, it won't be needed, so *
* it's a waste; but it isn't like it *
* has to copy the entire tilde.*, so *
* it's only a small waste. So it can *
* waste a register... big deal. OK ! *
\**************************************/
---------------------------------------------------
//if (!response) // we're going to crash
//if (!items) // we're going to crash
//TODO: Don't crash
---------------------------------------------------
我的很多评论都隐晦地提到了电影或音乐剧,但如果你不了解这部剧,它们就不会那么有趣了。
我只是在我自己的代码中遇到了这个问题。它在一个用于类别选择的洋红色管理模板中:
/*
* OK; before you read the following code know what I am trying to do.
* I needed to get the list of child catagories from the root node so that
* the root node didn't appear in the selection box. But for some stupid
* fucking reason the stupid fucking DBA wont let me access the items using
* indicies and I instead have to use their stupid fucking Iterator
* implementation. So there.
*/
$firstList = $this->getRootNode()->getChildren();
foreach ($firstList as $node)
{
$nodes = $node->getChildren();
break; // wtf?
}
我要把语言从我们的旗舰产品中移除;但我记得我非常沮丧。如果我没有留下评论,我会试着修改它,但会遇到和以前一样的问题。
try {
}
catch (SQLException ex) {
// Basically, without saying too much, you're screwed. Royally and totally.
}
catch(Exception ex)
{
//If you thought you were screwed before, boy have I news for you!!!
}
我在查看TVNZ网站早期迭代的HTML源代码时发现了这个宝藏(如果你在家玩的话,从571行开始):
<!-- Hopfully we can do this otherwise the nav is going to be pretty plain and Hong will go postal. -->
推荐文章
- 在VS Code中禁用“Comments are not allowed In JSON”错误
- Swift:理解// MARK
- 在构建中编写注释的语法是什么?gradle文件?
- Java注释中的/**和/*
- 有没有办法注释掉.ASPX页面中的标记?
- Jenkins:注释可以添加到Jenkins文件中吗?
- TypeScript注释的语法记录在哪里?
- CSV文件可以有注释吗?
- 什么是自文档化代码?它能取代文档化良好的代码吗?
- 在erb中添加注释的最佳方法
- 为什么Python没有多行注释?
- 我应该在批处理文件中使用哪种注释风格?
- 如何在Office VBA编辑器中注释和取消注释代码块
- “# noqa”在Python注释中是什么意思?
- 我可以向pip需求文件添加注释吗?