[I.3] 个人作业:结课总结

项目 内容
这个作业属于哪个课程 2025年春季软件工程(罗杰、任健)
这个作业的要求在哪里 [I.3] 个人作业:结课总结
我在这个课程的目标是 掌握软件工程的基本概念和方法,提高团队合作能力,增强问题解决能力,熟悉现代软件开发工具和技术,提升编程技能。
这个作业在哪个具体方面帮助我实现目标 总结得失,回答最初的疑惑

提问博客连接

软工[I.1] 个人作业:阅读和提问

对之前问题的解答

问题一 关于结对编程的适用情况的疑惑

  • 我的回答
    • 经历了结对编程之后,我同样认为实际上结对编程对于两位程序员的技术水平要求是相当的,在结对编程中,我和我的队友都对选择的语言不熟悉,使得我们可以共同入门语言的学习并且讨论共同完成结对编程的任务,设想我们其中一方对选择的语言很熟悉的话,结对项目实际上会成为一边倒的结果变成一个个人作品,在我们的结对编程有不同意见的时候,我们会用时间复杂度和预想不同的情况来说服对方。

问题二 关于无法明确表达的需求分析的疑惑

  • 我的回答
    • 经历了两次阶段的迭代之后,我认为对于一些没法明确的需求我们不需要特别考虑,因为需求也是跟着项目的迭代过程在不断增加的,所以伴随着产品的迭代,无论是用户产生的需求还是产品特性引发的需求都在不断增加,我们需要明确这些需求并且完善,比如说我们在alpha阶段答辩的时候被助教指出了我们的密码是明文传输很不安全,网站也是用的http,我们在beta阶段申请了https证书并且加密传输密码。

问题三 关于Program Manager

  • 我的回答
    • 对于书中提到的PM做开发和测试之外的所有事情,至少在我们小组的软工过程看来不是这样的,对于我们这种大学课程项目而言,PM最好还是选择小组中技术栈和水平最好的一位同学,因为把握开发周期以及保证项目进度的推动都是需要对于各个技术栈了解的比较全面的同学来把控。

问题四 关于软件的血型

  • 我的回答
    • 我们的软件开发过程中确实是提倡了“全面质量管理”,包含了多种的测试来实现,但是并没有出现书中提到的“有些庸人往往会以“高质量”为由,阻碍正常的工作进程。”,队友们都很给力,往往都会在ddl之前完成自己的部分并且提前和我对接。我最初认为完美主义者会拿出方案并及时解决问题而可以达到全面的质量管理,但是从现实来看,由于是敏捷开发,实际上每个阶段两周多的开发时间内全面的质量管理是不可能实现的,我们没法发布一个完美的产品,一些bug也是小红书上我们的用户给我们反馈的。

问题五 关于代码量与树叶量

  • 我的回答
    • 过多的代码量往往意味着一种冗余,导致了低效率或者维护上的难度,所以说数量并不等于质量,每篇叶子都在为光合作用做贡献才是最好的。同时,对于能否用bug数量来衡量树叶量,就像是自然界有些叶子因为病变而功能失效,但是整棵树依然健康,因为系统有冗余和弹性,在我们的项目中设计了“多副本”等机制,类比“多叶子结构”。

在实践中学习知识点

需求阶段

我们通过例图等方式来明确用户的真实需求,避免理解偏差,为后续设计打下基础。

设计阶段

在设计阶段由于接口还不是特别明确,所以我保持和前端的沟通涉及了模型图并及时推进接口的对接文档。

实现阶段

在实现的过程中由于密码加密传输的问题和前端负责登录注册板块的同学学习了安全性和密码加密相关的知识。

测试阶段

测试阶段参考了往届的博客,进行了压力测试和单元测试,其中单元测试也是参照了往届学长的一些方法来提高测试的覆盖率。同时,充分的测试让我们可以在给足我们在发布阶段的底气。

发布阶段

发布阶段的话我最初用的是django的开发调试命令,发现经常崩溃,然后学习了一些关于WSGI服务器的知识,保障了我们项目的稳定运行。

维护阶段

在维护阶段我手动配置了logging模块来观察django的错误日志并且及时解决出现的问题。

心得与体会

本次软件工程项目体验还是非常好的,我的队友们都非常给力,大家在整个开发过程中配合默契、分工明确,从需求分析到最终上线,每个人都尽职尽责,充分发挥了各自的优势。在最初的需求讨论阶段,我们就展现出良好的沟通能力和团队意识,能及时协调分歧,快速统一方向。在设计阶段,我们一起讨论系统结构、数据库设计和前后端接口,尽量做到高内聚低耦合,为后续开发打下了坚实基础。

进入编码阶段后,虽然也遇到了一些困难,比如代码逻辑冲突、接口联调问题等,但大家积极主动地解决问题,甚至愿意在晚上加班调试,体现出高度的责任感和团队精神。测试和部署阶段也让我感受到“软件工程”不仅仅是写代码,还要关注系统的稳定性、用户体验和版本管理等方方面面。

通过这次项目,我不仅加深了对 Django 框架、数据库操作、前后端联调等技术细节的理解,也真正体会到了一个软件从无到有的完整生命周期。此外,这种以“做中学”的学习方式让我意识到,实践远比单纯的课堂知识更有助于理解复杂的工程思想和开发流程。

最重要的是,这次团队合作经历让我更加明白沟通与协作的重要性。在今后的学习和工作中,我也希望继续保持这种开放、合作、负责的态度,勇于面对挑战,不断提升自我。

posted @ 2025-06-14 20:15  尹祺霖22371157  阅读(19)  评论(0)    收藏  举报