轻舟已撞大冰山 —— 2024秋软工实践个人总结
学期回顾
1.1 回顾你对于软件工程课程的想象
刚开始接触这门课时,我满脑子都是“学软件工程是不是就是学写代码?”在课程的初期本以为在现在的ai时代,这种传统课程对于手握ai武器的当代大学生应该不算什么问题,可学着学着发现没想到软件工程这门课也顺应ai浪潮水涨船高提高了其要求和内容难度。但随着从个人任务到结对编程再到最后的团队编程的协作关系间的变化,才发现代码只是冰山一角,真正的大头是团队协作、项目管理和开发流程。你以为自己要变身码农,其实是偷偷修炼成了项目经理。可以这么说,软件工程是“写代码的艺术,解决问题的哲学”。
我原本期待的是:
- 项目开发全生命周期管理,比如需求分析、设计、开发和测试,这些听起来就很专业的流程。
- 团队协作,想象自己在团队中像蜘蛛侠一样来回穿梭,拯救“BUG危机”。
- 工具链熟练使用,从Git到HbuilderX,一步步武装自己。
一个学期下来实际实现了:
-
修复不完的bug今天修复了这个bug发现后面程序都和这个bug相关的逻辑代码有关,导致bug越修越多
-
不断重构并针对系统进行适配性修改:从本来以为只是简简单单更换一个地图api,到发现是困难的更换安卓sdk,好不容易更换完后发现整个app的用的路由和插件都对安卓不兼容,问题一山更比一山高
更抽象的是,好像从登录开始就使用axios来作为发送post和get请求而不是用uni-app里能适配多端app的request方法的人就是我(流汗黄豆
总之,这门课远超我的预期,不仅提升了我的技术能力,还让我明白,软工就是一种生活方式。
1.2 回顾你在这门课程中的投入与产出
在软工实践课程当中,我编写了 约2000 行代码(主要集中在前端模块)。
在团队项目中,我参与了 “Man游” 的设计与开发,我的任务分工是:
- 前端开发:负责UI设计与前端功能实现,尤其是课程管理页面的动态渲染与多端适配。
- 模块交互优化:使用XBuilder快速完成表单交互设计,同时提升页面加载速度。
软工实践的各次作业分别花费的时间:
作业 | 花费时间 |
---|---|
第一次个人作业 | 8小时 |
第二次个人作业 | 10小时 |
第一次结对作业 | 10小时 |
第二次结对作业 | 12小时 |
第一次团队作业 | 15小时 |
第二次团队作业 | 20小时 |
现场编程作业 | 4小时 |
团队作业beta冲刺 | 20小时 |
在软件工程课程上花费的时间:
累计时间 | 实际周均时间 | 预计周均时间 | |
---|---|---|---|
课程整体投入 | 109小时 | 11小时 | 8小时 |
1.3 令你印象最深刻的是哪一次作业或哪一场答辩?
团队作业的beta冲刺阶段绝对是我的高光时刻!这段时间,我们全队都像上了发条一样,各司其职:
由于程序之前的编写调试都是通过内置或外置浏览器来编写,所以其只能在web中运行,到软件最后打包成apk时出现了巨大的兼容性问题,根据初步判断是高德的js插件对安卓并不兼容,在对前端代码进行安卓sdk的替换后解决了软件无法正常打开的问题后发现了更大的问题——整个程序用的插件与方法对安卓并不兼容,在经过几度调试后,仍存在大量兼容性问题,故最后通过将软件部署到云平台后通过打包好的H5网页链接进行访问。
- 这次经历让我深刻体会到团队协作的重要性,以及一个清晰目标能如何推动大家前进。
总结收获
2.1 展开说说你的软工实践故事
这学期,我的角色就像是从“单机游戏玩家”变成了“开黑车队的老司机”。
- 个人编程阶段:
- 独自完成功能模块,设计了一套响应式的课程管理页面,让用户可以在手机和电脑上无缝切换。
- 结对编程阶段:
- 和搭档一起解决了表单验证和后端接口对接的问题,学会了如何快速抓住问题的本质,精准调试。
- 团队项目阶段:
- 我负责整合团队的UI设计稿和实际开发页面,用XBuilder提高了开发效率。
- 为了提升用户体验,还添加了一些交互小动画,比如课程表的拖拽调整和提示信息的动态展示。
配图建议:结对编程时两人对着屏幕讨论问题的情景图,或者XBuilder工作界面截图。
2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?
- XBuilder:
- 一款高效的前端开发工具,用于快速搭建表单和页面交互逻辑,大幅减少了重复劳动时间。
- Git + GitHub:
- Pull Request机制拯救了我们的小组,分支管理堪比修高速公路,条条大路通代码。
- Jenkins + Docker:
- 自动化部署简直就是解放双手,按一下按钮,世界清净了。
- UML建模工具:
- 图形化的需求分析简直是开会神器,让人一下就看懂“你到底想干啥”。
配图建议:XBuilder操作界面,或者成功生成的动态表单效果图。
2.3 技术之外,这门课程还给你带来了哪些方面的提升?
- 团队协作能力:
- 从“独行侠”进化成了“团队润滑剂”,知道怎么分工才能事半功倍。
- 时间管理能力:
- 学会了给每项任务设闹钟,再也不敢随意拖延。
- 抗压能力:
- 在一次次熬夜冲刺中,学会了以“平常心”对待不平常的任务。
配图建议:时间管理App的截图,或者深夜工作台的照片。
2.4 如果还有什么想记录的或者想说的,就写在这儿吧!
说真的,这门课让我对自己的未来多了一些思考。我发现:
- 软件开发不仅是技术的较量,更是一种沟通艺术。要把天马行空的创意落地,真的需要团队的合力。
- 我也更加明确了自己的职业方向,未来一定要成为一个又强又懂协作的开发者。
留给学弟学妹的话:
"Man,what can I say"
致谢
一个学期过去了,我特别想感谢的人有:
- 我:
- 能坚持到现在真的很nb
- 我的团队成员:
- 每一次脑暴都是火花四溅,每一次冲刺都能见证彼此的成长。
- 我们的助教和老师:
- 助教们的耐心让我有信心完成任务,老师的课程设计让我真的爱上了软件工程。
最后,我想以一句话总结我的学期感受:
"轻舟已过万重山,回首来时,满载而归。"