13个代码注释的小技巧(2)
作者:maguschen 来源:译言 发布时间:2009-01-05 11:57:00
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条技巧中我们已经知道了自己就是好注释的得益者,但是这些技巧对于所有的开发者来说都是很有帮助的,尤其是整个团队都有相同共识的情况下。因此,大方地跟你的同事去分享这些技巧,让我们写出更加容易理解和维护的代码。


猜你喜欢
- 北京时间10月29日消息,据国外媒体报道,谷歌旗下视频共享网站YouTube周三表示,在上周日YouTube全程直播爱尔兰知名乐队U2的演唱
- 个人站长如何选择做站项目,说白了就是如何给自己的网站定位,确定自己的网站做什么主题,献给打算做站或者重新做站的站长以为他们选择做站主题提供个
- 网站的PR值并不见得是决定一个网站(及其被收录的网页)在搜索结果中排名的惟一因素,甚至不一定是主要因素,因此对于网站PR值的真正价值有不同的
- 有的时候IIS出现严重错误,比如metabase坏掉,又没有备份....一般的做法,直接在控制面板添加删除程序中卸载IIS重装。这样并不是保
- 11月27日消息,据国外媒体报道,中国互联网络信息中心(CNNIC)日前发布的最新报告显示,腾讯网游用户占了中国大型网络游戏用户总人数的44
- 系统服务篇三47. 服务名称: SysmonLog显示名称: Performance Logs and Alerts服务描述: 收
- 12月2日消息,淘宝网昨天与华数数字电视传媒集团签署战略合作协议,双方将在在电视淘宝购物、数字产品、手机淘宝、口碑网便民服务等业务领域开展全
- 23. 服务名称: helpsvc显示名称: Help and Support服务描述: 启用在此计算机上运行帮助和支持中心。如果停止服务,
- 大家都知道一般搜索引擎更新友情链接列表的时间是很长的,其实在搜索引擎内部更新友情链接是即时的,为了方便给站长分析外链的构建状态,其实利用Go
- 代理共享上网和控制 * 权限,界面友好,设置简单,功能强大。支持Modem代理/ADSL代理/宽带代理/Cable Modem代理等方式共
- 第 4 章 安装CentOS Linux1.基本安装把光盘塞进光驱,设置BIOS从光驱启动(别告诉我你不会),然后会看到启动界面,上面有一些
- 学习seo也有很长一段时间了,这段时间也操作了很多案例,进行过很多次的试验和测试,对于网站优化,自己也有很多的体会,现在和大家一起交流下自己
- 先说明一下,其实我只是个菜鸟,我做淘宝客也就是两个月的时间,在众多的高手中我只能算是入门罢了。只是前两天我的一个小小经验,我写出来和大家分享
- 在维护公司内部网站时碰到一个实际问题——MIS主管要求将一些技术文件放在网页上,且只能让MIS 的员工浏览。这就涉及到如何对网页保密的问题。
- 今天突然发现自己买了一年快过期了的搬瓦工,除了少数时间拿来当梯子用用其它也没用上,所以流量还剩这么多。。。所以就想试试把本地写的nodejs
- 2008年11月13日,中国互联网协会联合谷歌中国、新浪网、搜狐网、腾讯网、网易等国内知名网站,在京召开了主题为"搜索·未来&qu
- “百度更喜欢独特的原创内容,如果您的站点内容只是从各处采集复制而成,很可能不会被百度收录。”Goog
- 做站有2年的时间,做过的站加起来应该有200个了吧,每月收入1W左右。看过无数的软文,交换过无数的链接,遇到无数的站长兄弟,回想起来,非常的
- Exchange 2000 Server中的Recipient Policies是一项重要的功能,它制定了收件人的邮箱地址,其中包括:X.4
- linux停止正在执行脚本正在执行一个压力测试脚本bench.sh,但是想中途停止进程,不再执行了。可以用’ps -ef