当前位置: 首页 > news >正文

写的都队2025秋软工实践团队总结

写的都队2025秋软工实践团队总结

智旅同行,共筑未来 - TravelMate智能旅游助手项目全纪录

历时数月的软件工程项目已圆满落幕,回望这段充满挑战与成长的协作时光,写的都队团队的每位成员都收获了宝贵的经验与深厚的团队情谊。

image.png

image.png

image.png

image.png

image.png

部署说明

环境准备

1. 系统环境

  • Python 3.9+
  • jdk 25+

2. 数据库环境

  • mysql 8.0.27+
  • redis 8.0.3+

3.构建工具

  • maven 3.9.9+
  • npm 10.8.1

部署步骤

1. 安装依赖

1.1 安装 Python 依赖

pip install openai

1.2 安装 Java 依赖

cd zeyuli/zeyuli-job
mvn clean package

1.3 安装 npm 依赖

cd zeyuli/front
npm install

1.4 初始化数据库

见script.sql

2.修改配置

2.1 yaml配置

cd zeyuli/zeyuli-job/src/main/resources# 修改 application.yaml 启用开发环境
# 将 spring.profiles.active: prod,修改为 spring.profiles.active: dev
vim application.yaml# 修改 application-prod.yaml 修改数据库配置
# 将 spring.datasource.url: jdbc:mysql://localhost:3306/homework2?useSSL=false
# 将 spring.datasource.username: root 修改为你的数据库用户名
# 将 spring.datasource.password: root 修改为你的数据库密码
# 将spring.data.redis: localhost 修改为你的redis地址
# 修改ai.script.path: /path/to/your/script.py 修改为你的脚本路径
vim application-dev.yaml# 修改 python脚本的api-key# 修改api-key
# api_key=os.getenv("DEEPSeek_API_KEY", "your_api_key")
vim path/to/your/script.py

3.打包

# 前端项目打包
cd zeyuli/front
npm install
npm run build# 将dist目录下的所有文件拷贝到静态资源目录下
cp -r dist/* zeyuli/zeyuli-job/src/main/resources/static# 后端项目打包
cd zeyuli/zeyuli-job
mvn clean package spring-boot:repackage -DskipTests

4.启动相关服务

# 启动redis
sudo systemctl start redis# 启动mysql
sudo service mysql start

5.启动项目

cd zeyuli/zeyuli-job/target# 启动后端项目
nohup java -jar zeyuli/zeyuli-job/target/zeyuli-job-0.0.1-SNAPSHOT.jar > zeyuli.log 2>&1 &

一、每个组员的学期回顾

102301215张蔡涵:102301215张蔡涵学期回顾 - 张蔡涵 - 博客园

102301209周士豪:https://www.cnblogs.com/kkk4/p/19417884

102301310郑显喆:https://www.cnblogs.com/zxz310/p/19417888

102301210郑烨:https://www.cnblogs.com/sgrcaii/p/19417904

102301218许有幸:https://www.cnblogs.com/102301218xyx/p/19417924

102301239黄明杰:https://www.cnblogs.com/moyulao/p/19417952

102301237李泽聿:https://www.cnblogs.com/murphy-955/p/19388840

102301241冯德衍:https://www.cnblogs.com/feng0913/p/19417981

……

二、项目缘起:从需求碰撞到架构共识

我们的旅程始于一次关于"智能旅游"的头脑风暴。在最初的需求分析阶段,团队成员们各抒己见:有人关注AI技术的创新应用,有人重视学生群体的特殊需求,有人则强调用户体验的流畅性。经过多轮激烈的讨论与多轮用户调研,我们最终确定了TravelMate智能旅游助手的核心定位:一个集AI行程规划、实时纠错与学生专属线路库于一体的智能化旅游平台。

作为项目经理兼前端负责人,我深刻记得那些深夜的线上会议。我们用Figma绘制原型,用用户故事地图梳理功能点,逐渐将模糊的构想转化为清晰的产品蓝图。这个过程让我们明白:好的开始不是消除分歧,而是在分歧中找到共识

三、开发历程:前后端协作的艺术

进入开发阶段,我们采用了敏捷开发模式,以两周为一个迭代周期。每个迭代都包含规划、编码、测试和评审四个环节。在这个阶段,我们遇到了诸多挑战:

1. 技术栈的抉择

前端团队基于Vue3+TypeScript构建响应式界面,后端团队采用SpringBoot提供API支持。在选择技术方案时,我们经历了多次技术评审:要不要用微服务?是否引入WebSocket实时通信?最终我们根据项目规模和团队能力,选择了"适度超前,稳定优先"的原则。

2. 接口设计的博弈

前后端接口设计是最考验团队协作的环节。我们曾因一个API的返回值格式争论不休,也曾因数据同步的时机选择而反复讨论。最终,我们建立了一套接口先行的协作机制:先定义接口契约,再并行开发,通过Mock数据模拟交互,显著提升了开发效率。

3. 复杂功能的攻坚

AI行程规划模块是我们遇到的第一个技术难关。从最初调用基础API,到后来的多模态数据融合处理,再到最终实现的智能纠错算法,每一步都凝聚了团队成员的心血。特别是当AI推荐结果出现偏差时,后端算法优化与前端交互优化的同步调整,让我们深刻理解了全栈思维的重要性。

四、团队协作:从"各自为战"到"默契配合"

项目初期,我们曾天真地认为"各司其职"就是最高效的工作模式。然而现实很快给了我们教训:

1. 代码规范的统一

最初的几次代码合并堪称"灾难":不同的命名习惯、迥异的代码风格、冲突的依赖版本...这迫使我们迅速建立团队编码规范,配置统一的ESLint规则,引入Husky进行提交前检查,并坚持Code Review文化。两周后,团队的代码质量显著提升,协作成本大幅降低。

2. 沟通机制的优化

我们曾因需求理解偏差而返工,也曾因信息不同步而重复劳动。为此,我们建立了多维度的沟通机制:

  • 每日站会:15分钟同步进度与阻塞问题
  • 周度评审:演示功能成果,收集反馈
  • 技术分享会:每周一位成员分享技术心得
  • 透明化看板:所有任务状态可视化,责任到人

3. 紧急问题的应对

项目中期,距离演示还有三天,我们突然发现一个核心路由存在严重性能问题。那一刻没有指责,只有默契的分工:前端优化渲染逻辑,后端排查数据库查询,测试团队紧急制定回滚方案。连续48小时的奋战后,我们不仅解决了问题,还增加了性能监控机制。这次经历让我们真正理解了团队精神的含义:不是顺境时的互捧,而是困境中的互撑。

五、收获与成长:软工实践的真正价值

技术能力的跃升

  • 前端团队:掌握了Vue3组合式API、TypeScript类型系统、前端工程化配置等现代前端开发技能
  • 后端团队:深入理解了SpringBoot微服务设计、Redis缓存策略、API安全机制等后端核心知识
  • 全体成员:体验了从本地开发到云服务器部署的完整DevOps流程

软技能的提升

  • 项目管理:学会了使用敏捷方法管理中小型软件项目,掌握了风险识别与应对策略
  • 团队协作:理解了如何在不同角色间建立高效的协作模式,如何在技术决策中平衡各方意见
  • 沟通表达:从最初的技术术语堆砌,到后来的"用户听得懂的产品语言",我们的沟通能力得到了质的提升

工程思维的培养

最重要的收获是工程思维的建立:我们不再满足于"代码能运行",而是开始思考"代码为什么这样设计"、"系统如何扩展"、"用户体验如何优化"。这种思维转变,是软件工程课程赠予我们最宝贵的礼物。

六、反思与展望:遗憾中的成长契机

项目虽已交付,但仍有遗憾:我们设想的AI旅行搭子聊天模式因时间限制未能完全实现;部分交互细节因技术债务未能完美打磨;测试覆盖率尚未达到理想水平...

然而这些遗憾并非终点,而是新的起点。它们让我们明白:软件工程是一个持续迭代的过程,没有完美的项目,只有不断追求完美的团队。


http://www.jsqmd.com/news/161496/

相关文章:

  • RenderCV:为学术和工程师量身定制的CV/简历生成器
  • 禅道案例二:任务管理——把大需求拆成“可落地的小任务”
  • 寒假更新计划
  • 基于PyTorch-v2.8的大模型Token生成性能实测报告
  • [特殊字符] MediaCrawler - 自媒体平台爬虫 [特殊字符]️
  • PyTorch-CUDA-v2.7镜像能否实现模型热更新
  • Dockerfile编写实例:构建自定义PyTorch深度学习镜像
  • 数据结构 AVL树讲解
  • 快速启动深度学习项目:使用预构建PyTorch Docker镜像
  • Mac M1芯片能跑PyTorch吗?对比CUDA版本的兼容性差异
  • Jupyter Notebook中运行PyTorch的完整使用指南
  • Jupyter Lab与PyTorch集成配置:更强大的交互式开发体验
  • HuggingFace镜像网站加速指南:提升大模型下载效率技巧
  • 从GitHub克隆项目到本地训练:全流程整合PyTorch环境
  • Conda Forge频道介绍:获取最新PyTorch构建版本
  • Conda安装PyTorch全攻略:解决常见依赖冲突问题
  • Jupyter Notebook中运行PyTorch:快速上手机器学习开发环境
  • Web前端框架技术入门全解析:掌握现代前端开发的核心范式与工程体系
  • HuggingFace镜像网站推荐:国内高速下载大模型权重
  • Hadoop生态中的数据可视化最佳实践
  • 一站式AI开发平台构建:整合代码、环境与算力资源
  • HuggingFace Dataset加载大数据集:流式读取优化内存
  • 软件工程实战入门:Java 实习生必修的项目级开发方法论与工程实践指南
  • 上位机与PLC 通讯源码 DEMO 上位机与三菱PLC,西门子PLC通讯 同时一起通讯,单独控制
  • 数据湖中的数据治理工具链:开源方案全解析
  • PyTorch-CUDA-v2.7镜像能否替代传统Conda环境?
  • 计算机网络入门全解析:掌握计算机科学与技术专业的核心必修课关键原理与体系结构
  • PyTorch-CUDA-v2.7镜像中如何监控GPU使用率
  • 【课程设计/毕业设计】基于SpringBoot+Vue的服务展示 - 在线预约 - 用品商城 - 互动反馈宠物生活馆网站的设计与实现【附源码、数据库、万字文档】
  • 深度学习入门必备:PyTorch GPU环境安装全攻略