1. 项目背景与目标
山东大学软件学院创新实训项目是该院面向高年级本科生开设的实践性课程,旨在通过真实项目开发培养学生的工程实践能力和创新思维。作为系列记录的第一篇,本文将重点分享我们在项目启动阶段的关键决策和技术路线规划。
这类实训通常持续8-12周,学生需要组队完成从需求分析到产品上线的全流程开发。与普通课程设计不同,创新实训更强调技术的前沿性和方案的创新性,要求团队在有限时间内交付可演示的完整作品。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 团队组建与角色分工
2.1 成员能力评估
我们团队由5名大三学生组成,在组队时特别注意了技能互补性:
- 2名后端开发(Java/Python)
- 1名前端开发(Vue/React)
- 1名移动端开发(Android)
- 1名算法方向(机器学习)
2.2 敏捷开发流程设计
采用Scrum方法进行项目管理:
- 每周2次站会(周一/周四上午)
- 使用Jira进行任务追踪
- 代码托管在GitLab,采用Git Flow分支策略
- 持续集成使用Jenkins pipeline
经验分享:在首次站会时就要明确每个人的发言模板(昨日进展/今日计划/阻塞问题),这能显著提升会议效率。
3. 技术选型与架构设计
3.1 技术栈决策过程
经过3次技术论证会,我们最终确定的技术方案:
| 模块 | 技术选型 | 选择理由 |
|---|---|---|
| 前端 | Vue3 + TypeScript | 学院课程覆盖+社区生态丰富 |
| 后端 | Spring Boot | 团队成员已有项目经验 |
| 数据库 | MySQL 8.0 | 事务支持完善,运维简单 |
| 缓存 | Redis | 应对预期的高并发场景 |
| 消息队列 | RabbitMQ | 异步任务解耦需求 |
3.2 微服务架构设计
考虑到功能的可扩展性,我们采用领域驱动设计(DDD)划分服务边界:
code复制用户中心服务
└── 权限管理
└── 个人资料
内容服务
└── 核心业务逻辑
└── 审核流程
通知服务
└── 站内信
└── 邮件推送
4. 开发环境搭建实战
4.1 标准化开发环境
统一团队开发环境配置:
- JDK17 + IntelliJ IDEA(后端)
- Node.js 18 + VSCode(前端)
- Docker Desktop(容器化部署)
- Postman + Swagger(API调试)
4.2 基础设施即代码
使用Terraform管理云资源:
hcl复制resource "alicloud_instance" "app" {
instance_type = "ecs.n4.large"
image_id = "centos_7_9_x64_20G_alibase_20220727.vhd"
vswitch_id = alicloud_vswitch.main.id
}
5. 质量保障体系
5.1 自动化测试策略
构建三层测试防护网:
- 单元测试(JUnit5 + Jest)覆盖率>80%
- API测试(Postman Collection)
- E2E测试(Cypress)
5.2 代码质量门禁
配置GitLab CI流水线,在合并请求时自动执行:
- SonarQube静态扫描(0严重漏洞)
- 单元测试通过率100%
- 代码风格检查(Checkstyle)
6. 典型问题解决方案
6.1 跨域问题处理
前端开发初期遇到的典型跨域问题,最终解决方案:
java复制@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*");
}
}
6.2 数据库连接池优化
在高并发测试时发现的连接泄漏问题:
- 使用Druid监控SQL执行
- 配置合理的连接参数:
yaml复制spring:
datasource:
druid:
initial-size: 5
max-active: 20
min-idle: 5
7. 项目进度与成果
目前已完成:
- [x] 需求规格说明书(SRS)
- [x] 系统架构设计文档
- [x] 核心模块原型开发
- [ ] 压力测试报告
在开发过程中我们深刻体会到:文档的实时更新比完整更重要,建议使用Markdown编写并存放在代码仓库docs目录,与代码变更同步提交。
