alpha冲刺—冲刺计划&代码规范
一、Alpha冲刺任务
1、前端部分
- 界面顶栏、侧栏html+css+js
- 完成用户相关功能模块界面html+css+js
- 完成文件管理功能模块界面html+css+js
- 完成日程安排功能模块界面:日程列表,添加日程html+css+js
- 完成任务面板界面:待处理、进行中、已完成任务列表、任务详情html+css+js
- 完成项目群聊界面html+css+js
2、后端部分
-
后端数据模型
-
用户功能模块接口——用户注册、用户登录、查看用户信息、用户注销
-
项目基础功能模块接口——新建项目任务,查看项目,查看项目成员,添加/移除项目管理员等
-
项目任务功能模块接口——查看项目任务
-
接口文档撰写
3、服务器部署
4、杂项
- 文档撰写
- 代码规范与定义
- 博客撰写
- 每日会议总结
具体日程安排
时间区间 | 任务内容 |
---|---|
4.27 | 进行项目环境配置、项目启动会议 |
4.27-4.30 | 各模块功能工作初期 |
4.30-5.3 | 各模块任务大体完成,有基本功能实现 |
5.4-5.6 | 功能模块优化、深入测试 |
二、Alpha冲刺具体分工
人员 | 分工 | 具体描述 |
---|---|---|
021700511 | 后端 | 自动化部署;用户模块接口实现;项目基础模块接口实现;项目任务模块接口实现;项目文件模块接口实现;项目群聊模块接口实现 |
061700150 | 前端 | 文件管理功能界面完成html+css+js交互;群组聊天js;日程安排js;任务面板js;菜单栏、顶栏js交互; |
071703434 | 测试 | 项目基础模块测试用例设计;项目任务模块测试用例设计;项目文件模块测试用例设计;项目群聊模块接口测试用例设计 |
081700316 | 后端 | 完成后端数据模型 |
221600208 | 文档撰写记录 | 每日会议文档记录,发布冲刺日志 |
221701103 | 前端 | 任务面板界面html+css;任务创建界面;任务详情界面;日程安排html+css |
221701201 | 前端 | 界面左侧菜单栏html+css;界面顶栏与登录界面html+css;群组聊天html+css; |
三、代码规范
前端
- 缩进 每次缩进3个空格
data.forEach((line) => { var res = [] function match(reg, hasTwoPvovinces) { //匹配正则,清洗数据以及初始化 if (/\/\//.test(line)) return false
Object类型的初始化可以并排
const CmdParam = { //存放命令参数 log: [], out: [], date: [], type: [], province: [], }
- 变量命名
驼峰命名var reading = '', article = '', argv = process.argv.slice(2), cmd = argv.join(' ')
- 每行最多字符数
100个字符,以确保显示屏能在宽度上容纳两个文本框为准- 函数最大行数
以实现一个粒度合适的基准功能区分,限定数量的话一般不超过40- 函数、类命名
驼峰命名function appendData(date) { var fileName = CmdParam.log[0] + date + '.log.txt'
- 常量
外部引入(require)的变量全部小写
数据型常量全部大写
引用型常量首字母大写const fs = require('fs') const readline = require('readline') //读写文件的自带库 const prior = require('./Lib.js') const MONTH = [0, 31, 28, 30, 51, 30, 31, 31, 30, 31, 30, 31] //月份常量 const Provinces = new Set() //存放省份的集合 const Total = { //存放统计数据 ip: {}, sp: {}, dead: {}, cure: {}, } const CmdParam = { //存放命令参数 log: [], out: [], date: [], type: [], province: [], }
- 空行规则
无- 注释规则
行内,空格加斜杠if (!fs.existsSync(fileName)) return //如果没有对应日期的文件,就忽略 var data = fs.readFileSync(fileName, 'utf-8') //效率非常低的同步读取
块级注释
/* ... ... */
- 操作符前后空格 逗号后只有一个空格
const CmdParam = { //存放命令参数 log: [], out: [], date: [], type: [], province: [], }
操作符间均有1个空格
var fileName = CmdParam.log[0] + date + '.log.txt'
- 其他规则
匿名函数process.on('uncaughtException', (e) => { console.error('错误:', e.message) })
后端
Python的代码风格基本按照PEP8的要求进行编写
缩进
每一级缩进使用4个空格。
def func(): if 1 != 2: pass
续行若第一行有参数则应该与其第一行参数对齐
s = func(var_one, var_two, var_three, var_four)
若无应该则增加缩进以区别其他行
s = func( var_one, var_two, var_three, var_four) def func2( var_1, var_2, var_3, var_4): print(var_1, var_2, var_3, var_4)
变量命名
小写字母加下划线分隔, 可用单个小写字母。
num_list = [2, 3, 4 , 5, 6] max_num = num_list[0] max_index = 0 for i in range(len(num_list)): if num_list[i] > max_num: max_num = num_list[i] max_index = i print(max_index, max_num)
每行最多字符数
一般情况下,每行字符数不超过80个字符,以屏幕大小可做一些调整。
函数最大行数
除一些定义外,函数的具体执行语句一般不超过20行。
函数、类命名
类名为大写字母开头的驼峰命名法, 一般情况下只使用一个单词
函数名则与变量命名方法相同
常量
全大写字母加下划线分隔
MAX_TIMES = 20
空行规则
函数和类的定义:前后用两个空行隔开
类的方法:前后用一个空行隔开
相关的功能组可以用额外的一个空行隔开
import re def func1(): pass def func2(): pass class Class1(): def __init__(self): pass def func3(self): pass def func4(): pass if __name__ == "__main__": pass
注释规则
行内注释
对某一行的内容注释。
注释与代码之间至少两个空格, 注释以#和一个空格开始。
s = s + 1 if not isinstance(s, int) else 0 # 若s不是数字则设为0
块注释
对某一块内容(如函数定义,或一段无空行的代码)注释
注释缩进与内容相同,注释与内容之间无空行, 注释以#和一个空格开始。
# 处理字符串s的函数 def fun_s(s): pass
操作符前后空格
各种括号后, 逗号、冒号前, 函数参数括号前, 索引括号前不接空格
逗号后接一个空格
list_1 = ['a', 'b', 'c', 'd', 'e'] print(list_1[1:3])
二元运算符及赋值语句的符号前后空格数相同,一般为一个空格。
参数及函数默认值'='前后不加空格
def sum(num1, num2, num3=0, num4=4): result = num1 + num2 + num3 + num4 print(result) func(1, 2, num4=2)
其他规则
导入 不同模块应当分开导入
import os import sys
而不是
import os, sys
同一模块下的不同部分可一起导入
from flask import Flask, request