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

代码规范 任重而道远相关推荐

  1. Python 代码规范

    前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 Python代码规范 一.简明概述 1.编码 如无特殊情况, 文件一律使用 U ...

  2. 代码规范+设计模式落地之路

    欢迎关注方志朋的博客,回复"666"获面试宝典 | 前言 刚刚与同事开了一个分享会,笔者分享了一些了代码设计模式相关的内容. 以及复盘了一下项目中有些复杂的业务场景,为什么没有很好 ...

  3. php 代码规范 工具,PHP工具篇:PHPStorm IDE使用CodeSniffer代码规范化管理

    PHPStorm IDE使用CodeSniffer进行代码规范化管理 PHP_CodeSniffer是一个优秀的代码风格检测工具,定义了一系列的代码规范(通常使用官方的代码规范标准,比如PHP的PSR ...

  4. Verilog代码规范I

    Verilog代码规范I "规范"这问题 "规范"这个富含专业气息的词汇(个人感觉),其实规范这种东西,就是大家都约定熟成的东西,一旦你不遵守这个东西,专业人士 ...

  5. vim php代码规范

    vim 代码规范工具php-cs-fixer.phar (參考https://github.com/FriendsOfPHP/PHP-CS-Fixer) INSTALL curl http://get ...

  6. Scrum立会报告+燃尽图(十一月十五日总第二十三次):代码规范与技术交流

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2384 项目地址:https://git.coding.net/zhang ...

  7. Web前端开发代码规范(基础)

    一. 引言 对于一个多人团队来说,制定一个统一的规范是必要的,因为个性化的东西无法产生良好的聚合效果,规范化可以提高编码工作效率,使代码保持统一的风格,以便于代码整合和后期维护. 二. HTML/CS ...

  8. iOS 代码规范总结

    前言:代码规范最终的目的是降低代码维护的成本. 代码规范的好处(网上一搜一大把):http://kdboy.iteye.com/blog/407572 一. 结构规范 1.文件夹的建立:注意创建的都是 ...

  9. 【辟谣】代码规范固然重要,但是不要再黑程序员了...

    昨晚第一次看到一侧关于程序猿代码没有规范而被枪杀的文章,开始有朋友在群里吐槽几个平时代码比较"诗意"的同事,大家也就一笑而过了. 但是,今天朋友圈突然爆发一阵转载热潮,并且还在持续 ...

  10. Python代码规范和命名规范

    http://www.imooc.com/article/19184?block_id=tuijian_wz#child_5_1 Python代码规范和命名规范 前言 Python 学习之旅,先来看看 ...

最新文章

  1. 百度android 测试平台,集成百度活体检测(Android、iOS)
  2. isinstance函数和@staticmethod用法
  3. 2011 Michigan Invitational Programming Contest
  4. 解决JDBC连接mysql时server time zone问题及com.mysql.jdbc.Driver is deprecated
  5. mysql必须的组件_mysql innodb的重要组件
  6. Analysis of Cloud Computing Architectures阅读笔记--提出了Screen虚拟化方法
  7. adb打开网页_android 使用指定浏览器打开网页
  8. Bjarne Stroustrup语录[C++经验]
  9. KVM的概念和云计算
  10. 数据分析数据可视化(三)
  11. 自然语言处理核心期刊_计算机核心期刊
  12. Google Chrome修改网页背景颜色的办法
  13. HTML 超文本标记语言
  14. php暴力引流代码,利用霸屏暴力引流,免费分享霸屏代码
  15. microsoftfixitoffice官方清理软件_电脑卡?试试这几款电脑必备清理优化软件
  16. c#截屏木马,发送到邮箱
  17. 关于VB.net禁用右键菜单的实现
  18. python安装及使用技巧
  19. 【程序人生】程序员薪酬对比研究以及晋升详情2022(持续更新)
  20. [语义分割]SPP、空洞卷积与ASPP总结

热门文章

  1. [dataTables使用的坑]requested unknown parameter 'XXX' for row xx, column xx
  2. 南邮 OJ 1408 火星探险
  3. Docker容器内安装wkhtmltox用来html转pdf
  4. [WSL]Ubuntu指定的网络名不可再用
  5. 铜仁学院官网计算机二级报名,贵州铜仁学院2015年9月全国计算机等级考试报名通知...
  6. 一个海量在线用户即时通讯系统(IM)的完整设计
  7. 聊聊那些年遇到过的奇葩代码
  8. 深度学习在美团搜索广告排序的应用实践
  9. 关于后端接口测试没问题,HTTP500错误
  10. amd cpu排行_2020英特尔cpu排行_2019 cpu天梯图 intel和amd cpu性能排行