zoukankan      html  css  js  c++  java
  • 团队代码规范、冲刺任务与计划

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020SPRINGS/
    这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020SPRINGS/homework/10699
    团队名称 知社
    这个作业的目标 团队代码规范、冲刺任务与计划
    作业正文 https://www.cnblogs.com/zhishe/p/12770963.html
    其他参考文献 阿里巴巴 Java 开发手册终极版 v1.3.0

    代码规范

    • 缩进

      缩进采用 4 个空格,禁止使用 tab 字符。

    • 变量命名

      • 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束

      • 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式

      • 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

        localValue
        getHttpMessage()
        inputUserId
        
      • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长

      • 中括号是数组类型的一部分,数组定义如下:String[] args

      • POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误

      • 杜绝完全不规范的缩写,避免望文不知义

    • 每行最多字符数

      单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:

      • 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进
      • 运算符与下文一起换行
      • 方法调用的点符号与下文一起换行
      • 在多个参数超长,逗号后进行换行
      • 在括号前不要换行
    • 函数最大行数

    • 函数、类命名

      • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式

      • 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / BO / DTO / VO

      • 抽象类命名使用 AbstractBase 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾

      • 如果使用到了设计模式,建议在类名中体现出具体模式

         public class OrderFactory;
         public class LoginProxy;
         public class ResourceObserver;
        
      • 接口和实现类的命名有两套规则

        • 【强制】 对于 ServiceDAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别
        • 【推荐】 如果是形容能力的接口名称,取对应的形容词做接口名(通常是 –able 的形式)
      • 枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开

      • 接口类中的方法和属性不要加任何修饰符号(public 也不要加),保持代码的简洁性,并加上有效的 Javadoc 注释。 尽量不要在接口里定义变量,如果一定要定义变量,肯定是与接口方法相关,并且是整个应用的基础常量。 (JDK8 中接口允许有默认实现,那么这个 default 方法,是对所有实现类都有价值的默认实现)

      • 各层命名规约:

        • Service/DAO
          

          层方法命名规约

          • 获取单个对象的方法用 get 做前缀
          • 获取多个对象的方法用 list 做前缀
          • 获取统计值的方法用 count 做前缀
          • 插入的方法用 save(推荐)或 insert 做前缀
          • 删除的方法用 remove(推荐)或 delete 做前缀
          • 修改的方法用 update 做前缀
        • 领域模型命名规约

          • 数据对象:xxxDO,xxx 即为数据表名
          • 数据传输对象:xxxDTO,xxx 为业务领域相关的名称
          • 展示对象:xxxVO,xxx 一般为网页名称
          • POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO
    • 常量

      • 不允许出现任何魔法值(即未经定义的常量)直接出现在代码中

      • long 或者 Long 初始赋值时,必须使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解

      • 不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护

      • 常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量

        • 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下
        • 应用内共享常量:放置在一方库的 modules 中的 constant 目录下
        • 子工程内部共享常量:即在当前子工程的 constant 目录下
        • 包内共享常量:即在当前包下单独的 constant 目录下
        • 类内共享常量:直接在类内部 private static final 定义
      • 如果变量值仅在一个范围内变化用 Enum 类。如果还带有名称之外的延伸属性,必须使用 Enum 类,如星期:

        public Enum {MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7);}
        
    • 空行规则

      方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间插入一个空行。

    • 注释规则

      • 类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /* 内容 / 格式,不得使用 //xxx 方式
      • 所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
      • 方法内部单行注释,在被注释语句上方另起一行,使用 // 注释。方法内部多行注释使用 / */
      • 所有的枚举类型字段必须要有注释,说明每个数据项的用途
      • 代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑等的修改
      • 注释掉的代码尽量要配合说明,而不是简单的注释掉(后续会恢复 / 永久不用)
      • 特殊注释标记,请注明标记人与标记时间。注意及时处理这些标记,通过标记扫描,经常清理此类标记
    • 操作符前后空格

      • if/for/while/switch/do 等保留字与左右括号之间都必须加空格
      • 任何运算符左右必须加一个空格。
    • 其他规则

      • 方法参数在定义和传入时,多个参数逗号后边必须加空格
      • IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不要使用 windows 格式

    冲刺任务与计划

    • 第一阶段:前后端各自根据 API 文档开发

      day task
      4.25 首页及接口
      4.26 社团管理及接口
      4.27 社团活动及接口
      4.28 各种申请及接口
      4.29 各种审核及接口
      4.30 社团公告及接口
      5.1 附件管理(文件、图片)
      5.2 权限管理
      5.3 code review
      5.4 refactor
    • 第二阶段:前后端接口联调

      day task
      5.5 测试用户、社团、申请接口
      5.6 测试活动、评论接口
      5.7 测试其余接口
    • 第三阶段:总结本阶段进度与计划下阶段任务

  • 相关阅读:
    两数之和等于目标值
    Atitit.软件仪表盘(0)--软件的子系统体系说明
    获取 exception 对象的字符串形式(接口服务返回给调用者)
    SELECT LAST_INSERT_ID() 的使用和注意事项
    @RequestParam 注解的使用
    Eclipse中修改SVN用户名和密码方法
    淘淘商城上传图片按钮不显示的问题
    spring集成webSocket实现服务端向前端推送消息
    Mybatis中jdbcType和javaType对应关系
    MySQL数据库中tinyint字段值为1,读取出来为true的问题
  • 原文地址:https://www.cnblogs.com/zhishe/p/12770963.html
Copyright © 2011-2022 走看看