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

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

项目 内容
这个作业属于哪个课程 2026春季计算机学院软件工程(罗杰 任健)
这个作业的要求在哪里 [I.3] 个人作业:结课总结
我在这个课程的目标是 获得软件工程师应有的初步能力
这个作业在哪个具体方面帮助我实现目标 回顾这一学期的个人项目、结对项目和团队项目经历

课程初提问回顾与解答

在学期初的阅读作业 [[I.1] 个人作业:阅读和提问](《构建之法》:初读和提问 - N3XUS - 博客园) 中,我曾对AI辅助下的开发流程、学习方法等提出了五个疑问。经过这一学期个人、结对和团队项目的实践,通过查阅资料、亲自动手以及与同学的讨论,我对这些问题有了更符合实际的认识。

关于个人开发流程中编码技能的必要性:实践证明,编码基本功依然非常重要。在结对和团队项目实践中,我们尝试让AI去生成一些算法逻辑,但这些代码经常在边界条件上存在隐蔽的漏洞。如果我们自己不具备扎实的编码基础,不仅无法定位这些bug,甚至连阅读和验证AI代码都无从下手。验证AI代码并进行微调的难度往往高于单纯的编写,基础编码能力是保持项目可控性的基石。

关于软件工程中知识与方法的偏重,现在看来两者的确是相辅相成的,但“方法”是软件工程的核心灵魂。在团队项目开发中,单纯掌握编程语言语法等知识并不足以保证项目的顺利推进。相反,当多人并行协作时,如何通过Git工作流、敏捷开发的看板、Issue追踪等“方法论”来管理项目,才使得混乱的开发过程能够保持基本的有序性。

关于快速交付与技术债的冲突。很遗憾的是在AI时代,两者的冲突依然存在,且由于AI的介入而变得更加隐蔽。尽管AI能快速辅助我们生成文档和基础代码,实现表面上的快速交付,但如果缺乏良好的全局架构设计,AI会在看不见的地方堆积大量耦合的代码。在团队项目中,由于前期部分功能过于依赖AI快速堆砌,后期面临了不小的重构压力。文档的快速生成并不能掩盖底层设计混乱带来的维护成本。

关于结对编程定义的拓宽。人机协作确实是一种高效的辅助手段,但并不能完全替代传统的人人结对编程。在结对项目花见小路的开发中,我和伙伴面对面交流、实时指出对方思维盲区的过程,是AI工具难以提供的。AI在协作中处于被动接收状态,而双人实时博弈、共同承担责任的主动创造力,依然是人人结对的独特优势。

关于“做中学”与系统学习的关系,我仍认为两者无法相互替代,应当有机结合。在团队项目初期,面对未曾接触过的引擎,我们通过“做中学”快速上手并产出了原型。但当项目进入到中后期,遇到复杂的场景生命周期和报错时,如果缺乏对引擎运行机制的系统性学习,开发工作就会陷入瓶颈。因此,“做中学”适合作为破冰和实践的手段,系统学习则是保障项目深度和稳定性的必要支撑。

随着项目的交付,我也产生了一些新的疑问。例如在追求开发进度的过程中,团队不可避免地在合并分支时进行妥协,对于AI生成的代码未能做到100%的代码审查,这是否会给未来的代码维护埋下更难排查的黑盒隐患。此外,由于项目缺乏大规模真实用户试玩,我们在发布后的维护阶段缺乏足够的用户行为数据和真实反馈,如何在有限的环境下更真实地模拟和改进用户体验,这也是未来需要去探索的课题。

项目全流程知识点总结

在项目的需求阶段,我体会到了业务规则和核心路径识别的重要性。需求不是简单的功能罗列,团队项目初期大家想法很多,最后逐渐收敛到白天经营配合夜晚防守的核心玩法循环上,明白需求应当聚焦于最主干的用户路径。

在设计阶段,最核心的收获是理解了模块边界和解耦。在多人并行协作时,如果地图、战斗、UI等模块互相对外暴露大量的直接接口,会导致后期修改时寸步难行。规范模块间的调用边界和事件通信方式,能有效控制代码在演进中失控。

在实现阶段,我意识到了渐进式开发与MVP(最小可行性产品)原则的重要性。结对项目和团队项目都曾因过早尝试复杂方案而导致进度卡壳,先跑通最简易的可运行版本再逐步迭代,有利于更稳健地推进进度。

在测试阶段,我体会到了自动化回归测试的必要性。利用无头脚本对核心逻辑进行测试,能为后期的重构和合并代码提供信心保障,缺乏自动化测试往往会导致后期修改时缩手缩脚。

在发布阶段,我认识到发布流程的复杂性。项目在CI/CD部署至Web端时,包体体积和多端加载等问题在本地开发时很难被注意到。尽早列出发布检查项并进行多环境验证,是项目平稳收尾的前提。

在维护阶段,我深刻理解了技术债的代价。赶工留下的临时代码和未清理的过期文档,会在后期成倍增加团队成员的认知负担,许多维护阶段的阻力其实在开发时为了妥协进度就已经产生。

从个人到团队的实践心得

个人项目让我初步接触了软件开发的完整过程,切实认识到了设计合理的数据结构和基本测试对于保障正确性的基础作用。

结对项目花见小路给我的一大经验是需要抬头对齐方向、及时调整。我们在某些复杂方案上消耗了过多时间,发现效果不佳时调整得有些晚。双人结对的优势在于面对面沟通时的纠错效率,但面对复杂的大方向,依然需要双方保持理性,及时跳出逻辑误区。

团队项目hexavigil是本学期最贴近实际开发的一次经历。我的工作从前期的架构设计逐渐过渡到后期的UI整合与发布。在多人并发协作的背景下,个人的沟通能力被流程约束所分担。代码的合并高度依赖Git分支管理、PR审查和Issue流程,这些工程规范在项目体积膨胀时保证了基本的稳定性和可追踪性。

写在最后

这学期的课程改变了我对软件开发一些简单的认知。过去我倾向于认为只要把代码编写完成项目就宣告结束。现在回头看,写代码仅是整个周期中的一环。确保需求被准确理解、模块设计合理、代码具备可测试性、最终能够稳定打包交付,这些统筹和规范构成了软件工程中更具挑战性的部分。经历过这一套流程,未来面对规模更大的开发任务时,我会更注重前期的规划与协作规范,当然规划要更往前一点,不要想当然认为团队燃尽图会匀速自然下降QWQ。

posted @ 2026-06-29 23:17  N3XUS  阅读(15)  评论(0)    收藏  举报