烤盐人——团队作业六:代码规范

这个作业属于哪个课程 <福州大学2021春软件工程实践S班>
这个作业要求在哪里 <团队作业六——beta冲刺+事后诸葛亮>
团队名称 烤盐人
这个作业的目标 制定代码规范
其他参考文献 团队开发前端VUE项目代码规范vue风格指南、《阿里巴巴Java开发手册-2020最新嵩山版》

前端——Vue

规范目的

在团队编码过程中,统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致的代码

环境要求

  1. 使用 Visual Studio Code (VS Code) 进行代码编写

SRC目录规范

  1. api目录 (具体接口公开函数、jsonp)
  2. assets目录(放置样式和需要使用的图片)
  3. components目录 (基础组件:样式组件等 注意组件分类规范,可以在其下自建文件夹)
  4. router目录 (路由配置)
  5. store目录 (vuex的状态管理)
  6. utils目录 ( js工具类 、相关全局请求调用配置、axios配置)
  7. views目录 (vue页面)

HTML / Template 编码规范

  1. Tab缩进,四个空格,层次要求分明
    2.不要省略可选的结束标签(closing tag)(如</li></body>

CSS 编码规范

  1. 类名使用小写字母
  2. id 采用驼峰式命名
  3. 所有声明语句都应当以分号结尾
  4. 避免为 0 值指定单位,例如,用 margin: 0; 代替 margin: 0px;
  5. 声明块的左花括号前添加一个空格
  6. 声明块的右花括号应当单独成行
  7. 每条样式声明应该独占一行
  8. 十六进制值应该全部小写,例如,#f3f6fa

JavaScript 编码规范

  1. 标准变量采用驼峰式命名
  2. 常量全大写,用下划线连接
  3. 变量名不应过短,要能准确完整地描述该变量所表述的事物

组件开发规范

组件模板开发

  1. 尽可能语义化标签,使结构更加信息
  2. 大段功能模块都需要明确中文注释(要求简短明确)
  3. 模板语法中的逻辑尽可能在filters、computed、methods中处理
  4. Tab缩进,四个空格,层次要求分明
  5. 组件名应该始终是多个单词的
  6. 单文件组件的文件名应该要么始终是单词大写开头( PascalCase )
  7. 单文件组件应该总是按照 <template><script><style> 的标签顺序

组件样式开发

  1. 基本上处于scoped 私有域开发

注释规范

TEMPLATE结构内容注释

  1. 大区块之间需要回车换行,且有有单独的中文注释

SCRIPT注释

  1. 尽可能多用单行注释,注释需要与被注释的地方对齐

JS代码注释

采用下列模板,方便其他人阅读

/**
 *@functionName: 函数名 
 *@param:  参数及参数名
 *@description: 方法描述
 *@author: 作者名 
 *@date: 编写时间
 *@version: 
*/

参考文档

团队开发前端VUE项目代码规范
vue风格指南

后端——Springboot

参考

此代码规范参考《阿里巴巴Java开发手册-2020最新嵩山版》

缩进

每行的缩进标准为4个空格符

变量命名

变量命名采用lowerCamelCase风格,对于常用的一些单词可以适当缩写
例如:wordNum、nowTime、year、i、temp

每行最多字符数

每行最多字符数为120个,超出120个需要换行,换行规则如下:
运算符与下文一起换行
函数参数在逗号后面换行
括号前面不换行

函数最大行数

函数的最大行数为100

函数、类命名

函数的命名规则为lowerCamelCase风格,例如:getName、setName
类的命名规则为UpperCamelCase风格,例如:FileException、User

常量

常量的命名为全英文大写,以下划线分隔单词,例如:MAX_STOCK_COUNT、CPU_COUNT

空行规则

函数、类之间用空行隔开
函数中在函数体比较大的时候可以考虑在函数中添加适当换行
换行一般为一行

注释规则

总述

注释使用中文,仅在必要的地方添加注释,不需要在每一个地方添加注释

类注释

采用javadoc规范,其中必需的为类的描述、作者、类建立时间

函数注释

采用javadoc规范,其中必需的为功能描述、输入参数说明、返回值说明
注:公有方法必需有注释(get、set、toString等常用方法除外),私有方法不一定有注释

函数内部注释

一般为使用//的单行注释,注释的位置在代码的右边或者上方

特殊注释标记

TODO:待办事项,标记事项内容、标记人、标记时间
FIXME:标记这段代码有错误,标记错误说明、标记人、标记时间

操作符前后空格

二目、三目操作符前后均添加一个空格

日期格式

所有的日期均格式化为:"yyyy-MM-dd HH:mm:ss",统一为 GMT

前后端规约

前后端交互的 API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响
应体
前后端数据列表相关的接口返回,如果为空,则返回空数组[]或空集合{}
在翻页场景中,用户输入参数的小于 1,则前端返回第一页参数给后端
后端发现用户输入的参数大于总页数,直接返回最后一页
服务端返回的数据,使用 JSON 格式而非 XML
前后端的时间格式统一为"yyyy-MM-dd HH:mm:ss",统一为 GMT

异常规约

所有需要反馈给前端的异常信息必须写在ExceptionInfo枚举类里
异常信息必须包括异常码和异常说明
使用过程中如果遇到需要返回给前端的异常直接抛出即可
将try中资源关闭的方法放在finally中执行,避免因为异常导致资源无法释放
如果函数可能返回null,需要在注释中说明什么情况下回返回null

单元测试规约

使用Junit5进行单元测试
所有的单元测试必须是全自动的,即必须使用assert判断结果
所有的单元测试必须具有可重复性,不能依赖外部条件
语句覆盖率需达到70%

安全规约

所有来自外部的数据必须进行合法性检验
返回的数据如果有敏感数据,必须处理后再返回
邮件、下单、电话、支付等必须实现防重放机制

其他规则

字符串拼接或者字符串大量改动使用StringBuilder类
使用集合,在初始化时尽可能指定一个初始大小
并发操作中优先考虑是否使用线程池
switch的语句块中必须有default
使用正则表达式需要预编译

posted @ 2021-06-05 21:27  烤盐人  阅读(75)  评论(4编辑  收藏  举报