Chinaunix首页 | 论坛 | 博客
  • 博客访问: 363254
  • 博文数量: 112
  • 博客积分: 5245
  • 博客等级: 大校
  • 技术积分: 1120
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-07 09:20
个人简介

静下来,定好方向,好好干。

文章分类
文章存档

2017年(1)

2012年(1)

2011年(5)

2010年(6)

2009年(16)

2008年(59)

2007年(24)

我的朋友

分类: C/C++

2008-06-05 19:27:16

为什么要有注释
 
企业级软件生命周期的80%用于维护,对代码的可读性和可维护性要求非常高,性能反而被放到其次;我们在编写程序的时候必须重视代码质量。
 
软件开发是一种高级脑力劳动,精妙的算法之后往往伴随着难以理解的代码,对于不经常维护的代码,往往连开发者本人也忘记编写的初衷。
 
SScompany的软件开发基于螺旋式软件开发模型,我们的Test系统在开发过程中不断因为不同客户的不同需求而做出相应的调整,不同项目组间同一功能模块的代码差异较大,即使同一项目组在不同时间段的代码也有可能完全不同,因此在开发更改过程中,需要编写注释来记录我们所做的每一件事情,以便以后的维护者可以更容易的了解代码编写的原因,过程。
 
诗言志,代码看人。要知道一个程序员的职业素养不用看薪金、资历、职位,只要去看他的代码便可知道,优雅的代码风格背后是高超技巧与丰富阅历的结合。好的代码使人钦佩,坏的代码使人鄙视;好的代码使人仰慕,坏的代码使人厌恶。出于经验和阅历的欠缺,我们可能无法写出大师级的优雅代码,但我们可以像大师们一样对代码详细注释。
 
注释概述
对大道的追求是人类不灭的理想,任何理论最终都是在解释这样的问题:我是谁?我从哪里来?我要到哪里去? 同样,编写注释的目的有三: 描述程序的目的、解释程序的功能、提示程序的细节。
 
描述程序目的的部分要做到“详”、“尽”即又多又全,因为代码阅读者大部分时间是用来理解这段程序是怎么来地,(然后再了解这段程序是怎么没地)。根本目的在于告诉阅读者为什么会有着段程序这部分注释通常放在文件开头。
 
解释程序功能的部分要做到“精”、“准”即没有废话,一眼就能知道程序是做什么的,代码阅读者根据这些注释知道应该对程序作什么样的调整。这部分注释通常用来放在方法开头。
 
提示程序细节的部分需要编写者随机应变灵活控制,根据程序细节的不同或多或少或细或粗。其最终目的是让阅读者知道为什么程序要写成这样,这部分注释可能出现在代码的任何位置。
 
以下是一些通用注释规则:
 
1、除非必要,不允许修改任何描述性注释;除非确实对方法做出过修改,不允许修改任何解释性注释;根据实际修改情况修改提示性注释。
 
2、如果在其他项目组发现他们的注释规范与这份文档不同,按照他们的规范写代码,不要试图在既成的规范系统中引入新的规范。
 
3、描述性注释先于代码创建,解释性注释在开发过程中创建,提示性注释在代码完成之后创建。
 
4、除HTML和不重要的Javascript外任何对文件(类)的注释必须加上SScompany版权所有标志,此举对我们Test系统的版权非常重要。
/**
*Copyright(c)2007SScompany Co.Ltd.
*Allrightreserved.
*/
5、每行注释(连同代码)不要超过120个字(1024×768),最好不要超过80字(800×600) 。
 
6、任何注释必须遵循中文语法(英文注释必须遵循英文语法),不能有错别字,正确使用标点符号。
 
7、当一段代码被更改,相应的注释也应改被更改。
 
下面将说明java,JSP,javascript的注释应如何编写
 
Java 程序注释编写
Java 编程语言有三种注释:
/**
*java风格的注释,可以生成javadoc
*
*/
 
/*
* C风格的注释
*/
 
// C++风格的注释
 
对于java风格和c风格的注释都必须保证‘*’对齐,注释写在‘*’加一个空格符之后。
C++风格的注释通常用于提示性注释,注释写在第二个‘/’加一个空格符之后。
关于JavaDoc的部分略去不表,我们直接谈谈我们SScompany的程序注释。
 
版权信息
放在包信息之前:
/**
*Copyright(c)2002SScompany Co.Ltd.
*Allrightreserved.
*/
 
类信息
放在类名之前:
/**
*

Title:描述这个类属于哪一系统哪一模块


*

Description: 描述该类实现了什么功能,尽可能详尽


*

Copyright:Copyright(c)2007


*

Company:SScompany


你的大名
目前项目的版本号,默认为1.0
*/
类信息的@version 信息由项目组决定,不过很少有项目组更改version信息。
方法信息
放在方法之前:
/**
*对方法功能的描述
参数1
参数2
返回类型
这个方法所抛出的异常
*/
 
代码块信息
放在需要注释的代码块之前:
/* 对代码块功能性的描述
 
阅读(745) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~