编码规范-注释管理

13 篇文章 0 订阅
8 篇文章 0 订阅

4.注释
除非极其简单,否则对关键信息应有注释说明。内容包括:功能、入口/出口参数,必要时还可有备注或
补充说明。
① 注释用途:代码交流、代码阅读、代码review、新人培训、工作移交等。
② 统一采用业界的文档标准:doxygen。
③ 代码进行了修改,注释需要同步修改。
④ 注释内容意思要与代码保持一致。

注释分为:块注释和行注释。
块注释:

/**
*@brief     块注释内容说明
*/

行注释:变量注释一般为行注释。

//注释内容说明。

4.1.类注释
对每个类进行简单的注释说明。内容包括:类名称含义、类主要用途、作者、创建日期。
样例:

/**
 * @class       设备窗口操作类
 * @brief       操作工通过该窗口进行设备查询、设备状态、设备配置等操作
 * @author      作者名称
 * @date        创建、修改日期
 */
class RTX_MOD CDialogDev : public QDialog, CRTDialog

4.2.函数注释
对每个函数/接口进行相应的注释说明。内容包括:函数含义、传入参数、传出参数、返回值、特殊说明(内存管理)等。
序号 关键字 关键字函数 说明
1. @brief 函数功能简要说明
2. @remark 特殊说明
3. @param[in] 传入参数
4. @param[out] 传出参数
5. @param[in|out] 传入/传出参数
6. @return 返回类型
7. @retval 返回值

① 有传入参数、有传出参数、有返回值必须需要函数注释。
② 代码行数小于10行的函数可以不需要函数注释。(不包括注释和空行)
③ 代码行数大于10行的行数应该需要函数注释。(不包括注释和空行)
④ 代码行数大于50行的函数必须进行函数注释。(不包括注释和空行)

样例:

    /**
    *@brief     通过规则id获取条码规则详情列表
    *@remark    条码规则的指针和内存共用
    *@param[in] 规则id
    *@retval    符合规则id的条码规则详情列表
    */
CEQue<CRTBarcodeRuleDetail*> GetDetail(int i32RuleID);

4.3.变量注释
对每个变量进行相应的注释说明。内容包括:变量名称含义、变量类型、变量长度、变量值范围、变量默认值等。
① 注释内容相对简单的,放在变量名称后面。
② 注释内容相对复杂的,放在变量名称上一行。

样例:

QString             m_strDevName;           //设备名称
//设备类型:1为1500型号,2为208型号,3为212型号,4为410型号,默认值为2
quint32             m_ui32DevType;   

4.4.关键业务注释
对系统/项目中的关键业务进行相关的注释说明。内容包括:业务规则说明、处理细节、特殊说明、修改人、修改时间等。

样例:

    //add by hls begin 20140723
    //修改实施部qc311:质检表单内有质检项目存在空值时限制提交
    //目的:减少车间管理难度,由人工检查质检数据有效性变为系统防错
    //现有流程:1、终端质检时点击增加,没有输入数据直接确定时系统把【】值写到每个质检项中,
//建议改善如下:1、终端质检时点击增加,没有输入数据直接确定时限制操作,同时弹窗提示;
//2、在刷卡提交质检表单时,判断是否有空值的质检项目,有空值时限制提交并弹窗提示;
    int irow = 0;
    int icol = 0;
    string strCellValue = "";
    for (irow = 0;irow < pGrid->RTGetRowCount();irow++)
    {
        //列名称:项目名称、记录、记录.....、记录n、判定、修正值
        //需要剔除开始的项目名称和结尾的判定与修正值
        //RTGetColCount()会多返回一行,所有默认列字段需要减(除了判定和修正值)
        for (icol=1; icol < pGrid->RTGetColCount()-3; icol++)
        {
            strCellValue = "";
            strCellValue = pGrid->RTGetValue(irow,icol);
            //有任一一个质检项目的记录值为空值都不能通过,需要弹窗提示
            if (strCellValue.empty())
            {
                string str = "";
                util::string_format(str, "第[%d]行第[%d]列的质检项目的记录值的内容不能为空值,请重新填写", irow+1, icol+1);
                PopMsg(str.c_str());
                return;
            }
        }
    }
//add by hls end 20140723

4.5.关键算法注释
对系统/项目中的关键算法进行相关的注释说明。内容包括:算法功能说明、算法公式说明、特殊说明、修改人、修改时间等。

4.6.内嵌代码的注释
对于if、while、do 等其大括号内嵌代码块比较长(需拖动滚动条来看)或者多层嵌套时,在结尾的“}”后要加上其所对应的语句的注释说明。
例:

if (bIsOk == TRUE)
{
代码段
}// if ((bIsOk == TRUE)...

4.7.缺省值的注释
函数入口参数有缺省值时,应注释说明。
例:

BOOL MyFunction(
const char cszParam1 [],
BOOL bParam2 // = TRUE
);

或者:

BOOL MyFunction(
const char cszParam1[],
BOOL bParam2 /* = TRUE */
);

4.8.代码段的注释
描述某个代码段的注释,可以给注释描述的代码段外围加上{},帮助阅读。
例:

//代码段实现功能或意图描述
{
代码段
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
阿里代码规范题目+答案50道题,不乱码不套路,便宜实惠。 多选 1.如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和识别。 多选 2.关于并发处理,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。 B .同步处理时,能锁部分代码区块的情况下不要锁整个方法;高并发时,同步调用应该考虑到性能损耗。 C .创建线程或线程池时,推荐给线程指定一个有意义的名称,方便出错时回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式) 多选 3.下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对于“明确停止使用的代码和配置”,如方法、变量、类、配置文件、动态配置属性等要坚决从程序中清理出去,避免造成过多垃圾。 B .永久弃用的代码段注释掉即可,即不用加任何注释。 C .对于暂时被注释掉,后续可能恢复使用的代码片断,在注释代码上方,统一规定使用三 个斜杠(///)来说明注释掉代码的理由。 D .不要在视图模板中加入任何复杂的逻辑。 多选 4.关于分页查询,下列哪些说法符合《阿里巴巴Java开发手册》:ABC A .分页查询,当统计的count为0时,应该直接返回,不要再执行分页查询语句。 B .iBATIS自带的queryForList(String statementName,int start,int size)分页接口有性能隐患,不允许使用。 C .定义明确的sql查询语句,通过传入参数start和size来实现分页逻辑。 D .可使用存储过程写分页逻辑,提高效率。 多选 5.根据《阿里巴巴Java开发手册》,以下功能必须进行水平权限控制校验的有:ABCD A .订单详情页面。 B .类目管理后台。 C .店铺装修后台。 D .订单付款页面。 多选 6.关于数据库中NULL的描述,下列哪些说法符合《阿里巴巴Java开发手册》:BD A .NULL=NULL的返回结果为true。 B .NULL与任何值的比较结果都为NULL。 C .NULL<>1的返回结果为true。 D .当某一列的值全是NULL时,sum(col)的返回结果为NULL。 多选 7.关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》:ABCD A .向公司外部提供的http/api接口,推荐使用“错误码”方式返回异常或者错误信息。 B .对于应用内部的方法调用,推荐使用“抛出异常”的方式处理异常或者错误信息。 C .跨应用的RPC调用,推荐使用将“错误码”和“错误简短信息”封装成Result的方式进行返回。 D .对外提供的接口,一定要保证逻辑健壮性:尽量避免空指针等技术类异常;对于业务类异常要做好错误码或者异常信息的封装。 单选 8.关于类的序列化,下列说法哪些是正确的:D A .类的序列化与serialVersionUID毫无关系。 B .如果完全不兼容升级,不需要修改serialVersionUID值。 C .POJO类的serialVersionUID不一致会编译出错。 D .POJO类的serialVersionUID不一致会抛出序列化运行时异常。 多选 9.关于Java的接口描述,下列哪些说法符合《阿里巴巴Java开发手册》:BCD A .在接口类中的方法和属性使用public修饰符。 B .对于Service类,内部的实现类加Impl的后缀与接口区别。例如:ProductServiceImpl实现ProductService接口。 C .对于Service类,基于SOA的理念,是以接口方式暴露服务。 D .尽量不在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,而且是整个应用的基础常量。 单选 10.集合在遍历过程中,有时需要对符合一定条件的元素进行删除,下列哪些说法是正确的:B A .在 foreach 循环里进行元素的 remove操作。 B .使用Iterator方式,如果有并发,需要对Iterator对象加锁。 C .Iterator进行元素的删除操作,绝对是线程安全的。 D .Java无法实现在遍历时,进行删除元素操作。 多选 11.关于基本数据类型与包装数据类型的使用标准,下列哪些说法符合《阿里巴巴Java开发手册》:ABD A .所有的POJO类属性必须使用包装数据类型。 B .RPC方法的返回值和参数必须使用包装数据类型。 C .因为JAVA的自动装箱与拆箱机制,不需要根据场景来区分数据类型。 D .所有的局部变量推荐使用基本数据类型。 多选 12.关于索引的设计,下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .对varchar类型的字段建立索引,必须指定索引长度。 B .对varchar类型的字段建立索引,不需要指定索引长度,这样索引区分度最好。 C .业务上具有唯一特性的字段(含组合字段),必须指定唯一索引。 D .建复合索引时,一般选择区分度高的字段放在最左列。 多选 13.关于二方库版本号的命名方式,下列哪些说法符合《阿里巴巴Java开发手册》:ABCD A .版本号命名格式:主版本号.次版本号.修订号。 B .主版本号:产品方向改变,或者大规模API不兼容,或者架构不兼容升级。 C .次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改。 D .修订号:保持完全兼容性,修复BUG、新增次要功能特性等。 多选 14.关于索引的使用,下列哪些说法是正确的:BCD A .查询语句 WHERE a+1 = 5 可以利用a索引。 B .查询语句WHERE date_format(gmt_create, '%Y-%m-%d') = '2016-11-11'无法利用gmt_create索引。 C .当 c 列类型为 char 时,查询语句 WHERE c = 5 无法利用c索引。 D .索引字段使用时不能进行函数运算。 多选 15.关于生产环境的日志文件,下列哪些说法符合《阿里巴巴Java开发手册》:ABCD A .异常信息应该包括两类信息:案发现场信息和异常堆栈信息。 B .日志文件推荐至少保存15天,因为有些异常具备以“周”为频次发生的特点。 C .避免重复打印日志,浪费磁盘空间,务必在log4j.xml中设置additivity=false。 D .错误日志和业务日志尽量分开存放。 多选 16.关于代码注释,下列哪些说法符合《阿里巴巴Java开发手册》:ABD A .特殊注释标记,请注明标记人与标记时间。 B .待办事宜(TODO):( [标记人,标记时间,[预计处理时间]) C .在注释中用FIXME标记某代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进 D .在注释中用FIXME标记某代码是错误的,而且不能工作,需要及时纠正的情况 多选 17.关于MySQL性能优化的描述,下列哪些说法是正确的:ABCD A .主键查询优先于二级索引查询。 B .表连接有一定的代价,故表连接数量越少越好。 C .一般情况下,二级索引扫描优先于全表扫描。 D .可以使用通过索引避免排序代价。 多选 18.关于索引的设计和使用,下列哪些说法是正确的:AD A .若查询条件中不包含索引的最左列,则无法使用索引。 B .对于范围查询,只能利用索引的最左列。 C .对于order by A或group by A语句,在A上建立索引,可以避免排序。 D .对于多列排序,需要所有所有列排序方向一致,才能利用索引。 多选 19.关于类命名,下列哪些说法符合《阿里巴巴Java开发手册》:ABCD A .抽象类命名使用Abstract或Base开头。 B .异常类命名使用Exception结尾。 C .测试类命名以它要测试的类的名称开始,以Test结尾。 D .如果使用到了设计模式,建议在类名中体现出具体模式。例如代理模式的类命名:LoginProxy;观察者模式命名:ResourceObserver。 多选 20.关于数据库模糊检索的描述,下列哪些说法符合《阿里巴巴Java开发手册》:ABD A .绝对禁止左模糊。 B .绝对禁止全模糊。 C .绝对禁止右模糊。 D .全模糊或左模糊查询需求,优先使用搜索引擎。 多选 21.关于代码注释,下列哪些说法符合《阿里巴巴Java开发手册》:ACD A .所有的抽象方法(包括接口中的方法)必须要用javadoc注释。 B .所有的方法,包括私有方法,最好都增加注释,有总比没有强。 C .过多过滥的注释,代码的逻辑一旦修改,修改注释是相当大的负担。 D .我的命名和代码结构非常好,可以减少注释的内容。 多选 22.关于checked/unchecked exception,下列哪些说法是正确的:BCD A .继承java.lang.Error的类属于checked exception。 B .checked异常继承java.lang.Exception类。 C .unchecked异常继承java.lang.RuntimeException类。 D .NullPointerException , IllegalArgumentException属于unchecked exception。 单选 23.关于Map类型集合的遍历方式,下列哪些说法是正确的:D A .Map类型的实现类都同时实现了Iterator接口。 B .使用foreach进行遍历。 C .推荐使用keySet进行遍历。 D .推荐使用entrySet进行遍历。 多选 24.关于变量、方法名、包的命名,下列哪些说法符合《阿里巴巴Java开发手册》:ABCD A .POJO类中的任何布尔类型的变量,都不要加is,因为部分框架解析时有可能会出现序列化错误。 B .包名统一使用单数形式,如:com.alibaba.mpp.util。 C .中括号是数组类型的一部分,数组定义如下:String[] args; 不要误写为String args[]; D .Service/DAO层方法命名可以参考规约,例如:删除的方法推荐使用remove或delete做前缀。 多选 25.关于常量定义,下列哪些说法符合《阿里巴巴Java开发手册》:AC A .不允许出现任何魔法值(即未经预先定义的常量)直接出现在代码中。 B .魔法值是指程序中随意定义并赋值的变量值,如果代码编写者明白变量值意义是可以任意使用的,例如在代码中写if(status == 3) return error;符合规范。 C .如果变量值仅在一个范围内变化推荐用Enum类。 D .在程序中,一律禁止使用枚举类型。 多选 26.关于maven依赖、仲裁、规则,下列哪些说法是正确的:ACD A .<dependencies>的依赖会默认传递给子项目。 B .<dependencies>的依赖绝对不会传递给子项目。 C .在<dependencyManagement>中指定版本号。 D .避免在不同的子项目,声明同一个二方库的不同版本号。 单选 27.关于二方库升级,下列哪些说法是正确的:B A .升级二
软件工程与数据库 课程设计 任务书 学院名称: 数学与计算机学院 课程代码:_6014419_ 专 业: 年 级: 一、设计题目 图书管理系统 二、主要内容 一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的 借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续 借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学 生,借阅、续借、归还的确认。如: 图书室有各种图书一万多册。 每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容 简介。 借书证记录有借阅者的姓名、所在单位、职业等。 凭借书证借书,每次最多能借8本书。借书期限最长为30天。 实现新进图书的数据录入。 实现对所有购进图书的分类查询和分类统计。 能够按书名、作者等分类查询现有图书的数量。 记录借阅者的个人资料和所借图书的书名、书号数据等。 三、具体要求 1、完成系统的需求分析 通过需求分析确定系统需要处理的数据的需求,要求使用数据库的辅助设计工具( PowerDesigner等),建立业务处理模型。 2、完成系统概念结构设计 概念数据模型(CDM)用于完成数据库的设计,与人和数据库平台和具体数据存储结构和 工具无关。首先选择局部应用画出分E-R图,最终形成系统的E-R图 3、完成系统逻辑结构设计 按照E- R图转换成关系模式的规则,将CDM转换成逻辑数据模型,并为每个关系模式设计主键、 外键。分析关系模式中的依赖关系,对关系模式规范化处理 4、完成系统物理结构设计 为每个关系分配存储长度,建立数据库的索引和视图,定义关系中的主码和外码,写 出关系创建和查询的SQL语句。 5、编码 选择你自己熟悉的开发工具完成一个DBS系统的编码工作。 源代码格式规范,注释不少于三分之一 四、主要技术路线提示 1.仔细阅读设计指导书内容,认真掌握任务要求(2. 需求分析( 3.概念结构设计( 4.逻辑结构设计(5.物理结构设计(6.编码. 2.后台推荐采用SQL server或Oracle;前台开发环境不限制。可采用ADO,ODBC,OLE DB或JDBC连接数据库, 并调用系统存储过程、自定义存储过程、函数等。 五、进度安排 第1周: 数据库系统概念模型、数据模型设计,创建数据库以及相关对象; 第2周: 前台程序开发,撰写报告,接受检查。 六、完成后应上交的材料 1. 源程序一份(包含数据库) 2. 课程设计报告一份 七、推荐参考资料 1.王珊.数据库系统概论(第四版). 高等教育出版社 2.闪四清.数据库系统原理与应用教程.清华大学出版社 3.周龙骧.数据库管理系统实现技术.中国地质大学出版社 4.张海藩.软件工程概论.清华大学出版社 5.陈明 编著.实用软件工程基础.清华大学出版社 6.成先海.数据库基础与应用-SQL SERVER2000. 机械工业出版社出版 指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日 ----------------------- 数据库课程设计--图书管理系统全文共3页,当前为第1页。 数据库课程设计--图书管理系统全文共3页,当前为第2页。 数据库课程设计--图书管理系统全文共3页,当前为第3页。
### 回答1: Cert-C编码规范是一种针对C编程语言开发的代码规范,旨在提高软件的质量和安全性。在软件开发领域,质量和安全性一直被视为极其重要的因素,尤其是在与关键系统和数据处理相关的领域中,如金融、医疗和航空等。Cert-C编码规范作为一种行业标准,为开发人员提供了一种编写高质量、安全、可靠和可维护的代码的指南。 Cert-C编码规范涵盖了一系列开发实践和编程技术,如规范化命名、错误处理、内存管理、并发性和安全漏洞等。此外,规范还提供了关于代码组织、文档化和测试的建议。 Cert-C编码规范的下载可以帮助开发人员将其代码与行业标准进行比对,并通过审查和测试,确保其代码的质量和安全性。下载后,开发人员可以根据自己的项目需求进行定制化配置,方便地将规范整合到其现有的开发实践中。 总之,Cert-C编码规范的下载对于希望开发高质量和安全性软件的开发者来说是非常有益的,尤其是在处理与关键系统和数据相关的领域。它不仅提供了软件开发的最佳实践,而且还可以帮助开发人员确保其代码满足行业标准并保持一致性。 ### 回答2: Cert-C编码规范是一种用于编写C程序的代码规范,旨在帮助开发人员编写高质量的、健壮的和有效的代码。该规范由美国国家标准与技术研究院(NIST)开发,已成为许多组织和公司的标准。 Cert-C编码规范涵盖了众多编程方面的内容,包括变量和函数命名、注释、条件语句、循环语句、结构体、指针等。这些规则旨在提高代码的可读性、可维护性、可扩展性和可靠性。 Cert-C编码规范的实施需要开发人员花费额外的时间和精力来学习和应用规则。但是,实施规则将带来许多好处。首先,这将有助于避免许多常见的编程错误。其次,代码的质量将得到提高,从而减少了代码的错误和漏洞的数量。第三,提高了代码的可读性,使得其他人员可以更轻松地理解和修改代码。 Cert-C编码规范的下载可以在NIST网站上找到。需要注意的是,该规范是一个长期、持续不断地更新和发展的过程,使得开发人员更好地适应不断变化的编程环境和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值