做业要求
团队阵容
任务与计划安排
第一天 |
代码规范制定,项目先后端各自基础构建,选定框架、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代码规范
文件名所有使用小写字母,相邻单词之间使用“_"链接javascript
代码段之间使用4个空格缩进,代码段使用{}括起来css
变量使用小写字母表示,相邻单词之间使用“-”分隔html
变量,表达式之间使用空格分开,常量使用大写字母表示前端
段注释使用/**/表示java
行注释使用//表示node
系统设计和数据库设计问题解答
团队成员的贡献度如何存储?
贡献度字段在用户得分表里面存储,每次做业的得分当作一条记录。
做业发布后是否可编辑?
能够实时编辑并存储。
如何防止学生修改为绩?
只有拥有班级权限的老师角色才拥有修改为绩的权限。
系统设计书内容欠缺?
相关内容已增长。
二次评分,好比手误操做如何验证?
老师能够对学生成绩进行屡次修改。