博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
代码规范 任重而道远
阅读量:5115 次
发布时间:2019-06-13

本文共 2864 字,大约阅读时间需要 9 分钟。

1 代码规范化的意义

  1.1软件维护是软件生命周期中持续时间最长的阶段。因此代码总会被很多人去维护,规范的代码可以减少维护人员的理解时间,降低维护代价,方便进行二次开发

  1.2几乎没有任何一个软件,在其整个生命同期中,均由最初的开发人员来维护,所以作为最初的你最好留下好的口碑

  1.3编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新代码

  1.4建议性的规范帮助编码人员写出易理解、易维护、易扩展的优秀代码

2 编码规范指南

  2.1排版规范

    2.1.1程序块采用缩进,缩进空位为4个

    2.1.2分解符如“{”和“}”独占一行,并且位于同列

    2.1.3较长的语句、表达式、参数要书写多行

    2.1.4一行只写一条语句

    2.1.5if,for,do,while,case,switch,default 独占一行,且语句块都要加“{ }”,无论语句多少

    2.1.6相对独立的业务语句块之间,变量说明后加空行

    2.1.7对齐只用空格不用TAB,避免不同编辑器对TAB处理不同

    2.1.8对二个以上的关键字、变量、常量进行对等操作时,变量前后必须留空格,如果if( a == b)

    2.1.9类属性和方法不用交叉放置,不同存取范围的属性或方法也不远交叉放置

  2.2注释规范

    2.2.1有代码的地方就有注释,杜绝没有任何注释的代码,推荐注释量在20%以上

    2.2.2包的注释:在包的当前路径放入一名为package.html的HTML文件,方面JavaDoc收集。注释内容简述本包的作用、内容、产品模块、版本、版权等

    2.2.3文件注释:文件开始,package 关键字前面,记载版权说明、描述信息、生成日期、修改历史

    2.2.4类和接口的注释:在package之后,class或interface之前,描述当前类或接口的功能,作者,生成日期,修改日志,版本号等

    2.2.5类属性、方法注释:在类或方法的前面,类属性记载属性的功能用处,用/* 开头描述注释,放置JavaDoc收集;

    2.2.6类方法注释需要记载方法的功能简述、详细、输入参数、输出值、抛出的异常、作者等

    2.2.7类方法内部注释: 注释应放置被注释语句的正上方或右侧; 注释必须与被注释的语句同缩进; 注释与上面的代码只有用一个空行隔开; 属于同一业务逻辑块的代码,须显示注释用途; 对于变量定义和分支语句(if, switch, case)必须注释; 写代码的同时写注释,修改代码的同时,也修改注释; 注释块内部请不要加缩进; 注释内容内部需要着重提示的,请包括标签<b>xxxx</b> 对于业务逻辑比较多的方法,建议显示注释步骤1、2,、3、4… 注释含义明确,不要写无意义的注释和难以理解的词汇

  2.3命名规范

    2.3.1包的命名:常用命名方式:com.公司名.产品线名.项目名.模块名,所有名称全部小写

    2.3.2类名和接口名的命名:尽量使用完整的英文描述,首字母大写,每个英文单词的首字母大写,其余字母小写。抽象类请以Abstract开头,接口的实现类请以Impl接口,工具类请以Util或Utils结尾,如下列命名方式: StaffService、DefaultStaffService、AbstractEntity、StringUtils;

    2.3.3、方法命名;尽量使用完整的英文描述,首字母小写,每个英文单词的首字母大写,其余字母小写,属性存取尽量使用setX、getX,返回布尔类型值的方法尽量使用isX,如下列命名方式: queryStaffById、isCodeExists()、getValue

    2.3.4、属性命名;尽量使用完整的英文描述,首字母小写,每个英文单词的首字母大写,其余字母小写,属性名和方法名不要重复;

    2.3.5、常量命名;使用全部大写的英文描述,每个单词之间用下划线分隔,变量之前近可能使用final修饰,注意:枚举也是一种常量;

    2.3.6、模块内部的组件,尽量以组件名开头,如:StaffDAO、StaffService;

    2.3.7、组件命名,尽量以组件类型结果,如:StaffService、OrgService;

    2.3.8、准确控制类成员方法的修饰符,如果仅限于类内部使用用private修饰,可供子类或本包内部使用用protected修饰,对所有公开,则用public;

    2.3.9、属性和方法的命名不易过长,一般不超过15个字母;

3 怎样写规范的代码

    包结构清晰,类、接口、方法、属性命名贴切易懂;

    该注释的地方注释,注释清楚、易懂,没有二义性;

     接口定义明确,精确方法功能,每个方法只实现一个功能;

    方法内部的代码行数控制在200行以内,一个类的代码行数控制在1000行以内,如果你的类代码在1000行以上,请重新思考设计思路,这里说的代码行数不把注释计算在内;

    多个方法内部如果有相似的功能代码块,应该提取为公用方法;

    尽量将业务相近的方法放在一起,便于寻找;

    方法内部尽量不要catch异常,让外部调用者知道出错细节;

    方法内部对于对象参数的调用,尽量判断非null引用,除非你的设计能保证非空对象;

    不用的数据及时是否,如果数据库连接、集合、共享锁等;

 

    不要使用技巧性比较高的表达式;

对于方法抛出的自定义异常,应该写明异常描述信息;

评估你的数据,对变量采用合理的类型,如一个整数在1个字节8位以内,应该使用byte;

该用基本数据类型就用基本数据类型,明确告诉虚拟机你的数据类型,避免虚拟机帮你做类型转换

红色标识 自己碰到过的需要改正的毛病

任重而道远!

附PSP

 

Job Type Data Start End Total(min)
效能 编码测试 3.13 14:30 15:20 50
效能随笔 随笔

3.14

3.15

14:20

10:40

14:51

10:50

41

了解燃尽、

甘特、鱼刺图

查阅 3.15 19:05 19:50 45
软件对比分析 随笔 3.16 13:50 14:35 45
小组工程需求讨论 讨论 3.16 17:50 19:50 120
代码规范 查阅 3.16 21:05 21:30 25
总结随笔 随笔 3.16 22:30 23  

工作量表

 

  代码行数 博客字数 知识点
第二周 0 2500

代码规范

工程控制

需求分析

效能分析

 

写在最后

在这个课程中与“耐撕”一起完成抢答器项目,争取在实践中充分了解软件工程的过程。加油!

 

转载于:https://www.cnblogs.com/WeSure6/p/5285694.html

你可能感兴趣的文章
[.NET] : 设定Windows Service启动类型
查看>>
Log4NET SQL配置
查看>>
Linux网络配置
查看>>
分享精心收藏的前台开发素材网站,都是干货
查看>>
Shell脚本修改Nginx upstream配置文件
查看>>
转_博弈论知识汇总
查看>>
进程的状态
查看>>
游戏外挂基本原理及实现
查看>>
计算数字1至10的总和
查看>>
动态合并Repeater控件数据列
查看>>
EF6 Codefirst+MySql 数据库迁移
查看>>
blasphemy - 题解
查看>>
不用js也能创建silverlight
查看>>
SPFieldLookupValue
查看>>
[MongoDB]安装MongoDB遇到问题
查看>>
How-important-is-deep-learning-in-autonomous-driving
查看>>
Oracle在Linux内核参数的修改
查看>>
Java 动态代理机制详解
查看>>
.NET 4.0中的泛型协变和反变
查看>>
2019.7.5刷题统计
查看>>