102301314 张博凇总结

张博凇(102301314)- 客户端开发组

一、学期回顾

回顾你对于软件工程课程的想象
开学前,我对软件工程的理解比较简单,觉得主要就是学习怎么写代码、怎么做项目。我期待通过这门课能体验一下真实的团队开发流程,毕竟以前都是自己写作业,很想知道在团队中大家是怎么协作的。

实际上完这门课后,我的认识深刻了很多。我意识到软件工程不只是写代码那么简单,它涉及到很多工程化的思考。比如在开发战术板绘制工具时,我不仅要实现功能,还要考虑用户体验、代码可维护性、性能优化等等问题。这让我明白,一个好的软件产品需要从多个维度来思考和设计。

回顾你在这门课程中的投入与产出
在项目中,我主要负责战术板的绘制功能开发,包括各种画笔、图形、箭头等绘制工具的实现。我大概写了1500行左右的TypeScript代码,主要是在Canvas上实现这些绘图功能。

软工实践各次作业花费的时间:

  • 第一次团队作业:6小时
  • 第二次团队作业:9小时
  • 第一次团队项目作业:14小时
  • 第二次团队项目作业:19小时
  • 第三次团队项目作业:23小时
  • 第四次团队项目作业:24小时

在软件工程课程上花费的时间:

  • 累计时间:95小时
  • 实际周均时间:9.5小时
  • 预计周均时间:7小时

令你印象最深刻的是哪一次作业或哪一场答辩?
最让我印象深刻的是解决绘制工具和拖拽功能冲突的问题。那是在Beta测试阶段,有用户反馈说他们在画战术路线的时候,经常不小心把英雄图标给拖动了,体验很不好。

我们团队花了差不多两天时间来分析这个问题。开始我们以为是事件监听有问题,后来发现是两种操作模式(绘制模式和编辑模式)没有区分清楚。我重新设计了事件处理逻辑,引入了状态管理机制,让系统能够准确识别用户当前的操作意图。

当最终测试结果显示误操作率降到几乎为零时,我特别有成就感。这件事让我深刻体会到,开发功能不仅要考虑“能不能用”,更要考虑“好不好用”。用户体验的细节往往决定了产品的成败。

二、总结收获

展开说说你的软工实践故事
我负责的绘制工具模块经历了完整的发展过程。刚开始的时候,我主要关注功能实现,只要能把图形画出来就行。但随着项目推进,问题逐渐暴露出来——代码结构比较混乱,新增一个绘制工具需要改很多地方。

于是我开始重构代码,把每个绘制工具都封装成独立的类,定义统一的接口。这样不仅代码更清晰了,以后要新增工具也方便很多。我还为每个工具编写了单元测试,确保核心逻辑的稳定性。

后来在优化交互体验时,我遇到了一个技术挑战:要实现箭头工具能够跟随绘制方向实时旋转。这需要计算绘制角度并动态更新箭头方向。我通过向量计算和Canvas的坐标变换,最终实现了流畅的旋转效果。当看到用户能够流畅地绘制各种战术箭头时,我觉得所有的努力都值得了。

在项目后期,我还实现了撤销/重做功能。这让我对命令模式有了更深的理解。通过把每个操作封装成命令对象,我们可以方便地管理操作历史,给用户更好的操作体验。

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

  • Canvas图形编程:这是我第一次深入使用Canvas API,学习了路径绘制、坐标变换、事件监听等技术。这让我能够实现复杂的图形交互功能。
  • TypeScript:通过这次项目,我更加熟练地掌握了TypeScript的类型系统和面向接口编程。这让我的代码更加健壮,减少了运行时错误。
  • 设计模式:在实际应用中学习了命令模式,用于实现撤销/重做功能。这让我体会到设计模式对代码可维护性的重要性。
  • 单元测试:为绘制工具编写了详细的测试用例,确保核心逻辑的正确性。这培养了我的测试意识。

这些技术不仅帮助我完成了项目任务,更重要的是让我建立了更专业的开发思维。我现在写代码时会更多地考虑扩展性、可维护性等问题。

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

  • 用户体验意识:我学会了从用户角度思考问题,不仅仅是实现功能,还要考虑操作的流畅性和便捷性。
  • 代码重构勇气:当发现代码结构不合理时,我现在更有勇气去重构,追求更好的设计。
  • 沟通表达能力:需要经常和UI设计师、后端同学沟通技术方案,这让我的表达更加清晰和专业。
  • 问题分析能力:遇到复杂问题时,我学会了如何系统地分析和定位问题根源。

如果还有什么想记录的或者想说的,就写在这儿吧!
这个学期的项目经历让我收获很大。以前我主要关注技术实现,现在我开始更多地思考产品设计和用户体验。

最让我开心的是看到自己开发的绘制工具被团队成员和测试用户使用,看到他们用这些工具画出各种复杂的战术图。那种创造的工具被人使用的感觉特别有成就感。

有时候我也会反思,如果时间更充裕,我可能会在工具丰富性上做得更好,加入更多个性化的绘制选项。但考虑到项目周期和团队协作,我们做出了合适的平衡。

通过这次实践,我不仅提升了技术水平,更重要的是学会了如何在团队项目中有效地工作,如何平衡技术实现和用户体验。这些经验对我未来的发展会有很大帮助。

三、致谢
感谢我的团队成员们,特别是在解决技术难题时大家的互相支持和帮助。每当遇到困难,大家总是能够一起讨论,分享各自的想法。

感谢UI设计师提供了精美的设计稿,让我的代码实现有了明确的方向和标准。

感谢TA在技术实现上的指导,特别是在Canvas性能优化方面给了我很多宝贵建议。

这段经历让我从一个单纯的功能实现者,逐渐成长为一个注重用户体验和代码质量的开发者。

posted @ 2025-12-29 15:01  zhangbosong  阅读(0)  评论(0)    收藏  举报