如果您使用Doxygen之类的东西,您可以完整记录您的返回类型、参数等,并生成一个不错的“源代码手册”。我经常为客户这样做,以便继承我的代码的团队不会完全丢失(或被迫审查每个标题)。
文档块经常被过度使用,尤其是强类型语言。使用 Python 或 PHP 之类的东西比 C++ 或 Java 更冗长更有意义。也就是说,对于不能自我解释的方法和成员(例如,未命名的更新),这样做仍然很好。
如果我是第一次阅读我的代码,只需评论一下我想告诉自己的内容,我就节省了很多小时的思考时间。更多的叙述和更少的观察。评论不仅应该帮助别人,也应该帮助你自己……尤其是如果你五年没有碰过它的话。我有一些我写的十年前的 Perl,但我仍然不知道它有什么作用。
我在 PHP 和 Python 中做过的一件非常肮脏的事情是使用反射来检索用户界面中的注释块和标签元素。这是一个用例,虽然很讨厌。
如果使用错误跟踪器,我还会将错误 ID 放在我的更改附近,以便我有对跟踪器的引用。这是对更改的简要描述(内联更改日志)的补充。
当我在做我的同事很少看到的事情时……或者当微妙很重要时,我也违反了“只评论为什么不做什么”的规则。例如:
for (int i = 50; i--; ) cout << i; // looping from 49..0 in reverse
for (int i = 50; --i; ) cout << i; // looping from 49..1 in reverse