zoukankan      html  css  js  c++  java
  • 代码规范 任重而道远

    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

    代码规范

    工程控制

    需求分析

    效能分析

    写在最后

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

  • 相关阅读:
    2021-06-22 总结
    【每日一题】13. 罗马数字转整数
    【每日一题】12. 整数转罗马数字
    【每日一题】1269. 停在原地的方案数
    【每日一题】1310. 子数组异或查询
    【每日一题】1734. 解码异或后的排列
    【每日一题】872. 叶子相似的树
    【每日一题】1482. 制作 m 束花所需的最少天数
    【每日一题】1723. 完成所有工作的最短时间
    【每日一题】1486. 数组异或操作
  • 原文地址:https://www.cnblogs.com/WeSure6/p/5285694.html
Copyright © 2011-2022 走看看