项目Alpha冲刺——代码规范、冲刺任务与计划

时间:2023-05-31 10:01:02

作业要求

这个作业属于哪个课程 软件工程1916-W(福州大学)
这个作业要求在哪里 项目Alpha冲刺
团队名称 基于云的胜利冲锋队
项目名称 云评:高校学生成绩综合评估及可视化分析平台
这个作业的目标 团队的代码规范、本次冲刺任务与计划
其他参考文献 1.邹欣.构建之法[M].3版:人民邮电出版社,2014.

团队阵容

队员学号 队员姓名 个人博客地址 备注
221500201 孙文慈 https://www.cnblogs.com/swc221500201/
131601207 陈序展 https://www.cnblogs.com/chenxuzhan/
221600414 冯凯 https://www.cnblogs.com/codingkai/ 队长
221600415 傅德泉 https://www.cnblogs.com/dqblog/
221600416 黄海山 https://www.cnblogs.com/hhs-blog/
221600417 黄乐兴 https://www.cnblogs.com/hlxing/
221600439 <script> https://www.cnblogs.com/aaaaaaaaaaaaaa/

任务与计划安排

天数 任务安排
第一天 代码规范制定,项目前后端各自基础构建,选定框架、UI库
第二天 熟悉框架、UI库,编写大体架构,数据库建库建表
第三天 熟悉框架和库,统一开发流程,后端 PO 模型
第四天 编写API文档,完成注册页面,编写登录,注册接口
第五天 完成登录页面,编写教师评分维度管理接口
第六天 完成新建评分维度页面,编写教师新建班级接口
第七天 完成教师新建班级页面,编写教师编辑班级接口
第八天 完成教师编辑班级页面,编写学生及助教加入班级功能接口
第九天 完成学生及助教加入班级页面,测试接口安全性,校验接口是否完成需求
第十天 Alpha版本程序的测试与交付

代码规范

后端

代码格式

  • 缩进以4个空格为单位,禁止使用 tab 字符
  • 大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块则:
    • 左大括号前不换行
    • 左大括号后换行
    • 右大括号前换行
    • 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行
  • 尽量避免一行的长度超过80个字符
  • 当一个表达式无法容纳在一行内时,可在一个逗号后面断开或在一个操作符前面断开
  • 新的一行应该与上一行同一级别表达式的开头处对齐
  • 将类似操作,或一组操作放在一起不用空行隔开,而用空行隔开不同组的代码
  • 方法参数在定义和传入时,多个参数逗号后边必须加空格
  • if/for/while/switch/do 等保留字与括号之间都必须加空格

命名风格

  • 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束
  • 法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式
  • 常量命名全部大写,单词间用下划线隔开
  • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式
  • 类名每个单词必须由大写字母开头而其他字母都小写的单词组成
  • 任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意
  • 数组应该用下面的方式来命名
byte[] buffer;
  • 不用数字定义名字
  • 枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开
  • POJO 类中布尔类型的变量,都不要加 is 前缀

常量定义

  • 不允许任何魔法值(即未经预先定义的常量)直接出现在代码中
  • 如果变量值仅在一个固定范围内变化用 enum 类型来定义

注释规约

  • 类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用// xxx 方式
  • 所有的类都必须添加创建者和创建日期
  • 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐
  • 代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑等的修改

控制语句

  • 在 if/else/for/while/do 语句中必须使用大括号。即使只有一行代码,避免采用单行的编码方式:if (condition) statements;
  • 避免采用取反逻辑运算符

领域设计规范

  • 服务类基于业务领域模块划分,划分原则可以与业务表对应
  • 尽量减少表连接,杜绝两个业务领域的表连接
  • 禁止大表连接(超过100w数据)
  • 禁止在SQL语句中使用1=1
  • 禁止批量数据用in关键词分组排序,即在In条件复杂查询语句
  • 更新操作条件必须有索引,通过explain确认执行计划走索引,尽量使用pk主键
  • 查询条件必须走索引
  • 原则上不允许应用使用delete语句,如有需要,必须记log,经过团队评审
  • 实体类与数据库表对应,api接口下的实体与dao层不一致,dao层实体命名为XxxEntity,防止修改内部实体类影响接口稳定性。

数据库设计规范

  • 禁止删除字段
  • 禁止更新字段名称,类型,减少长度;可以修改增加字段长度或备注
  • 数据库脚本支持提前上线,否则会影响热发布或者灰度发布
  • 每个领域实体表必须有一个领域主键驱动,便于信息查询
  • 查询结果按需读取,防止因字段过大造成数据传输开销
  • SQL命名准确,功能要单一,不能包含多种含义功能,维护会更复杂
  • 命名使用下划线命名,统一小写

前端

文件组织结构

  • 所有前端代码、插件、配置文件和资源都放在项目的根目录下
  • 所有外部模块和插件都放在/node_modules目录下
  • 主页icon和index.html放在/public目录下
  • 所有编写的组件、资源文件以及main.js都放在/src目录下
  • 所有静态资源文件放在/src/assets目录下
  • 所有Vue组件放在/src/components目录下
  • README.md放在项目的根目录下,提供项目的配置安装指南

HTML代码规范

  • 文件名全部使用小写字母,相邻单词之间使用“_"连接
  • 所有标签名必须小写,并且要有正确的关闭标签
  • 相邻标签之间用4个空格缩进
  • 标签名中相邻单词之间用“-”分隔
  • 标签属性名全部小写,value用“”括起来
  • HTML的语言属性统一设置为zh-cn

CSS代码规范

  • 文件名全部使用小写字母,相邻单词之间使用“_"连接
  • 类选择器和id选择器要合理使用
  • 类名和id名全部使用小写字符,相邻单词之间用“-”分隔
  • 为避免css样式的冗余,尽量将共同的样式提取到同一个选择器中
  • 仅当前组件的style样式使用“scoped”加以范围说明

JavaScript代码规范

  • 文件名全部使用小写字母,相邻单词之间使用“_"连接

  • 代码段之间使用4个空格缩进,代码段使用{}括起来

  • 变量使用小写字母表示,相邻单词之间使用“-”分隔

  • 变量,表达式之间使用空格分开,常量使用大写字母表示

  • 段注释使用/**/表示

  • 行注释使用//表示

系统设计和数据库设计问题解答

团队成员的贡献度如何存储?

贡献度字段在用户得分表里面存储,每次作业的得分当做一条记录。

作业发布后是否可编辑?

可以实时编辑并存储。

如何防止学生修改成绩?

只有拥有班级权限的老师角色才拥有修改成绩的权限。

系统设计书内容欠缺?

相关内容已增加。

二次评分,比如手误操作如何验证?

老师可以对学生成绩进行多次修改。