这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315 |
这个作业的目标 | 回顾自己的软工实践课程 |
学号 | 102201120 |
道阻且长——2024秋软工实践个人总结
一、学期回顾
1.1 想象与实际
开课之前缺乏实战项目经验,对项目开发的流程、实际需求等不了解,编程经验基本仅限于PTA、Leetcode等局部性需求的解题。对这门课最大的期待是在过程中了解软件开发的过程,加深对语言的了解,对使用何种工具、如何进行软件的开发有了解。
实际上确实达到了我的期待,在此之前我连GitHub都没用过,没试过怎么加入项目,也没试过通过Git Bash之类的工具把项目爬下来。双人结对作业中我们决定做一个微信小程序,从这里了解了微信小程序开发软件的使用和一些语法知识。
后来参与团队开发,初步了解使用了HBuilder X,对前端的一些东西有了更多了解。为了测试安装了APIFOX,前后端交互在Vs安装了MySQL拓展来方便调试。对我来说可以称之为从无到有的突破,之前是真没接触过这种大作业合作代码编写。代码上还存在很多不足,编程能力仍需进步= =
总之是有收获的!
1.2 投入与产出
- 在软工实践课程当中我编写了( 我也不知道多少大概3000?)行代码。
- 在团队项目中我参与了( 养食记 )的设计与开发,我在其中所承担的角色是:前端、测试。
- 软工实践的各次作业分别花费的时间:
作业 | 花费时间(天数) |
---|---|
第一次个人作业 | 1 |
第二次个人作业 | 2 |
第一次结对作业 | 3 |
第二次结对作业 | 5 |
第一次团队作业 | 7 |
第二次团队作业 | 7 |
现场编程作业 | 1 |
团队作业beta冲刺 | 7 |
- 在软件工程课程上花费的时间
累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
300h± | 20± | 15± |
1.3 印象深刻的双人结对作业——第一次尝试软件合作开发
初识合作——从需求到设计
一开始,我们面对的是校园内学生跨专业合作难题这一现实痛点。在需求分析阶段,我们深入探讨,明确了学生需要一个便捷的平台来发起或参与项目,以提升综合能力、拓宽知识面和积累人脉。我们运用 NABCD 模型,系统地梳理了需求、方法、好处、竞争和推广策略,这个过程让我意识到合作开发不是简单的分工,而是要共同深入理解项目的核心价值和目标用户的真实需求。在原型设计环节,我们借助墨刀工具,将想法一步步转化为可视化的界面。虽然墨刀的协作功能有所限制,但我们通过共享屏幕和文档等方式,默契配合,攻克了设计难题。看着原型图逐渐成型,我感受到了合作带来的成就感,也体会到了团队协作在创新设计中的关键作用。
编码实现——挑战与成长并存
进入编码实现阶段,我们采用了前后端分离的开发模式,我负责前端页面开发和小程序逻辑编写,陆旭东同学负责后端接口开发和数据库设计。在开发过程中,我们遇到了不少技术难题,比如小程序的云函数调用、数据存储和同步等。记得在实现“个人中心”页面的头像上传功能时,用户上传的新头像有时没有正确更新到页面上。我们反复检查数据绑定、调试网络请求、检查回调函数,最终发现问题并成功解决。这个过程虽然充满挑战,但也让我在实践中快速成长,掌握了更多小程序开发的技巧,也让我更加珍惜与队友共同攻克难题的时光。
团队协作——沟通与互补
在整个结对作业过程中,沟通是贯穿始终的主线。我们通过 QQ、微信等即时通讯工具,随时交流想法和进度,确保双方对项目进展有清晰的了解。在遇到分歧时,我们能够平和地讨论,从技术可行性、用户体验等角度出发,找到最佳的解决方案。陆旭东同学在后端开发方面的专业能力,与我在前端设计和实现上的经验形成了互补,这种互补让我们能够更高效地推进项目。同时,我也从他身上学到了很多关于后端开发的知识,拓宽了自己的技术视野。
二、总结收获
2.1 软工实践故事
-
个人编程
自己编程可以自己安排时间(然后拖延症)、自己选实现方式(之前《羊了个羊》就用的python),但是其实并不是很会写代码,与其说是我自己写的倒不如说是ChatGPT教的好(不)
-
结对编程
选题也是既定的,然后队友是舍友所以很愉快!大家都乐意干活,沟通上也很顺畅,原型设计和后面代码实现什么的都挺不错。
-
现场编程
要现场选题+实现其实还挺难的,大家一起沟通选题和想法是比较新的体验,最后跟着组里代码玩的转的老哥一起整出来代码不过好像没真正实现好23333 总之尽力试着做了 -
团队项目实践
组长组员人都很好,要求下发的很细致所以干自己的任务就行。团队合作让我深刻感受到沟通与协作的重要性。每个人的贡献都至关重要,只有在共同努力下,才能解决复杂的问题。通过相互支持和分工协作,我们能够高效推进项目,达成共同目标。(附图是前端的线下项目需求分析)
2.2 Tools
-
微信小程序开发软件
- 很方便,双人结对作业用的它。很多功能已经帮你预先处理好了,预览也很直观,省事快捷
-
HBuilder X
- 凭借其丰富的功能和高效的性能,为我的前端开发工作带来了极大的便利。
- 支持多种编程语言和框架,能够在一个统一的平台上轻松切换项目需求,编写代码时的智能提示和代码高亮功能,显著提升了我的编码效率。
- 提供了便捷的版本控制集成,让我能够更好地管理代码版本
-
APIFOX
- 集成 API 设计、开发、测试与文档管理于一体的工具
- 界面直观易用,提高了开发效率,整理后端返回值的时候很好用
-
GitHub
- 用它来进行代码协作还是第一次!虽然更多时候是线下交流但它的地位不言而喻,肯定得学会如何使用吧
-
墨刀
- 直观的拖拽操作让我快速上手,无需复杂教程即可将想法转化为产品原型
- 极大提升了原型设计效率
- 但是合作版要钱!!
-
ChatGPT、Kimi等一系列AI
- 没它我不行,代码写不动
- 很多问题问它都能有解答,包括理论上的(前两天备考也都还在用)
- 少部分情况能帮助找bug
-
飞书
- 我们大作业组长的最爱,他真的很会用飞书,任务细则和一些线上会议都在上边
- 我们大作业组长的最爱,他真的很会用飞书,任务细则和一些线上会议都在上边
2.3 技术之外
- 思维方式:培养了系统化的思维模式,让我学会从全局视角审视软件项目,关注需求分析、设计、编码、测试和维护等各个环节的相互关联和影响,从而更高效地把控项目进度和质量。
- 团队协作:通过结对作业和小组项目锻炼了与他人沟通、协调的能力,让我明白了倾听队友意见、发挥各自优势、共同解决问题的重要性,为日后融入团队工作环境打下了坚实基础。
- 职业素养:强化了职业素养,让我树立了严谨细致的工作态度,注重代码规范、文档编写和版本管理等细节,养成了良好的编程习惯,为成为一名合格的软件工程师奠定了基石。
三、致谢
感谢双人组队的靠谱结对队友陆总!
感谢大作业组队耐心教我如何使用apifox和hbuider的各位队友,以及特别感谢耐心的组长和小组长~ 线下写代码的时候组长甚至给我们点茶百道,泪目(说起来还是第一次遇到这么积极抗下组长职务然后真的特别耐心组织组员实现软工大作业的人,强啊)
以及感谢布置博客园作业的,,老师,,呃(....) 布置作业还是不要感谢了!但是之前私聊问问题的时候回答的真的很耐心,Thanks!!