The end-软工实践之旅
一、学期回顾
1.1 回顾你对于软件工程课程的想象
在学期初,我眼中的软件工程课程是一门教大家如何从零开始开发软件,实际上大部分知识都需要自己学习掌握,软工课着重系统地学习软件开发流程,掌握从需求分析、设计、编码到测试的全套本领,雕琢出实用且受欢迎的软件作品。
如今回顾,在知识技能层面确实达到了不少预期。通过一次次作业与项目实践,我熟悉了软件开发的基本流程,学会运用诸如敏捷开发等方法推动项目前进,掌握了前端vue框架下代码编写,让代码管理变得井井有条。然而,仍有不足的地方,例如在项目前期的需求调研时,难以精准把握用户的潜在需求,导致后续设计变更频繁,这反映出用户思维培养上的欠缺,主要原因在于与真实用户交流过少,沉浸于技术实现而忽视了 “软件为人服务” 的本质。还有就是在编写代码中接口的使用较为不熟练,通过与组内队友交流后逐渐得心应手。
1.2回顾你在这门课程中的投入与产出
在软工实践课程当中我编写了大约2500行代码。
在团队项目 “EZnote” 的设计与开发中,我担任前端开发人员,负责前端写作功能的开发以及与用户交互界面的美化。
软工实践的各次作业分别花费的时间:
作业 | 花费时间 |
---|---|
第一次个人作业 | 12h |
第二次个人作业 | 24h |
第一次结对作业 | 20h |
第二次结对作业 | 36h |
第一次团队作业 | 30h |
第二次团队作业 | 32h |
现场编程作业 | 5h |
团队作业beta冲刺 | 48h |
在软件工程课程上花费的时间
累积时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
207h | 11.5h | 10h |
1.3 令你印象最深刻的α测试答辩
那是一场与时间赛跑的紧张赛程,在短短一周内,我们团队要完成EZnote团队项目的主要功能,时间紧任务重(而且那周大多数成员都有两三门考试)。团队成员每天从早到晚线上线下同步沟通,一起排查问题、分工协作。大家采用站立式会议讨论开发方案以及分工计划,遇到问题,逐行分析代码,查阅资料,尝试各种解决方案,最终在α测试汇报前完成一个重要功能模块可以展示。这次答辩我深刻体会到团队齐心协力、攻坚克难的强大力量。
二、总结收获
2.1我的软工实践故事
个人作业(羊了个羊)
在第二次个人作业中,完成一个类似“羊了个羊”的消除游戏,为了完成这次作业也是在学习了pyhton的制作小游戏的用法,主要是pycharm的功能构建窗口可视化,利用中秋假期完成的作品让自己初入软工实践之旅。
结对作业
最初的原型构建
与结对队友的讨论
实现开发相应app软件
结对编程时,和搭档一起开发,两人思维碰撞出奇妙火花。通过共同优化代码结构,合理分配计算资源,不仅解决问题,还让app体验大幅提升,明白了协作能弥补个人思维局限。
团队作业
团队项目实践更是波澜壮阔,我们组考虑开发为大学生们适用的网站,从开篇头脑风暴锚定 “智能笔记助手” 网站方向,开发途中技术难题 “横生”、成员意见 “交锋”,至冲刺阶段优化打磨,步步皆心血。大家分工明确,在忙碌的学习中挤出开发网站的编程时间,共同讨论开发过程中遇到的问题并一起解决,大家齐心协力、凝聚共识推动项目 “破浪前行”。每个成员都为团队做出了巨大的贡献,让我们的项目顺利完工并投入使用,得到老师的赏识。
这是项目的首页以及注册登录的功能
本人主要负责的写作模块以及相应的界面
2.2学习到的新技术或生产力工具
ChatGPT:
强大的gpt为项目开发注入了新的活力,(可以说没有gpt,我们的项目开发将难上加难)在初期的需求调研阶段,它能快速提供丰富多样的写作助手功能示例和潜在用户需求分析,帮助我们开拓思路,精准定位产品核心功能,避免在一些常见功能设计上走弯路。例如,当我们纠结于如何优化文本生成的创意引导模块时,向 ChatGPT 提问,它给出了诸如基于热门话题、用户历史写作风格等多角度的启发,让我们迅速明确优化方向。在编码实现过程中,遇到复杂算法逻辑或代码片段理解难题,它又能详细解释代码原理,提供优化建议,助力我们攻克技术难关,极大提升了开发效率。
Vue框架:
作为前端开发的得力工具,Vue 框架让网站的用户界面构建变得高效且优雅。它采用的响应式数据绑定和组件化开发模式,使得页面的交互效果实现起来得心应手。以前端页面的实时文本预览功能为例,利用 Vue 的双向数据绑定,能够实时捕捉用户输入并即刻反馈预览结果,无需繁琐的 DOM 操作,代码简洁清晰,开发速度大幅提升。而且组件化开发方便团队成员分工协作,各自负责不同组件的开发与维护,最后像拼图一样轻松组合,极大提高了团队开发效率,同时也保证了代码的可维护性。
Apifox:
这是一款一站式 API 协作平台,对前后端开发协作起到了关键的衔接作用。后端开发人员在 Apifox 上轻松定义 API 接口文档,详细描述接口的请求参数、响应格式等信息,前端人员可以实时同步查看并依据这些规范进行开发,避免了因沟通不畅导致的接口对接问题。同时,Apifox 自带的 API 测试功能强大便捷,后端开发过程中,随时可以在平台上对编写的接口进行模拟请求测试,快速发现并解决接口问题,减少了联调时的错误,大大缩短了开发周期,让整个项目的推进更加顺畅。
2.3技术之外,这门课程还给带来的提升
团队协作能力:
学会倾听多元声音,洞悉不同角色视角。团队分歧乍起,能冷静沟通、调配资源,探寻共赢 “最优解”,如网站功能优先级激辩中,各方充分陈情,终合理规划开发次序。
问题解决思维:
直面复杂软件问题,多维 “扫描” 剖析,遇性能瓶颈,从代码逻辑、服务器资源、专业的代码逻辑、服务器资源、数据库查询全方位排查,跳出思维 “死胡同”。
时间管理:
课程作业与项目并行,任务 “琳琅满目”,学会精细规划,依轻重缓急分配时间,α冲刺、beta 冲刺,每日修复 bug、开发新功能、测试时段精准切割,保障项目如期交付
2.4 如果还有什么想记录的或者想说的
这门课真就像一盏明灯,给我往后的专业路照亮了方向,帮助我们初次接触软件开发领域。团队一起埋头苦干、各自对着电脑屏幕疯狂敲代码,还有线上线下解决难题、讨论方案的场景,回想起来,那也是热血沸腾。项目中前后端接口对接是个大难题,大家在qq群里各抒己见。前端同学接口数据格式不对,接收老是出错,后端同学赶忙去查代码,一头雾水地解释自己的逻辑,一点点核对文档、调试代码,让数据顺畅流动起来的那一刻,所有人都松了口气,成就感爆棚,团队的凝聚力也在这一次次磨合中愈发紧实。
希望你们多珍惜团队并肩作战的时光,不管是唇枪舌剑的讨论,还是寂静无声的编程,好好享受软工实践带来的知识盛宴!
三、致谢
特别感恩我的团队伙伴们,每一个人都为 “EZnote” 付出了心血,让这段软工实践之旅充满意义。
在这里,我必须要着重感谢咱们的组长-黎曼。从项目启动的那一刻起,组长就像一位经验丰富的领航员,稳稳地把控着前进的方向。在任务分配环节,组长充分了解每个人的专长与优势,将复杂的项目任务拆解成一个个清晰明确、可操作性强的小任务,有条不紊地安排到个人。在项目推进过程中,难题接踵而至,每当有同学陷入困境,组长总是第一个伸出援手。记得开发时期,面对繁多的功能模块,我还在迷茫从何处下手,组长在群里上传开发教程,根据这份详细规划,让我瞬间有了方向,干劲十足地投入工作。
组长提前梳理项目亮点、总结技术难点与解决方案,连续几天熬夜奋战,反复打磨 PPT,将我们团队努力成果一一展现。从项目背景、功能特色,到技术创新、团队协作,每一个板块都讲解得条理清晰、重点突出,也正是因为组长的出色表现,我们团队最终斩获三项 β 测试奖项,这份荣誉属于我们每一个人,更离不开组长的卓越领导。
当然,还要感谢我们后端的小伙伴们,你们用扎实的 Python 技术筑牢了网站的根基,精心设计的数据库架构和稳定高效的 API 接口,让海量的数据得以顺畅流转,支撑起整个网站的高效运行。同样要把最诚挚的谢意送给我的前端小伙伴们,咱们并肩作战,一起攻克了诸多难关。在开发过程中,努力做好用户对界面交互性、美观度的高要求,极大提升了用户的写作效率和体验感。
最后感谢张栋老师和吴越钟老师的悉心教导!