博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件工程复习笔记 第六章 --编码
阅读量:3947 次
发布时间:2019-05-24

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

第六章 --编码

前言

       总结自老师的PPT,不只有知识点,还有一些相关内容的介绍顺便复制进来了,自己感兴趣就想多了解一些。 如有问题请多指教

编码方法

熟悉编码规范,编写符合要求的代码

(1)标识符的命名

  • 标识符的名字不要太长,应该含义鲜明,“见名知意”。如果使用缩写,那么缩写规则应该一致。

(2)程序的注释

  • 在源程序中应有足够详细的注释,人工编写的源程序中注释的行数一般不得少于源程序行数的20%。

(3)程序布局

  • 适当地利用空格、换行和分层次缩进能使程序的逻辑结构变得清晰。

(4)以上都可归结为编码规范问题

  • 标准是必须遵守的规则,而规范是建议的最佳做法、推荐的更好方式。但有时会统称为标准规范。

java编码规范:

  • Package命名

    包名称全部小写,包的路径符合所开发的系统模块的定义,尽量使用单一职责原则
    所有五阿哥的包路径命名为com.wuage.xx(其中xx为具体业务相关)
    比如:
    com.wuage.seller
    com.wuage.crm
    com.wuage.order

  • 类名

    类名首字母应该大写。全局变量、方法以及所有标识符(如参数、局部变量)的首字母应小写,且使用驼峰法。命名满足见名知意

  • 接口

    采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。习惯上,名字前面加上大写的 I, 遵守单一职责原则及接口隔离原则
    比如:
    interface Iraster

  • 方法

    方法采用完整的英文描述说明成员方法功能,第一个单词尽可能采用一个生动的动词,尽量满足见名知意且注意使用设计原则
    比如:
    sayHello()
    getName()
    run()

  • 常量字段

    一般全部采用大写字母,单词之间用下划线分隔(也有特例,如Java 类库中关于颜色的常数没有严格地全部使用大写字母)
    比如:
    static final int MIN_WIDTH
    static final int MAX_WIDTH

  • 变量字段

    采用驼峰标示法,遵守见名知意原则
    比如:
    int myIndex

错误代码

if (condition)    statement1; if (condition1)	if (condition2)        statement2;else    statement3;

正确代码

if (condition) {
statement1;}if (condition1) {
if (condition2) {
statement2; }} else {
statement3;}

DAO层命名规范

  • DAO接口全部以I开始以DAO结束,如IUserDAO.java
  • DAO实现类全部以IBatis开始以Impl结束并继承DAO接口
    如:IBatisUserDAOImpl.java
  • 实体全部以Model结尾
    如:UserModel

service设计规范

  • 读写分离
    接口
    写接口以I开始OperateService结束,比如IUserOperateService.java
    读接口以I开始QueryService结束,比如IUserQueryService.java
    实现类
    以OperateServiceImpl或者QueryServiceImpl结束, 比如UserQueryServiceImpl.java
  • 自包含
  • 尽量捕获异常输出日常并返回业务方错误的code

Java工程命名

1 、应用名中用_来连接 ,2 子工程的命名是用.

如:这个应用是叫wuage_web 里面的子工程可以叫wuage_web.config

注意:

2 、autoconfig的文件需要放在src/main/resource中,或者是在war中

java文件目录结构

使用标准maven结构,具体package待定

规范描述

  • 单行长度不超过120个字符,多于120个字符进行换行,操作符放在新行之首;新行要进行相应的缩进,至少不能少于8个字符。
  • 不允许把多个短语句写在一行中,即一行只写一条语句。
  • if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}。
  • 相对独立的程序块之间、变量说明之后必须加空行

类注释放在class 或者 interface 关键字之前

类注释放在class 或者 interface 关键字之前,import 关键字之后。注释使用“/** */”注释方式。

说明:注释主要是一句话功能简述与功能详细描述。注释可根据需要列出:作者、内容、功能、与其它类的关系等。功能详细描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者和更新版本号和日期,@since 表示从那个版本开始就有这个类或者接口,@deprecated 表示不建议使用该类或者接口。

/** * 〈一句话功能简述〉 * 〈功能详细描述〉 * @author     [作者](必须,使用汉语)*  @see        [相关类/方法](可选) * @since      [产品/模块版本] (可选) * @deprecated  (可选) */代码示 import java.blah.blahdy.Blah;        /**         * Blah类处理订单业务流程.         * 全部为静态变量和静态方法,对外提供统一接口。提供了订单保存,         * 订单业务处理,查询等功能。         *           * @author  张三         * @see    OrderCmd         * @since           */ public class Blah extends SomeClass  {
}

公有方法格式

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

/** * 〈一句话功能简述〉 * 〈功能详细描述〉 * @param [参数1]     [参数1说明] * @param [参数2]     [参数2说明] * @return  [返回类型说明] * @exception/throws [异常类型] [异常说明] * @see   [类、类#方法、类#成员]* @since [起始版本] * @deprecated */说明:@since 表示从那个版本开始就有这个方法,如果是最初版本就存在的方法无需说明;@exception或throws 列出可能抛出的异常;@deprecated 表示不建议使用该方法。示例:/**     * 根据日志类型和时间读取日志。     * 分配对应日志类型的LogReador, 指定类型、查询时间段,     * 读取日志记录。查询条件为null或0的表示没有限制。     * 查询时间为左包含原则,即 [startTime, endTime) 。     * @param logTypeName  日志类型名(在配置文件中定义的)     * @param startTime     查询日志的开始时间     * @param endTime      查询日志的结束时间     * @param logLevel      查询日志的级别     * @return  结果集,日志反复器     * @since  1.2      */    public static LogIterator read(String logType, Date startTime, Date endTime, int logLevel)

编码规范

  • 命名规范
  • 格式规范
  • 声明规范
  • 语句规范
  • 注释规范
  • 开发目录规范
  • 版本管理规范

转载地址:http://zmhwi.baihongyu.com/

你可能感兴趣的文章
openresty+lua在反向代理服务中的玩法
查看>>
ClickHouse集群搭建从0到1
查看>>
nginx实现请求的负载均衡 + keepalived实现nginx的高可用
查看>>
linux shell 中数组的定义和for循环遍历的方法
查看>>
求1!+2!+3!....+20!(java代码)
查看>>
VMware安装Ubuntu系统无法选择语言
查看>>
QT5.12安装
查看>>
Git/Github初步使用记录
查看>>
QT 开发问题合集
查看>>
Github使用问题合集
查看>>
QT多线程服务器
查看>>
Ubuntu 18.04.2 ulimit配置
查看>>
Ubuntu Mysql 安装与配置
查看>>
QT5.12 Mysql驱动未能加载问题
查看>>
现场直击|SequoiaDB@SIGMOD 2021:关注数据库的根科技存储技术
查看>>
赋能政企智慧办公,巨杉数据库与致远互联完成产品互认证
查看>>
SequoiaDB湖仓一体架构亮相 ACM SIGMOD 2021
查看>>
信通院发布第十二批大数据产品能力评测结果,巨杉数据库两款产品通过
查看>>
巨杉数据库荣获2020年度河南省科学技术进步奖
查看>>
湖仓一体提升管理效率 培育数据沃土
查看>>