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

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

项目 内容
这个作业属于哪个课程 2026春软件工程
这个作业的要求在哪里 [I.3] 个人作业:结课总结
我在这个课程的目标是 深度参与软件工程,擅于开发、测试与团队协作
这个作业在哪个具体方面帮助我实现目标 回顾一学期的经历与收获,总结再出发

一、提问回顾

《构建之法》的阅读和提问

问题一:在“习中学”的实践中,该如何把握项目进度与学习深度的平衡?

我认为较好的学习节奏是在项目推进中理解其架构布局的初衷,从而更深地领会相关的架构设计与代码实现。但在实际开发中,项目推进的节奏往往快于个人学习总结的速度,导致我前期主要以完成需求和修复 Bug 为主;只有在遇到棘手问题时,才会深入代码层面去研读和解决。或许在未来,结合一些更小型、更可控的子模块开发,能帮助我对底层代码理解得更深刻。

问题二:敏捷开发中的“每日站会”如何避免演变成形式主义,如何高效执行?

在实际操作中,我们通过飞书召开站会,共同编辑共享任务文档,明确讨论目标、进度和优先级,整体运行较为高效。我认为,只要团队成员积极参与、保持信息对称,并朝着共同的目标推进,每日站会依然是凝聚团队、保障进度的有效机制。

问题三:在“画扇面”式的宏大愿景与 NABCD 模型之间,如何界定“合理的过度设计”?

我认为适度的前瞻性设计是必要的。例如,后端在构建事件总线时,将各类 Buff、Event、Action 抽象并汇总为事件,并提前规划好单回合(包括小游戏)的同步与异步机制。这使得后续开发能实现良好的模块化,极大便利了后期的 Bug 修复与功能扩展。此外,游戏后端的 CLI版本虽不直接呈现给用户,但在开发阶段作为自动化测试的媒介,发挥了关键作用。

在 ParaDice 的开发中,我们并没有描绘过于宏大的蓝图,而是选择稳扎稳打、逐步迭代。因此,以实际需求为导向、进行适度的可扩展性设计,是更切合实际的实践路径。

问题四:在 AI 辅助编程普及的今天,该如何衡量工作量?

在 AI 辅助的背景下,工作量的衡量更应侧重于任务的属性与复杂度。对于美术素材收集、音效添加等偏向执行与内容丰富度的事务,工作量主要体现在内容的覆盖面和数量上;而对于整体后端的架构设计、服务器运维等重逻辑的任务,工作量则更体现在方案的可行性、鲁棒性以及攻坚克难的深度上。

问题五:当 AI 抹平了代码实现的门槛,什么才是好的软件工程师?

在 AI 时代,对工程师的综合素质要求更高了。优秀的软件工程师需要具备更全局的视野,掌握系统架构、自动化和测试,并严格把控代码的可读性与可扩展性,而不是任由 AI 盲目堆砌代码。我们需要在整体框架的指导下,精准引导 AI 的产出。AI 并非万能,比起单纯依赖,我们更应学会向 AI 学习、与 AI 协作,从而更高效地解决复杂的工程问题。

二、新产生的问题

如何在快节奏的工程开发中,兼顾个人学习效果与项目代码质量?

在紧凑的项目开发周期中,团队往往以“交付完成”为导向,这有时会让我们忽略了对具体实现细节的复盘,对个人阶段性成长的量化感知也较为模糊。例如,在项目结束一段时间后,我们是否还能清晰回忆起当时的设计决策,或者说是否明确知道自己具体掌握了哪些新技能?在 AI 强力辅助的当下,如何既能借助工具高效交付,又能化他力为己用、确保自身的实质性提升,并维护好项目代码的清晰可读,是我目前思考的新课题。

三、六个阶段学到的知识点

需求

清晰的需求是成功的一半。在最初的头脑风暴阶段,我们曾考虑过模仿《北京浮生记》做一款模拟经营或股市交易类游戏,但感到新意不足;也考虑过《人生模拟器》这类题材,但其设计容易走向“要么太简单、要么太复杂”的极端;最终我们决定模仿《马里奥派对》的游戏机制。一旦核心需求与目标明确,我们就能迅速展开任务规划与分类,从而高效地推进项目。

设计

架构设计需要具备一定的前瞻性。技术设计往往是一项挑战,它不仅需要经验的积累,还需要对各种技术选型有清晰的认知,预判潜在的难点与风险。一旦确立了清晰的路线图和技术栈,后续的并行开发就会更加得心应手,避免了因前期设计欠妥而导致的中途碰壁甚至推倒重来。

实现

职责明确、高频沟通是关键。在实现阶段,任务不一定需要拆分得太细,但必须保证每位负责人对自己的交付目标有清晰的认知,以便稳步推进。此外,常常讨论同样很重要,个人独立完成的设计与实现虽然能跑通,但未必是最优解;通过与队友的交流,往往能碰撞出更好的改进方案,促进代码的精进。

测试

模块化与分层测试是重点。由于游戏项目的自由度较高且包含较多随机要素,如果完全依赖人工黑盒测试(尽管部分手动测试是必要的),效率会非常低下。因此,在开发实现时应尽量解耦,确保模块可进行单元测试或功能测试。例如,能够独立验证特定动画与音效的呈现效果,或确保道具的使用流程与边界效应符合预期。

发布

发布需确保流程的规范与顺畅。在发布阶段,我们需要构建一套稳定的工作流,确保分发出的各平台版本均能正常安装和运行。如果出现非预期问题,应依赖一套相对固定、完善的容灾与回退机制进行处理,而不是陷入被动的紧急救火。

维护

拓宽问题反馈渠道,建立优先级机制。任何软件都很难在首版做到无懈可击,在实际的用户使用过程中,各类边缘 Bug 难免会暴露出来。我们需要建立通畅的问题收集机制,精确定位并稳定复现问题,再根据紧急程度进行针对性修复与回归验证。

四、个人项目、结对编程与团队项目心得

个人作业引导我快速阅读了《构建之法》,初步构建了对真实软件工程开发体系的认知与思考。

结对作业则让我切身体会到协作的价值,学习了如何合理分配任务、如何进行高效的沟通与代码评审,从而保障开发工作平稳推进。

团队作业带给我最全面的锻炼,让我真实地体会到一款游戏从构想到落地所需经历的完整生命周期。在这个过程中,一是要有清晰的路线图以指引方向;二是要保持稳健的开发、测试与协作节奏,确保每个功能的实现既正确、易懂,又具备良好的可测试性与可扩展性;三是关注部署与发布,确保用户使用体验顺畅,同时建立起问题反馈与收集机制,量化并体现软件的实际价值。

这学期最大的收获莫过于全流程参与了一款游戏软件的开发。虽然我只负责了其中的一部分工作,但这段完整的实践经历不仅拓宽了我的技术视野,也赋予了我未来独立开发软件的信心与勇气。

posted @ 2026-06-28 12:56  gfox19  阅读(7)  评论(0)    收藏  举报