`

13个代码注释的小技巧

    博客分类:
  • java
阅读更多
这篇文章是由José M. Aguilar在他卓越的博客中以西班牙语的形式首发,其后Timm Martin在获得Aguilar先生的授权下,对该文章进行翻译、修改,并且在DevTopics上发布。

以下13个小技巧可以使得你的代码在长时间内依然能够保持容易理解和维护。

1. 对不同级别的代码进行注释

对于不同级别的代码块,要使用统一的方法来进行注释。例如:

对于每一个类,需要包含一段简明扼要的描述,作者和上一次修改的时间
对于每一个方法,需要包含这个方法的用途,功能,参数以及返回结果
当你在一个团队里面的时候,采用一套注释的标准是非常重要的。当然,使用一种大家都认可的注释约定和工具(例如C#的XML注释和Java的Javadoc)在一定程度上能推动这项任务。

2. 使用段落注释

首先把代码块分解成多个“段落”,每一个段落都执行单一的任务;然后在每一个“段落”开始之前添加注释,告诉阅读代码的人接下来的这段代码是干什么用的

// 检查所有记录都是正确的
foreach (Record record in records)
{
     if (rec.checkStatus()==Status.OK)
     {
         . . .
     }
}
// 现在开始进行处理
Context ctx = new ApplicationContext();
ctx.BeginTransaction();
. . .
3. 对齐注释行

对于那些在行末写有注释的代码,应该对齐注释行来使得方便阅读

const MAX_ITEMS = 10; // maximum number of packets
const MASK = 0x1F;    // mask bit TCP

有些开发人员使用tab来对齐注释,而另外一些人会用空格来对齐。由于tab在不同的编辑器和集成开发环境中会有所不同,所以最佳的方法是使用空格来对齐注释行。

4. 不要侮辱阅读者的智慧

要避免没用的注释,例如

if (a == 5)        //如果a等于5
counter = 0    //把counte设为0

这不单把时间浪费在写没用的注释上面,同时也在分散读者的注意力。

5. 要有礼貌

应当避免没有礼貌的注释,例如“要注意一些愚蠢的用户会输入一个负数”,或者“修正由菜鸟工程师写的愚蠢得可怜的代码而导致的副作用”。这样的注释对于代码的写注释的人来说并没有任何好处,同时你永远都不会知道将来这些注释会被谁来阅读,你的老板,一个客户或者是刚才被你数落的愚蠢得可怜的工程师。

6. 直截了当

不要在注释里面写过多的废话。避免在注释里面卖弄ASCII艺术,写笑话,作诗和过于冗长。简而言之就是保持注释的简单和直接。

7. 使用统一的风格

有些人觉得注释应该让非程序员也能看懂。另外一些人觉得注释需要面对的读者只是程序员。无论如何,正如Successful Strategies for Commenting Code中所说的,最重要的是注释的风格需要统一,并且总是面向相同的读者。就自己而论,我怀疑非程序员是否会去读代码,所以我觉得注释应该面向程序员来写。

8. 在内部使用特殊的标签

当你在一个团队里工作的时候,采用一组一致的标签能帮助不同的程序员沟通。例如,很多团队会采用“TODO”标签来表示一段尚未完成的代码

int Estimate(int x, int y)
{
     // TODO: implement the calculations
     return 0;
}

标签注释并不会解释代码,它们寻求注意或者是传递信息。但是如果适当地使用这种技术,要记住跟进这段代码并且完成该标签传递的任务。

9. 在写代码的同时添加注释

当你在写代码而且记忆犹新的同时就添加注释。如果等到项目后期才添加注释,会让你事倍功半。“我没有时间写注释”,“我的时间很紧迫”和“项目已经延迟了”,这些都是不写注释的常见借口。有些工程师觉最佳的解决方法是“注释先行”。例如:

public void ProcessOrder()
{
    // Make sure the products are available
    // Check that the customer is valid
    // Send the order to the store
    // Generate bill
}

10. 把自己想象为注释的读者(事实上就是如此)

当你正在给代码写注释的时候,不仅仅为日后维护你的代码的开发者考虑,同时也设想一下如果自己就是注释的读者。Phil Haack曾经说过:

“一旦一行代码被敲到文件中, 你就已经要开始维护那一行代码了。”

所以,我们自己就是好(或者坏)注释的第一个受益者(或者受害者)。

11. 更新代码的时候要更新注释

如果注释没有随着代码的修改而更新,那么这些注释将是毫无意义的。代码和注释需要同步,否则注释只会让维护代码的开发者更加痛苦。需要特别注意的是,一些重构的工具会自动更新代码,但是却没有自动更新注释,那么注释就自然而然地过期作废了。

12. 良好可读性代码是注释的金科玉律

对于很多开发者来说,一个基本的原则就是:让代码自己描述自己。虽然有人怀疑这是由不喜欢写注释的程序员所倡导的一场运动,但是无需解释的代码有很大的好处,这些代码更加容易理解甚至让注释变得没有必要。例如,在我的文章Fluid Interfaces中就给大家展示了什么是清晰的无需解释的代码。

Calculator calc = new Calculator();
calc.Set(0);
calc.Add(10);
calc.Multiply(2);
calc.Subtract(4);
Console.WriteLine( “Result: {0}”, calc.Get() );

在这个例子里面,注释就像是违反了第4条技巧那样,变得毫无必要。要写出可读性好的代码,你需要使用适当的命名方式(在经典的Ottinger’s Rules中有阐述),保证恰当的缩进,并且采用编码风格指导。如果代码不遵守这条技巧,那么注释看起来就好像是为自己不好的代码的写道歉信一样。

13. 跟你的同事分享这些技巧

虽然从第10条技巧中我们已经知道了自己就是好注释的得益者,但是这些技巧对于所有的开发者来说都是很有帮助的,尤其是整个团队都有相同共识的情况下。因此,大方地跟你的同事去分享这些技巧,让我们写出更加容易理解和维护的代码。

转自:http://jythoner.iteye.com/blog/358069
分享到:
评论

相关推荐

    网页代码常用小技巧

    "网页代码常用小技巧"这个主题涵盖了一系列能够提升HTML编写效率和优化网页效果的方法。 1. **元信息与头部元素**: HTML文档的部分常常被用来放置元信息,如字符编码、页面标题、样式表链接、JavaScript文件引用...

    matlab快速注释及一些使用技巧

    这两个符号可以将一段代码注释掉,非常方便。 4. 中断操作 如果程序进入死循环或计算时间太长,可以使用ctrl+c 中断操作。这时,matlab 可能会响应迟缓。 5. figure 命令 figure 命令可以新建一个绘图窗口,绘图...

    SharpHsql 源代码中文注释版

    通过研究这个中文注释版的源代码,开发者不仅可以深入理解数据库系统的工作原理,还能提升自己的编程技巧,特别是在数据库设计和性能优化方面。对于想要从事数据库开发或希望对数据库有更深入理解的程序员来说,这是...

    PSO粒子群算法万能matlab代码注释详细

    在"013d42f8f35d4fb09fbdc1fc7eaac256"这个文件中,很可能是包含了完整的MATLAB代码实现,包括详细的注释。注释会解释每一步操作的意义,帮助理解代码逻辑。通过阅读和学习这份代码,可以深入了解PSO算法的实现细节...

    Gitee 七周年码力传递,代码段/代码故事/代码注释/代码运行结果等等

    Gitee作为一个知名的开源代码托管平台,在其七周年之际,发起了“码力传递”活动,鼓励开发者分享自己的代码段、代码故事、代码注释以及代码运行结果,旨在促进技术交流与学习。在这个活动中,我们可以看到各种编程...

    vb10个小技巧

    根据提供的文件信息,我们可以总结出以下10个Visual Basic(简称VB)的小技巧,这些技巧非常适合初学者掌握和应用。 ### 1. 图片移动小技巧 在VB中,可以通过编写简单的子程序来实现控件(如图片框)的位置移动。...

    vb使用的10个小技巧

    ### VB使用的10个小技巧详解 #### 1. 如果一行程序太长,能否换行? 在Visual Basic(简称VB)编程环境中,如果遇到一行代码过长的情况,可以通过在需要换行的位置后面添加下划线“_”的方式进行换行。这种方法...

    avr16lcd详细代码注释和仿真

    【标题】"avr16lcd详细代码注释和仿真"主要涵盖了基于Atmel AVR系列微控制器,特别是ATmega16的LCD(液晶显示器)控制技术。这个项目或教程旨在教授如何使用C语言编写代码,对LCD进行编程,并通过仿真器进行验证。 ...

    提升java代码简洁度的几个小技巧

    以下是一些提升Java代码简洁度的小技巧: 1. 使用有意义的变量名:变量名应清晰地反映其用途,避免使用过于简写或模糊不清的名称。例如,`int count = list.size();` 比 `int i = l.s();` 更易于理解。 2. 避免...

    官方yoloV5开源代码注释,基本每个文件夹和模块都有注释,非常详细 自己写的注释,供学习参考使用 深度学习入门代码解读注释

    本文将深入探讨YOLOv5的开源代码注释,以及如何通过这些注释进行深度学习的学习与实践。 首先,YOLOv5的源码结构清晰,注释详尽,这对于初学者理解和调试代码大有裨益。每个文件夹和模块的注释可以帮助我们了解代码...

    yolov5-6.1版本的中文代码注释,注释写的很全,有需要的可以下载使用

    代码注释中会详细解释每个关键部分的作用,比如`model.py`中定义的模型结构,`utils.py`中的各种实用函数,包括IOU计算、数据加载、模型保存和加载等。`train.py`文件包含了训练脚本,其中包含了训练过程的完整逻辑...

    44个实用VB小技巧的打包

    标题 "44个实用VB小技巧的打包" 涵盖了Visual Basic(VB)编程中的各种实用技巧,这些技巧可以提升开发效率,优化代码,解决常见问题。VB是Microsoft开发的一种面向对象的编程语言,广泛应用于桌面应用、网页开发等...

    Java实际开发中的小技巧汇总

    在Java实际开发中,开发者经常会遇到各种挑战,需要掌握一些实用的小技巧来提高代码质量、提升效率。以下是一些从博客文章"Java实际开发中的小技巧汇总"中可能涵盖的知识点,结合“源码”和“工具”的标签,我们可以...

    俄罗斯方块c#,代码注释清晰,功能精巧

    此外,代码注释的清晰度对于初学者来说至关重要。良好的注释可以帮助理解和学习代码的设计思路和具体实现。在"俄罗斯方块c#"项目中,注释应该解释了各个类和方法的作用,以及重要的逻辑步骤。 总的来说,通过这个...

    程序员使用小技巧

    以上这些小技巧都是程序员在日常工作中经常用到的,它们可以帮助提升编程效率,优化代码质量,同时也有助于团队协作和项目管理。不断学习和实践这些技巧,能够使你成为一个更优秀的软件工程师。

    一个未使用框架的学生信息管理系统 项目概述全面,代码注释详细,逻辑结构清晰.zip

    《一个未使用框架的学生信息管理系统——项目概述全面,代码注释详细,逻辑结构清晰》 在信息技术领域,信息管理系统的设计与开发是一项基础且重要的任务。本项目“学生信息管理系统”是一个不依赖任何特定框架的纯...

    注释PHP和html混合代码的小技巧(分享)

    在PHP和HTML混合编程时,有时我们需要对代码段进行注释,以便于调试或增加代码可读性。这里介绍一种巧妙的方法,利用PHP的条件语句来实现对PHP与HTML混合...希望这个小技巧能对你在编写PHP和HTML混合代码时有所帮助!

    JAVA小游戏有注释可供参考

    9. **调试技巧**:使用debugger来定位和修复代码中的问题,理解断点、单步执行、查看变量值等功能。 10. **版本控制**:如使用Git进行版本管理和协作,了解分支、合并、提交等基本操作。 通过分析这个项目,开发者...

    VB6.0初学者的十个编程小技巧

    以下是我根据标题和描述整理出的十个VB6.0编程小技巧,每个技巧都会进行详细说明。 1. **代码注释**:在编程过程中,注释是必不可少的。使用'开头的单行注释或REM( Remark)关键字来解释代码功能,有助于后期维护...

Global site tag (gtag.js) - Google Analytics