老九门--团队作业五——代码规范、冲刺任务与计划
团队作业五——代码规范、冲刺任务与计划
这个作业属于哪个课程 | 2021春软件工程实践S班 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业目标 | 软工项目的基本实现 |
其他参考文献 | 百度、github、CSDN |
代码规范
后端代码规范
后端代码规范参考:阿里巴巴Java开发手册终极版v1.3.0
一、缩进
- 缩进采用4个空格,禁止使用tab字符。
二、变量命名
- 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
- 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
- 成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。
三、函数、类命名
- 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。
- 类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / BO / DTO / VO等。
- 异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。
四、包命名
- 包名必须全小写
五、常量命名
- 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
六、各层命名规约
-
DAO层命名规约(1-7为前缀):
- 单条插入:insert
- 多条插入:batchInsert
- 单条查询:selectOne
- 多条查询:selectList
- 更新:update
- 统计:count
- 删除:delete
- 根据XXX删改查:后缀byXXX
-
Service层命名规约(1-7为前缀):
- 单条插入:add
- 多条插入:batchAdd
- 单条查询:find
- 多条查询:findXXXList
- 更新:modify
- 统计:sum
- 删除:remove
- 根据XXX删改查:后缀byXXX
七、每行最多字符数
单行字符数限制不超过120个,超出需要换行,换行时遵循如下原则:
- 第二行相对第一行缩进 4个空格,从第三行开始,不再继续缩进。
- 运算符与下文一起换行。
- 方法调用的点符号与下文一起换行。
- 在多个参数超长,逗号后进行换行。
- 在括号前不要换行。
八、函数最大行数
- 函数的规模尽量限制在100行以内。
说明:不包括注释和空格行。
九、空行规则
- 相对独立的程序块之间、变量说明之后必须加空行。
说明 :
以下情况应该用空行分开:
1)函数之间应该用空行分开;
3)用空行将代码按照逻辑片断划分;
十、注释规则
- 类、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用// xxx 方式
- 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐。
十一、操作符前后空格
- 值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“ =”、“ +=”
“ >=”、“ <=”、“ +”、“ *”、“ %”、“ &&”、“ ||”、“ <<” 、“ ^” 等二元操作符的前后应当加空格。 - 一元操作符如“ !”、“ ~”、“ ++”、“ --”、“ &”( 地址运算符) 等前后不加空格。
- 像“[ ]”、“ .”、“ ->” 这类操作符前后不加空格。
- 左括号和后一个字符之间不出现空格;同样,右括号和前一个字符之间也不出现空格。
- if/for/while/switch/do等保留字与左右括号之间都必须加空格。
- 函数名之后不要留空格,紧跟左括号' ( ' ,以与关键字区别。
- 方法参数在定义和传入时,多个参数逗号后边必须加空格。
- ' , ' 之后要留空格。如果' ; ' 不是一行的结束符号 ,其后也要留空格。
十二、单元测试
- 单元测试应该是全自动执行的,并且非交互式的。测试框架通常是定期执行的,执行过程必须完全自动化才有意义。
输出结果需要人工检查的测试不是一个好的单元测试。单元测试中不准使用 System.out 来进行人肉验证,必须使用 assert 来验证。 - 单元测试代码必须写在如下工程目录:src/test/java,不允许写在业务代码目录下。
- 单元测试的基本目标:语句覆盖率达到 70%;核心模块的语句覆盖率和分支覆盖率都要达到 100%
十三、安全规约
- 未登录用户除了登录、修改密码的其他请求必须被拦截。
- 采用预编译防止 SQL 注入,禁止字符串拼接 SQL 访问数据库
- 用户请求传入的任何参数必须做有效性验证。
- 表单、AJAX 提交必须执行 CSRF 安全过滤。
- 对用户敏感数据进行处理。
十四、其他规约
- 大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;
如果是非空代码块则:左大括号和右大括号都单独占一行。 - 日期格式为:yyyy-MM-dd HH:mm:ss
例:2021-04-23 16:06:20
前端代码规范
前端代码规范参考:Vue.js风格指南
一、组件名为多个单词
组件名应该始终是多个单词的,根组件 App 以及
这样做可以避免跟现有的以及未来的 HTML 元素相冲突,因为所有的 HTML 元素名称都是单个单词的。
二、组件数据
组件的 data 必须是一个函数。
当在组件中使用 data property 的时候 (除了 new Vue外的任何地方),它的值必须是返回一个对象的函数。
三、Prop 定义必要
Prop 定义应该尽量详细,至少需要指定其类型。
四、为 v-for 设置键值
总是用 key 配合 v-for,以便维护内部组件及其子树的状态。甚至在元素上维护可预测的行为,比如动画中的对象固化 (object constancy),也是一种好的做法。
五、避免 v-if 和 v-for 用在一起
永远不要把 v-if 和 v-for 同时用在同一个元素上。
六、为组件样式设置作用域
对于应用来说,顶级 App 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。对于组件库,我们应该更倾向于选用基于 class 的策略而不是 scoped attribute。
七、私有 property 名
使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 $_ 前缀。并附带一个命名空间以回避和其它作者的冲突(比如 $yourPluginName)。
八、组件文件强烈推荐
只要有能够拼接文件的构建系统,就把每个组件单独分成文件。
九、单文件组件文件的大小写
单文件组件的文件名应该始终是单词大写开头 (PascalCase)。
十、基础组件名
应用特定样式和约定的基础组件 (也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如 Base、App 或 V。
十一、单例组件名
只应该拥有单个活跃实例的组件应该以 The 前缀命名,以示其唯一性。
十二、紧密耦合的组件名
和父组件紧密耦合的子组件应该以父组件名作为前缀命名。
十三、JS/JSX 中的组件名大小写
JS/JSX 中的组件名应该始终是 PascalCase 的
十四、Prop 名大小写强烈推荐
在声明 prop的时候,其命名应该始终使用 camelCase,而在模板和 JSX 中应该始终使用 kebab-case。
十五、多个 attribute 的元素
多个 attribute的元素应该分多行撰写,每个 attribute 一行。
在 JavaScript中,用多行分隔对象的多个 property 是很常见的最佳实践,因为这样更易读。模板和 JSX 值得我们做相同的考虑。
十六、带引号的 attribute 值强烈推荐
非空 HTML attribute值应该始终带引号 (单引号或双引号,选JS里不用的那个)。
十七、组件/实例选项中的空行
当你的组件开始觉得密集或难以阅读时,在多个 property 之间添加空行可以让其变得容易。在一些诸如 Vim 的编辑器里,这样格式化后的选项还能通过键盘被快速导航。
本次冲刺任务
基于之前的系统分析、数据库分析,实现项目的前期冲刺。在本次项目冲刺阶段,在前后端分离的基础上,通过分配前后端不同的任务及工作,每位组员在一定时间内分别完成自己分配到的任务及工作,同时十天时间内,每个成员描述自己从昨天站立式会议到现在的进展、存在的问题、遇到的困难、从现在到明天站立式会议的安排、心得体会项目计划。在5月14号前每位队员完成各自的功能,并且进行一定的整合和测试,从而达到本次项目的基本功能和基本实现。
阶段 | 时间 | 任务内容 |
---|---|---|
第一阶段 | 4.29 | 前后端分别按照自己的任务进行适当的自我学习,一起规定前后端代码规范,方便之后的开发 |
第二阶段 | 4.30~5.2 | 熟悉框架,编写大体架构,着手前期代码编写中,前端后端进行对应的编程工作 |
第三阶段 | 5.3~5.8 | 着手应用于代码编写中,前端后端进行对应的编程工作,同时对设计不足之处进行反馈和修改。前端需要将各自的页面和主要功能完成,其他人进行自己模块的准备工作 |
第四阶段 | 5.9~5.10 | “细节”开发。对于前面阶段完成整体的开发,在细节部分做好处理 |
第五阶段 | 5.11~5.12 | 进行单元测试,找出bug并修改。前后端接口连接,代码整合,测试,分别做白黑盒测试同时进行测试,找出bug并修改 |
第六阶段 | 5.13~5.14 | 进行最终完善并进行答辩PPT准备 |
本次冲刺计划
姓名 | 计划内容 |
---|---|
康伟泽 | 完成前端关于课程资源的页面 |
林明昊 | 完成后端关于学生管理,学科成绩,登录及修改密码,课程通知的部分 |
宋日荣 | 完成前端学生管理,登录及修改密码的页面 |
傅江峰 | 完成后端课程资源,课程作业的部分 |
李淇 | 完成前端课程作业的页面 |
陈鹏桢 | 完成后端答疑讨论,课程签到及课程小测的部分 |
张骁 | 完成前端课程签到,课程小测的页面 |
王冠儒 | 完成前端答疑讨论的页面 |
黄隽芊 | 完成随笔及文档,前端部分公共页面的部分内容,学科成绩和课程通知的页面 |