烤盐人——团队作业六:代码规范
这个作业属于哪个课程 | <福州大学2021春软件工程实践S班> |
---|---|
这个作业要求在哪里 | <团队作业六——beta冲刺+事后诸葛亮> |
团队名称 | 烤盐人 |
这个作业的目标 | 制定代码规范 |
其他参考文献 | 团队开发前端VUE项目代码规范、vue风格指南、《阿里巴巴Java开发手册-2020最新嵩山版》 |
前端——Vue
规范目的
在团队编码过程中,统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致的代码
环境要求
- 使用 Visual Studio Code (VS Code) 进行代码编写
SRC目录规范
- api目录 (具体接口公开函数、jsonp)
- assets目录(放置样式和需要使用的图片)
- components目录 (基础组件:样式组件等 注意组件分类规范,可以在其下自建文件夹)
- router目录 (路由配置)
- store目录 (vuex的状态管理)
- utils目录 ( js工具类 、相关全局请求调用配置、axios配置)
- views目录 (vue页面)
HTML / Template 编码规范
- Tab缩进,四个空格,层次要求分明
2.不要省略可选的结束标签(closing tag)(如</li>
或</body>
)
CSS 编码规范
- 类名使用小写字母
- id 采用驼峰式命名
- 所有声明语句都应当以分号结尾
- 避免为 0 值指定单位,例如,用
margin: 0;
代替margin: 0px;
- 声明块的左花括号前添加一个空格
- 声明块的右花括号应当单独成行
- 每条样式声明应该独占一行
- 十六进制值应该全部小写,例如,
#f3f6fa
JavaScript 编码规范
- 标准变量采用驼峰式命名
- 常量全大写,用下划线连接
- 变量名不应过短,要能准确完整地描述该变量所表述的事物
组件开发规范
组件模板开发
- 尽可能语义化标签,使结构更加信息
- 大段功能模块都需要明确中文注释(要求简短明确)
- 模板语法中的逻辑尽可能在filters、computed、methods中处理
- Tab缩进,四个空格,层次要求分明
- 组件名应该始终是多个单词的
- 单文件组件的文件名应该要么始终是单词大写开头( PascalCase )
- 单文件组件应该总是按照
<template>
、<script>
和<style>
的标签顺序
组件样式开发
- 基本上处于scoped 私有域开发
注释规范
TEMPLATE结构内容注释
- 大区块之间需要回车换行,且有有单独的中文注释
SCRIPT注释
- 尽可能多用单行注释,注释需要与被注释的地方对齐
JS代码注释
采用下列模板,方便其他人阅读
/**
*@functionName: 函数名
*@param: 参数及参数名
*@description: 方法描述
*@author: 作者名
*@date: 编写时间
*@version:
*/
参考文档
后端——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
使用正则表达式需要预编译