112
社区成员
发帖
与我相关
我的任务
分享| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 202501 福大-软件工程实践-w 班 |
| 这个作业要求在哪里 | 站立式会议+α 冲刺 |
| 这个作业的目标 | 规定代码规范+明确α冲刺目标+冲刺计划 |
1.1.1 导入规范
| 规则 | lint 别名 | 说明 |
|---|---|---|
| 导入顺序 | gci / goimports | 标准库 → 第三方库 → 本项目模块(github.com/west2-online) |
| 禁止别名滥用 | importas | 不得随意起别名,需与配置一致 |
| 禁止未使用导入 | unused / goimports | CI 直接报错 |
示例:
import (
"context"
"time"
"github.com/gin-gonic/gin"
"github.com/west2-online/domtok/internal/pkg/errno"
)
1.1.2 错误处理
| 规则 | 别名 | 说明 |
|---|---|---|
| 裸返回限制 | nakedret | 函数体 >31 行时禁止 naked return |
| 错误包装 | errorlint | fmt.Errorf 必须带 %w(Go 1.20+ 允许多个 %w) |
| 禁止返 nil 掩盖错误 | nilerr | 出现错误时不得返回 nil |
1.1.3 命名与拼写
| 规则 | 别名 | 说明 |
|---|---|---|
| 函数参数必须命名 | inamedparam | 禁止匿名参数 |
| 非 ASCII 字符 | asciicheck | 源码、注释、字符串均不得出现中文字符等 |
| 美式拼写 | misspell | colour → color 等 |
1.1.4 代码风格
| 规则 | 别名 | 说明 |
|---|---|---|
| 行长 | lll | 单字符行宽 ≤160(含 \t 算 1) |
| 魔法数字 | mnd | 除 0,1,42,0666,0755 外必须提常量 |
| 嵌套 if | nestif | 圈复杂度 >6 即报错 |
| 简化代码 | gosimple + gofmt -s | 自动简化 |
| 空行/空格 | whitespace | 禁止多余空行或行尾空格 |
1.1.5 类型与声明
| 规则 | 别名 | 说明 |
|---|---|---|
| 无用类型转换 | unconvert | 删除冗余转换 |
| 强制类型断言 | forcetypeassert | 必须带 ok 判断 |
| 声明顺序 | decorder | 按 const→var→type→func 分组 |
1.1.6 切片 & 循环
| 规则 | 别名 | 说明 |
|---|---|---|
| 切片初始化 | makezero | 禁止 make([]T,n) 且 n>0 |
| 闭包循环变量 | copyloopvar | 1.22 之前需手动赋值,1.22+ 可忽略 |
1.1.7 结构体标签
由 tagalign 自动对齐与排序,顺序:json > yaml/yml > toml > mapstructure > binding > validate
示例:
type User struct {
ID int64 `json:"id" mapstructure:"id" validate:"required"`
Name string `json:"name" mapstructure:"name" validate:"required"`
}
1.1.8 静态检查
启用 staticcheck 全规则,仅忽略 SA1019(使用废弃 API)。
1.1.9 自动修复
本地运行以下命令,可自动格式化并修复多数问题:
golangci-lint run --fix ./...
1.1.10 CI 门禁
Pull Request 必须 golangci-lint 0 警告 0 错误方可合并。
查看详细报告:GitHub → Actions → Lint → annotations。
1.2.1 导入规范
| 规则 | 检查工具 | 说明 |
|---|---|---|
| 导入顺序 | eslint-plugin-import | 第三方库 → 工具模块 → 组件 → 样式文件 |
| 路径别名 | alias | 使用配置的路径别名,禁止相对路径跳转 |
| 默认导入优先 | prefer-default-export | 单个导出必须使用默认导入 |
1.2.2 代码风格
| 规则 | 检查工具 | 说明 |
|---|---|---|
| 缩进 | @umijs/fabric | 2 个空格缩进 |
| 分号 | semi | 必须使用分号 |
| 引号 | quotes | 统一使用单引号,JSX 属性使用双引号 |
| 行宽 | max-len | 最大 120 字符 |
1.2.3 React 规范
| 规则 | 检查工具 | 说明 |
|---|---|---|
| 组件定义 | react/function-component-definition | 统一使用箭头函数组件 |
| Props 解构 | react/destructuring-assignment | 优先使用解构赋值 |
| Hooks 顺序 | react-hooks/rules-of-hooks | 保持 Hooks 调用顺序一致 |
| 依赖数组 | react-hooks/exhaustive-deps | useEffect 依赖项必须完整 |
1.2.4 命名规范
| 类型 | 规则 | 示例 |
|---|---|---|
| 组件 | PascalCase | UserCard |
| 文件 | kebab-case | user-card.tsx |
| 变量 | camelCase | userList |
| 常量 | UPPER_SNAKE_CASE | API_BASE_URL |
| 样式类 | kebab-case | .user-avatar |
1.2.5 TypeScript 规范
| 规则 | 检查工具 | 说明 |
|---|---|---|
| 类型定义 | @typescript-eslint | 优先使用 interface 定义对象类型 |
| 显式返回类型 | explicit-function-return-type | 公共函数必须声明返回类型 |
| 禁止 any | no-explicit-any | 严格限制 any 类型使用 |
1.2.6 状态管理
| 规则 | 检查工具 | 说明 |
|---|---|---|
| 不可变更新 | immer | 使用 immer 或展开运算符 |
| 状态归一化 | - | 复杂状态需要归一化处理 |
| Selector 复用 | reselect | 使用 createSelector 优化计算 |
1.2.7 CSS 规范
| 规则 | 检查工具 | 说明 |
|---|---|---|
| 命名规范 | stylelint | BEM 命名规范 |
| 样式顺序 | stylelint-order | 定位 → 盒模型 → 文字 → 视觉 |
| 禁止魔法值 | stylelint-declaration-strict-value | 颜色、尺寸必须使用设计令牌 |
2.1.1 用户与认证模块
*用户注册与登录
*修改邮箱、(重置)密码、专业
*更新 AccessToken
*获取邮箱验证码
2.1.2 课程模块
*搜索课程
*获取课程详情 *获取课程资源列表
2.1.3 资源模块
*搜索资源
*上传、下载课程资源 *获取资源信息
2.1.4 评分与评论模块
*获取课程评论列表
*删除课程评分、评价
*获取资源评论列表
*删除资源评分、评价
| 时间周期 | 核心任务 | 具体分解 |
|---|---|---|
| Day 0 | 代码规范与任务规划 | 1. 团队共同制定前端(Vue3)/后端(Java)代码规范 2. 明确 α 冲刺目标功能清单 3. 制定 6 天冲刺计划表 4. 分配成员任务 |
| Day 1-3 | 每日迭代开发 | 1. 晨会 (15 分钟):昨日进展演示、阻塞问题同步、当日任务认领 2. 开发 :前端页面开发(登录/注册/核心功能界面)后端接口开发(RESTful API+数据库设计)AI 技术员辅助(代码生成/测试用例生成) 3. 测试 :单元测试、自动化测试脚本 4. 文档 :每日燃尽图更新代码签入记录(Git 提交规范) |
| Day 4-5 | 自动化测试 | 1. 使用 AI 工具生成测试用例 2. 性能测试 3. 用户验收测试 |
| Day 6 | 成果复盘 | 1. 功能完成度核对(计划 vs 实际) 2. 成员工作量统计(代码行数/文档页数) 3. AI 技术员贡献分析(效率提升指标) 4. 答辩 PPT 制作 |
| 学号 | 工作内容 |
|---|---|
| 102300219 林腾岳 | 技术选型、拆解任务、把控进度、解决复杂问题 |
| 102300409 严晨峰 | 基于后端技术栈开发接口与数据库逻辑,保障功能稳定 |
| 052301346 郑积超 | 基于后端技术栈开发接口与数据库逻辑,保障功能稳定 |
| 102300325 陶斯予 | 设计产品原型,统筹项目进度与各角色协作 |
| 102300233 朱奕韬 | 技术选型、拆解任务、把控进度、解决复杂问题 |
| 102300226 徐江山 | 基于前端技术栈实现页面开发,保障界面交互流畅 |
| 102300218 林柏林 | 基于前端技术栈实现页面开发,保障界面交互流畅 |
| 102300033 林嘉乐 | 环境配置、测试用例、执行测试,汇报展示的 PPT |
分工应更具体,任务要明确责任到人。