服务器 频道

PHP编码规范(下)

  【IT168 服务器学院】5. 书写注释

  5.1. 讲一个故事

  把你的注释当作描述系统的一个故事。并且使得你的注释能被机器解析后,以固定的格式放到手册中去。类的注释是故事的一部分,方法的名称、方法的注释、方法的实现也是故事一部分。所有的这些部分编织在一起,使得人们在以后的时间里能够准确的知道你干了什么,为什么这么做。

  5.2. 归档注释

  注释的要归档才有意义,否则,假如在一个地方放一条注释描述你做了什么选择和你为什么这么做,只有考古学家才能发现这是最有用的信息。(如何归档另行规范)

  5.3. 注释结构

  工程的每部分都有特定的注释结构。 程序中的注释,这里给出示例作为规范,注释中以 * @ 为关键字的开始,以:为注释关键字结尾。

  5.3.1. 预定义关键字

  关键字 含义
  Purpose 表示类、属**、方法要做些什么或者什么含义。
  Package Name 类名
  Author 作者
  Modifications 修改记录(编号规则为“No”+日期+“-”+序号)
  See 参考
  Method Name 方法名
  Parameter 参数名(包括类型)
  Return 返回值(包括类型)
  Attribute/Variable Name 属**/变量名
  Type 属**/变量类型

  5.3.2. 类的注释

  /**
  * @ Purpose:
  * 访问数据库的类,以ODBC作为通用访问接口
  * @Package Name: Database
  * @Author: Forrest Gump gump@crtvu.edu.cn
  * @Modifications:
  * No20020523-100:
  * odbc_fetch_into()参数位置第二和第三个位置调换
  * John Johnson John@crtvu.edu.cn
  * @See: (参照)
  */
  class Database
  {
  ……
  }

  5.3.3. 方法注释

  /**
  * @Purpose:
  * 执行一次查询
  * @Method Name: Query()
  * @Parameter: string $queryStr SQL查询字符串
  * @Return: mixed 查询返回值(结果集对象)
  */
  function($queryStr){……}

  5.3.4. 属**或变量注释

  /**
  * @Purpose:
  * 数据库连接用户名
  * @Attribute/Variable Name: mDbUserName
  * @Type: string
  */
  var mDbUserName;

  5.3.5. if (0)来注释外部代码块

  有时需要注释大段的测试代码,最简单的方法就是使用if (0)块:
  function example()
  {
  great looking code

  if (0) {
  lots of code
  }

  more code
  }
  你不能使用/**/,因为注释内部不能包含注释,而大段的程序中可以包含注释。

  5.3.6. 目录文档

  所有的目录下都需要具有README文档,其中包括:
  · 该目录的功能及其包含内容
  · 一个对每一文件的在线说明(带有link),每一个说明通常还应该提取文件标头的一些属**名字。
  · 包括设置、使用说明
  · 指导人们如何连接相关资源:
  o 源文件索引
  o 在线文档
  o 纸文档
  o 设计文档
  · 其他对读者有帮助的东西
  考虑一下,当每个原有的工程人员走了,在6个月之内来的一个新人,那个孤独受惊吓的探险者通过整个工程的源代码目录树,阅读说明文件,源文件的标头说明等等做为地图,他应该有能力穿越整个工程。
  

0
相关文章