102301423魏昀-学期回顾

一、学期回顾

1.1 回顾你对于软件工程课程的想象

在正式选修软件工程课程之前,我对这门课的想象更多停留在“做一个完整项目”和“学会一些规范流程”层面。相比单纯的技术课程,我更期待的是通过团队协作的方式,真实体验一次接近实际开发环境的软件工程过程,包括需求讨论、模块划分、多人协作以及最终交付成果。从结果来看,这门课程在很大程度上满足了我的期待,也刷新了我对“软件工程”这一概念的认知。

在实际课程推进过程中,我们并不是简单地按照既定要求完成代码,而是需要不断围绕需求变化进行讨论和调整。项目并非一开始就完全清晰,而是在多轮沟通、修改和实践中逐步成型。这让我意识到,软件工程并不是一条线性的流程,而是一个不断试错、修正和权衡的动态过程。尤其是在多人协作的场景下,沟通成本、接口约定以及模块边界的清晰程度,往往比单个功能实现本身更重要。

当然,这门课程也暴露了我自身的一些不足。例如在项目前期的整体架构和需求拆解阶段,我更多关注的是自己负责模块的可行性,对全局设计的参与深度不够,导致在后期联调时需要花额外时间去补齐对系统整体的理解。这让我认识到,未来在类似的软件工程实践中,应当更主动地参与前期设计,而不是只在实现阶段发力。


1.2 回顾你在这门课程中的投入与产出

  • 在软工实践课程当中每名成员分别编写了 约 3500+ 行代码
  • 在团队项目中参与了 “综合学习与咨询平台” 的设计与开发,主要承担 专家咨询模块、个人中心相关功能以及部分通用组件的前端实现工作
  • 软工实践的各次作业每名成员分别花费的时间:
作业 花费时间
第一次团队作业 4 h
第二次团队作业 6 h
第一次团队项目作业 15 h
第二次团队项目作业 18 h
第三次团队项目作业 20 h
第四次团队项目作业 22 h
  • 在软件工程课程上花费的时间:
累计时间 实际周均时间 预计周均时间
85 h 6 h 5 h

1.3 令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?

令我印象最深刻的是第三次团队项目作业。这一阶段项目功能已经从“能跑起来”进入到“整体可用”的阶段,系统复杂度显著提升,之前隐藏的问题开始集中暴露。我负责的专家咨询模块和个人中心相关功能,需要与多个模块进行联动,任何一个细节处理不当,都会影响整体体验。

在这一阶段,单个功能本身并不难,但功能之间的协作却异常复杂。例如专家咨询页面中,不同组件对同一份状态数据的依赖关系较多,稍有不慎就会出现状态不同步、界面刷新异常等问题。为了保证功能稳定,我不得不反复调整组件结构和数据流设计。这次作业让我深刻体会到,软件工程的难点往往不在于“写功能”,而在于“让功能在系统中长期稳定存在”。


二、总结收获

2.1 展开说说你的软工实践故事

在本学期的软件工程实践中,我主要负责专家咨询模块和个人中心相关功能的前端开发,包括专家列表页、专家卡片组件、成为专家申请表单、咨询聊天页面的侧边栏,以及“我的博客”“点赞历史”等个人中心模块。这些功能在系统中既具备业务独立性,又与全局状态和路由结构紧密相关,对工程设计提出了较高要求。

在项目初期,我的开发方式偏向“页面驱动”,即优先完成页面展示和基本交互逻辑,而对组件之间的数据依赖和复用考虑不足。随着项目推进,这一问题逐渐显现。例如在咨询模块中,专家切换、聊天列表更新和页面跳转之间存在较强的联动关系,如果组件层级设计不合理,就会导致状态传递混乱。为了解决这些问题,我重新梳理了组件结构,对侧边栏和内容区的职责进行了拆分,并配合统一的数据管理方式,使逻辑更加清晰。

在个人中心模块中,“我的博客”与 Markdown 编辑器之间的联动也是一大挑战。编辑状态、内容保存以及页面跳转需要保持一致,否则容易造成数据丢失。通过多次重构和调试,我逐渐意识到,前期对状态流转路径的设计远比后期修补 Bug 更重要。这次实践让我从“实现功能”转向“设计系统”,对软件工程的理解更加立体。


2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?

  • React 18:通过使用函数式组件和 Hooks,我能够更清晰地组织组件逻辑,减少冗余代码,提高整体可维护性。
  • TypeScript:在复杂业务场景中,通过静态类型检查提前发现潜在问题,显著降低了运行时错误的概率。
  • Ant Design:利用成熟的组件库快速搭建页面结构,同时保证整体 UI 风格统一,提高开发效率。
  • React Router DOM:通过嵌套路由和 Outlet 机制,实现复杂页面结构的清晰管理,降低路由维护成本。
  • Zustand:在多组件共享状态的场景下,通过轻量级状态管理方案,避免了层层 props 传递的问题。
  • Axios 封装方案:统一请求拦截和响应处理,使接口调用逻辑更加规范,减少重复代码。
  • Rsbuild:作为项目脚手架工具,提升构建和打包速度,使开发体验更加流畅。

2.3 技术之外,这门课程还给你带来了哪些方面的提升?

  • 团队协作能力:在多人并行开发的环境下,学会通过沟通解决问题,而不是单打独斗。
  • 需求理解能力:逐渐学会从用户和系统整体角度理解需求,而不是只关注自己负责的模块。
  • 时间管理能力:在多次项目迭代中,对任务拆分和时间预估有了更加现实的认识。
  • 责任意识:认识到个人模块的质量会直接影响团队整体进度和最终成果。
  • 抗压能力:在项目后期时间紧张的情况下,学会在压力下保持效率。
  • 工程思维:从“写代码”转变为“做产品”,更加关注系统稳定性和可维护性。

2.4 如果还有什么想记录的或者想说的,就写在这儿吧!

这门软件工程课程让我第一次真正感受到团队项目的复杂性,也让我更加明确了自己未来在软件开发道路上需要补足的方向。虽然过程并不轻松,但这种真实的工程体验对我来说非常宝贵。


三、致谢

在一个学期的软件工程实践中,我最想感谢的是团队中的每一位成员。项目从最初的构想到最终逐步完善,离不开每个人在各自模块上的持续投入。尤其是在项目后期,大家在时间紧张、任务繁重的情况下依然保持沟通和配合,这种团队氛围让我受益良多。

我也特别感谢在开发过程中与我频繁对接的队友。无论是接口联调、需求调整,还是 Bug 排查时的相互协助,都让我深刻体会到软件工程并不是个人能力的比拼,而是团队协作的结果。同时,也要感谢课程的老师和助教,通过阶段性作业和答辩不断引导我们反思项目问题,帮助我们在实践中成长。这段经历将成为我大学学习中非常重要的一部分。超哥时代,沸腾期待。

posted @ 2025-12-28 20:21  魏昀  阅读(8)  评论(0)    收藏  举报