【代码规范】常见注释规范

2023-10-31

1.在有处理逻辑的代码中,源程序有效注释量必须在20%以上。

说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。

2.文件注释:文件注释写入文件头部。

说明:以/* 开始

示例:

/ *

* 文件名:[文件名]

* 作者:〈版权〉

* 描述:〈描述〉

* 修改人:〈修改人〉

* 修改时间:YYYY-MM-DD

 * 修改内容:〈修改内容〉
  */

说明:每次修改后在文件头部写明修改信息。

示例:

/ *

* 文件名:LogManager.java

* 版权:Copyright 2000-2001 Huawei Tech. Co. Ltd.  All Rights Reserved.

* 描述: WIN V200R002 WEBSMAP 通用日志系统

* 修改人:张三

* 修改时间:2001-02-16

* 修改内容:新增

* 修改人:李四

* 修改时间:2001-02-26

* 修改内容:。。。。。。

* 修改人:王五

* 修改时间:2001-03-25

* 修改内容:。。。。。。

 */

3.类和接口的注释:该注释放在class定义之前,using或package关键字之后。

示例:

package com. websmap.comm;

/**

 * 注释内容

 */
 public class CommManager

4.类和接口的注释内容:类的注释主要是一句话功能简述、功能详细描述

说明:可根据需要列出:版本号、生成日期、作者、内容、功能、与其它类的关系等。

格式:

/ *

 * 〈一句话功能简述〉

* 〈功能详细描述〉

* @author [作者]

* @version [版本号, YYYY-MM-DD]

* @see [相关类/方法]

* @since [产品/模块版本]

* @deprecated

*/

说明:描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。

示例:

/ *

* LogManager 类集中控制对日志读写的操作。

*全部为静态变量和静态方法,对外提供统一接口。分配对应日志类型的读写器,读取或写入符合条件的日志纪录。

* @author 张三,李四,王五

* @version 1.2, 2001-03-25

* @see LogIteraotor

* @see BasicLog

* @since CommonLog1.0

*/


5.类属性、公有和保护方法注释:写在类属性、公有和保护方法上面。用//来注释,需要对齐被注释代码。

示例:

/ /注释内容

private  String logType

6.成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地方。用//来注释,需要对齐被注释代码

7.公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。
格式:

/ **

*〈一句话功能简述〉

*〈功能详细描述〉

* @param [参数1] [参数1说明]

* @param [参数2] [参数2说明]

* @return [返回类型说明]

* @exception/throws [违例类型] [违例说明]

* @see [类、类#方法、类#成员]

 * @deprecated

*/

说明:@since 表示从那个版本开始就有这个方法;@exception或throws 列出可能出现的异常;@deprecated 表示不建议使用该方法。

8.对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。对于非RuntimeException ,即throws子句声明会抛出的异常,必须在方法的注释中标明。

说明:

异常注释用@exception或@throws表示,在JavaDoc中两者等价,但推荐用@exception标注Runtime 异常,@throws标注非Runtime 异常。异常的注释必须说明该异常的含义及什么条件下抛出该异常。

9.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。

10.注释的排版,按照上述示例来展示。

11.注释应该放在被注释的代码前面,分行展示,但中间不留空行。

12.对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。

说明:分支语句往往是程序实现某一特定功能的关键。

13.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。

14.注释的内容要清楚、明了,含义准确,防止注释二义性。说明:错误的注释不但无益反而有害。

15.避免在注释中使用缩写,特别是不常用缩写。说明:在使用缩写时或之前,应对缩写进行必要的说明。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【代码规范】常见注释规范 的相关文章

  • 为什么 matplotlib 底图没有绘制地图中某些区域的颜色?

    下面的代码应该为越南的所有州着色 import pandas as pd import matplotlib pyplot as plt from mpl toolkits basemap import Basemap fig ax plt
  • 检测骰子的上侧

    是否可以检测骰子的上面 虽然从顶部看这将是一项简单的任务 但从许多角度来看 可以看到多个侧面 Here is an example of a dice feel free to take your own pictures 您通常想知道自己
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • Pandas 在列级别连接数据帧时添加键

    根据 Pandas 0 19 2 文档 我可以提供keys参数来创建结果多索引 DataFrame 一个例子 来自 pandas 文档 是 result pd concat frames keys x y z 我将如何连接数据框以便我可以在
  • 无法使用 Python 循环分页 API 响应

    所以 我对这个感到摸不着头脑 使用 HubSpot 的 API 我需要获取我客户的 门户 帐户 中所有公司的列表 遗憾的是 标准 API 调用一次只能返回 100 家公司 当它返回响应时 它包含两个参数 使分页响应成为可能 其中之一是 ha
  • 如何计算查询集中每个项目的两个字段的总和

    假设我有以下模型结构 class SomeModel Model base price DecimalField commision DecimalField 我不想存储total price在我的数据库中为了数据一致性并希望将其计算为ba
  • 从 Spark 数据帧中过滤大量 ID

    我有一个大型数据框 其格式类似于 ID Cat date 12 A 201602 14 B 201601 19 A 201608 12 F 201605 11 G 201603 我需要根据大约 500 万个 Is 的列表来过滤行 最直接的方
  • 监控培训课程如何运作?

    我试图理解使用之间的区别tf Session and tf train MonitoredTrainingSession 以及我可能更喜欢其中之一 似乎当我使用后者时 我可以避免许多 杂务 例如初始化变量 启动队列运行程序或设置文件编写器以
  • 如何解决CDK CLI版本不匹配的问题

    我收到以下错误 此 CDK CLI 与您的应用程序使用的 CDK 库不兼容 请将CLI升级到最新版本 云程序集架构版本不匹配 支持的最大架构版本为 8 0 0 但发现为 9 0 0 发出后cdk diff命令 我确实跑了npm instal
  • 为什么在 __init__ 函数中声明描述符类会破坏描述符功能?

    在下面的 B 类中 我想要 set 每当您赋值给 A 类中的函数时 就会调用该函数B a 相反 将值设置为B a覆盖B a与价值 C类分配给C a工作正常 但我想为每个用户类都有一个单独的 A 实例 即我不想在 C 的一个实例中更改 a 来
  • 在 Qt 5 中嵌入 Python

    我想将 Python 解释器嵌入到 Qt 5 应用程序中 我在 Qt 5 中有一个工作应用程序 但是当我把 include
  • 使用 os.forkpty() 创建一个伪终端以 ssh 到远程服务器并与其通信

    我正在尝试编写一个 python 脚本 它可以 ssh 到远程服务器 并可以从 python 客户端执行 ls cd 等简单命令 但是 在成功 ssh 到服务器后 我无法读取伪终端的输出 任何人都可以在这里帮助我 以便我可以在服务器上执行一
  • Python Tkinter 网格复选框

    我想知道是否有一种简单的方法可以使用 Tkinter 创建复选框网格 我正在尝试制作一个由 10 行和 10 列 即 100 个复选框 组成的网格 以便每行只能选择两个复选框 编辑 我正在使用带有spyder的python 2 7 到目前为
  • 使用 Python 导入包含文本和数字数据的文件

    I have a txt file which has text data and numerical data The first two rows of the file have essential information in te
  • 安塞布尔 + 10.11.6

    我在 非常 干净地安装 10 11 6 时遇到了 Ansible 的奇怪问题 我已经安装了brew zsh oh my zsh Lil snitch 和1password 实际上没有安装其他任何东西 我安装了ansible brew ins
  • 如何删除 pip 安装的所有软件包?

    如何从当前激活的虚拟环境中卸载 pip 安装的所有软件包 我发现这个片段作为替代解决方案 与重新创建 virtualenv 相比 删除库更加优雅 pip freeze xargs pip uninstall y 如果您通过 VCS 安装了软
  • 具有行业级约束的 SciPy 投资组合优化

    尝试在这里优化投资组合权重分配 通过限制风险来最大化我的回报函数 我可以毫无问题地通过简单的约束 所有权重之和等于 1 找到产生我的回报函数的优化权重 并做出另一个约束 即我的总风险低于目标风险 我的问题是 如何为每个组添加行业权重界限 我
  • AES 在 cryptojs 中加密并在 python Crypto.Cipher 中解密

    使用 js CryptoJS 加密并使用 python crypto Cipher 解密时出现问题 这是我在js中的实现 附加 iv 与加密消息并使用 base64 进行编码
  • Pandas 2 个字段中唯一值的数量

    我正在尝试查找覆盖 2 个字段的唯一值的数量 例如 一个典型的例子是姓氏和名字 我有一个数据框 当我执行以下操作时 我只获取每列的唯一字段数 在本例中为 最后一个 和 第一个 不是复合体 df Last Name First Name nu
  • 使用 python/scipy 进行 voronoi 和 lloyd 松弛

    如何使用 Qhull 确定哪些 voronoi 单元 按索引 是 正确的 由 现有顶点 组成 我正在尝试使用 LLoyds 算法和 scipy spatial Voronoi 它是 Qhull 的包装器 生成的输入来执行约束松弛 就代码而言

随机推荐

  • Windows2003系统漏洞提权复现

    操作系统 Microsoft Windows Server 2003 Web服务器 IIS V6 0 第一步 将大马文件上传至服务器根目录 第二步 访问大马文件 进入大马的控制界面 第三步 查看漏洞补丁信息 第四步 上传漏洞工具 将提权工具
  • 在Vue2项目中使用Vant组件库

    Vant 2 Mobile UI Components built on Vuehttps vant contrib gitee io vant v2 zh CN home1 安装vant包 Vue2项目下必须这么写 不能直接写npm i
  • MySQL 排序

    排序数据 1 排序规则 使用ORDER BY 字句排序 在其后面加所需字段 ASC ascend 升序 DESC descend 降序 ORDER BY 字句在SELECT语句的结尾 注意 数据库中默认按照先后添加顺序存储数据 在查询时 也
  • python中的sort的用法

    一 sort的两种用法 1 a sort 对原列表进行原址排序 原址排序的意思是原列表被改变了 排序的规则 数字 字符串按照ASCII 中文按照unicode从小到大排序 a 2 3 6 7 1 a sort print a 1 2 3 6
  • chrony系统授时时,几条重要命令输出信息的含义

    原文 https docs fedoraproject org en US Fedora 18 html System Administrators Guide sect Checking if chrony is synchronized
  • 确定你的public继承塑模出is-a关系——条款32

    如果你令class D Derived 以public形式继承class B Base 你便是告诉C 编译器 以及你的代码读者 说 每一个类型为D的对象同时也是一个类型为B的对象 反之不成立 你的意识是B比D表现出更一般化的概念 而D比B表
  • 开关电源-电容

    电子元器件 电容 1 电容是电路中重要的元件 种类多 用途广 主要有插件类和贴片类两种 2 电容主要特性参数 标称容量 耐压 误差 温度 2 1电容容量常用单位有微法 uF 纳法 nF 皮法 pF 单位换算 luF 103nF 106pF
  • 【数模】编码的传输问题 Huffman算法编程实现(matlab)

    编码的传输问题 利用Huffman算法编程实现以下问题 已知字母A B C D E F出现的概率 字母 概率 A 35 B 10 C 20 D 10 E 20 F 5 哈夫曼编码基础知识复习 哈夫曼编码 Huffman Coding 又称霍
  • Tensorflow框架(张量、计算图、会话)

    张量 计算图 会话 人工智能实践 Tensorflow笔记 Tensorflow框架 张量 计算图 会话 基于Tensorflow的NN 神经网络 用张量表示数据 用计算图搭建神经网络 用会话执行计算图 优化线上的权重 参数 得到模型 张量
  • 抓包工具fiddler不抓取火狐浏览器的数据

    fiddler可以抓到google浏览器的包 但是抓不到Firefox浏览器的包 火狐浏览器版本79 0 64 位 fiddler 4 亲测好使 操作步骤 打开Fiddler gt 菜单栏 Tools gt Options gt Conne
  • sdf转smi

    from rdkit import Chem smi Chem MolToSmiles Chem SDMolSupplier sdf path 0
  • 全局组件和局部组件

    1 全局组件和局部组件的区别 全局组件 只需要在main js中导入一次 整个项目都可以直接使用 在main js中导入 局部组件 用一次 导一次 在用到的地方导入 2 局部组件导入步骤 3部曲 1 导入子组件 import Registe
  • 基于Flask框架的python微博数据分析

    Python 微博数据 博文 分析 项目简介 后端采用Flask框架搭建 通过移动端接口获取数据 数据清洗后采用jieba进行词法分析 通过WordCloud制作词云展示 数据的可视化在以后的版本中会细化 版本V0 0 1功能 能够获取用户
  • 1. redis核心数据结构实战与高性能原理剖析

    分布式缓存技术Redis 1 Redis的五种数据结构 1 1 String 1 2 hash 1 3 列表list 1 4 set 1 5 ZSet 2 Redis的单线程和高性能 3 其他高级命令 3 1 scan 渐进式遍历键 本文是
  • 从零开始学习微服务 -微服务基本概述、微服务案例

    1 SpringCloud概述 1 1 互联网应用架构 1 1 1 单体应用架构 在诞 之初 项目的 户量 数据量规模都 较 项目所有的功能模块都放在一个工程中编码 编译 打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构 这样
  • SQL注入基础原理与案例(详细总结)

    SQL注入基础原理与案例 一 前言 二 漏洞概述及危害 1 漏洞概述 2 漏洞危害 3 漏洞防范 三 SQL注入 1 SQL注入方式 1 信息收集 2 数据注入 3 高权限注入 2 判断是否存在注入点 1 新办法 2 老办法 3 字段判断
  • vue使用高德地图--附带移动获取当前城市信息

    高德地图 1 使用准备 申请密钥 vue使用 2 移动地图获取城市案例 注意事项 3 总结 1 使用准备 申请密钥 登录注册高德开放平台进入控制台 创建应用 申请key 生成key和安全密钥 2021之后key需要配合安全密钥使用 注意 安
  • 流媒体直播播放协议:HLS、RTMP、HTTP-FLV

    流媒体直播播放协议 HLS RTMP HTTP FLV 一 推拉流 二 协议介绍 1 HLS 2 RTMP 3 HDL HTTP FLV 一 推拉流 在开始之前 先把流媒体服务中的双端关系说一下 在一个完整的流媒体服务框架中 角色就是 两端
  • 【直接收藏】前端JavaScript面试100问 (上篇)

    1 解释一下什么是闭包 闭包 就是能够读取外层函数内部变量的函数 闭包需要满足三个条件 访问所在作用域 函数嵌套 在所在作用域外被调用 优点 可以重复使用变量 并且不会造成变量污染 缺点 会引起内存泄漏 使用闭包的注意点 由于闭包会使得函数
  • 【代码规范】常见注释规范

    1 在有处理逻辑的代码中 源程序有效注释量必须在20 以上 说明 注释的原则是有助于对程序的阅读理解 在该加的地方都加了 注释不宜太多也不能太少 注释语言必须准确 易懂 简洁 2 文件注释 文件注释写入文件头部 说明 以 开始 示例 文件名