还在写代码注释么?你Out了
如果把开发过程比作开车,那么代码的注释就相当于路边的指示牌。注释是辅助的信息,并不影响程序的最终执行结果。
一个好的代码注释会减少开发周期,比如帮助下一个接手的开发人员快速熟悉代码。
不好的代码注释则反过来影响了开发过程,因为可能会误人子弟,指错路。
所以,注释并不总是好事。
曾经有一个实验,就是随机抽取一个软件程序,在里面设置一些BUG,然后让一些小组去查找这些BUG,有趣的是50%的小组都会彻底删除软件中的注释。结果是,不使用注释的小组在更短的时间内发现了更多的BUG。
我们在代码中会碰到各种各样的注释。一些注释仅仅是开发人员即兴之作,一些表名了他们有多聪明!一些仅仅是一个玩笑。
例如:
//当我写这些的时候,只有上帝和我能懂
//现在,仅仅上帝能懂了
//我来为下列代码负责...
//是他们强迫我写的,我不是自愿的
//我要找一个更好的工作
try {
...
}catch(SQLException ex) {
//不用多说了,你很拧巴吧
}catch(Exception ex2) {
//如果你想你已经拧巴过,那么恭喜你,这次更加新鲜
}
写文档性的代码而不是注释!
写文档型的代码要求你定义变量、类、枚举类型等的名字的时候会考虑别人能否看懂,文档型的代码会让其他程序员很好理解。好的文档型的代码和注释的效果是一样的,而且这减少了开发时间(不用花时间维护不知所云的注释了)。
实际上,是不是文档型的代码并不是你说了算,而是别人评价的。
另外,代码的注释即使写的很好,也会很快过期,因为软件的需求变化很快,你很难保证注释一直都是最新的,但是代码肯定是最新的。
解决方法
如果你没有足够的时间维护代码的注释,那么请不要写注释。这样你会更加有效率,你不会浪费时间写没有意义的注释。
写文档型的代码会帮你和你的下任理清思路,那些认为自己没有时间写文档型的代码的认识是绝对错误的。
当你发现一些注释看不懂或者有误的时候,请直接删除。
分享到:
相关推荐
"DBN代码注释" 深度学习(Deep Learning)是一种机器学习方法,近年来获得了非常广泛的应用。DBN(Deep Belief Network,深度信念网络)是深度学习中的一种重要模型。下面将详细解释DBN代码的注释。 DBN类的定义 ...
将待清理的 C++源代码 存为纯文本形式“test.txt”,将文本文件copy到CommentCleaner.exe同一个文件夹内,运行 CommentCleaner.exe程序将会在本目录下生成一个“testout.txt”文件,也就是没有注释的源代码。...
代码注释中会详细解释每个关键部分的作用,比如`model.py`中定义的模型结构,`utils.py`中的各种实用函数,包括IOU计算、数据加载、模型保存和加载等。`train.py`文件包含了训练脚本,其中包含了训练过程的完整逻辑...
给定 C/C++ 源程序的源代码,要求去掉所有的注释代码并输出去除注释后的代码。已知 C/C++ 代码的注释有两种:单行注释和多行注释,前者稳以...输出到当前目录下的 output.out 文件,其内容为去除注释的 C/C++ 源代码。
一个包含详细注释的扫描器C源代码 #include <stdio.h> #include <winsock2.h> #include <time.h> #define iPort 80//目标Web Server端口 .#define szSign "500 13\r\nServer: Microsoft-IIS/5.0"//根据此标志来...
文档"DBN代码注释.doc"涉及到的主要知识点是深度信念网络(Deep Belief Network, DBN)的实现,这是一种用于无监督学习和特征学习的神经网络架构。以下是对代码的详细解析: 首先,DBN是一个Java类,包含了多个成员...
Xilinx的去隔行代码和注释 module deint_v2mult_4L ( rst, // resets input data register and control clk, // video component rate clock, 27Mhz for SDTV Fi, // Low to High signals start of Field One ...
在Java编程领域,有时我们需要了解一个项目或代码库的代码质量,这通常涉及到对代码行数的统计。本文将深入探讨如何实现一个Java代码统计工具,该工具可以计算正常代码行数、空白行数、注释行数以及总行数,并能以...
1.版本:matlab2022A,包含仿真操作录像和代码注释,操作录像使用windows media player播放。 2.领域:PID最优参数计算 3.内容:基于PSO粒子群优化的PID控制器最优参数kp,ki,kd计算。仿真输出PSO优化曲线,kp,...
实时时钟操作实时时钟,英文全称为Real_Time Clock,简称RTC,是一种计时器,能对年、月、日、时、分、秒进行准确的计时。我们的开发板上安装了一款由美国...//--0//read,1//写reg StartFlag;//--开始信号reg [7:0] Cmd
本教程将详细介绍如何使用Timer进行累计计时,并提供带有代码注释的示例。 一、Timer的基本概念 Timer是编程语言中的一个类或接口,它能够按照设定的时间间隔触发事件。在不同的编程语言中,Timer的实现方式可能会...
Swift是一种强大的、面向对象的编程语言,由Apple开发并用于构建iOS、macOS、watchOS以及tvOS的应用程序。...在编写涉及In-Out参数的函数时,务必清晰地注释其作用和使用方法,以帮助其他开发者理解和使用你的代码。
在描述中提到的“使用方法在文件的注释里”,意味着源代码包含了如何运行和使用这个程序的说明。这些注释可能包括如何提供输入数据,如何调用程序生成CSV,以及任何特定的命令行参数或配置选项。 此外,标签中提到...
- **清晰的文档注释**:为使用`ref`和`out`的方法添加清晰的文档注释,帮助其他开发者理解方法的行为和预期。 综上所述,`ref`和`out`关键字在C#中的使用提供了灵活的方式来处理参数传递,特别是在需要直接操作外部...
通过阅读和理解这个注释版的代码,开发者不仅可以学习如何使用WaveOut接口进行音频播放,还可以了解如何结合网络编程实现音频流的接收和播放,这对于开发音频应用或者游戏中的音频系统非常有帮助。同时,注释也会...
以提供的文件`boot2.asm`为例,这可能是一个引导扇区的代码,它可能包含直接写屏的代码,用于在计算机启动时显示信息。在x86架构下,我们可能会用到像`MOV`指令来设置内存中的字符,`OUT`指令来发送数据到显存或者...
在这个入门实例中,我们将详细解析服务器端和客户端的Java代码,了解如何使用Socket进行通信。 首先,我们看服务器端的代码: ```java public class Server { public static int port = 8989; public static ...
5. 在右侧的列表中找到“CommentOut”宏,这正是用于注释代码的宏。 6. 将“CommentOut”宏拖曳到工具栏上,这样你就可以通过点击此按钮来执行注释操作了。 第二种方法是设定注释快捷键,这对于习惯使用键盘的...
注释在程序开发中扮演着重要角色,它不仅可以帮助其他开发者理解代码的逻辑,还有助于未来对代码的维护和升级。有效的注释应当: 1. **行注释**:用于简短地说明单行代码的作用。 2. **块注释**:适用于对较大段落...
这使您可以在开发树中添加代码,然后在作为压缩包发布之前将其注释掉。 动机 我使用安装在有趣地方的perlbrew和/或perls,我希望能够通过git checkout树运行可执行文件,而无需在每次调用时都调用perl -Ilib 。 ...