一、学期回顾
1.1 回顾你对于软件工程课程的想象
根据你对课程目标和期待,回顾目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
达成的目标与期待
- 理论与实践结合: 课程的最大目标之一是将软件工程的理论知识应用到实践中。在这一点上,我收获颇丰。从项目需求分析到设计、编码、测试等各个环节,我不仅学习了如何设计合理的软件架构,还体验了实际开发流程中的困难与挑战。通过实践,我对软件生命周期的各个阶段有了更深入的理解。
- 团队合作与沟通: 我非常期待能够在团队中提升自己的合作能力,学会有效沟通。在团队项目中,我与团队成员分工合作,遇到问题时互相讨论,共同解决。在多次的头脑风暴和讨论中,我学会了如何表达自己的想法,同时也学会了倾听他人意见。团队合作的体验让我深刻认识到沟通和协作对于项目成功的重要性。
- 问题解决能力提升: 在实际开发过程中,我们遇到了不少技术难题,如调试代码、优化性能等。每次解决问题后,我都有一种满足感,感觉自己在技术能力上得到了很大的提升。这让我更加明白,问题解决能力是软件开发中至关重要的技能。
存在的不足与改进空间
- 时间管理的不足: 在项目初期,由于对项目的复杂性和开发周期估计不足,导致了一些阶段性的进度延误。虽然我们最终能够按时完成项目,但在前期的规划阶段,我没有合理分配每个任务的时间,造成了一些拖延。这个问题提醒我,在今后的项目中,需要更准确地评估时间并做好充分的准备。
- 技术深度的局限性: 尽管在课程中,我学习并应用了不少技术工具,但有些高级技术细节我仍然没有完全掌握。例如,对于一些框架的底层实现、数据库优化等方面,我的了解还不够深入。在以后的学习中,我需要加大对这些技术的研究,提升自己的技术深度,以便在实际工作中能更好地应对复杂问题。
- 代码质量和文档规范的不足: 在实际编码过程中,由于时间紧迫,有时会在代码质量和文档书写上有所妥协。虽然最终能够完成项目,但回头看,代码的可维护性和可扩展性上仍存在一些问题,文档也没有做到完全规范和详细。这是我在以后开发工作中必须重视的地方,良好的代码习惯和文档管理不仅能提高团队协作效率,还能在项目迭代中提供更好的支持。
- 测试覆盖的不足: 在本次项目中,我的测试工作主要集中在功能测试和简单的单元测试上,然而,代码的测试覆盖率并不高,尤其是一些边缘情况和复杂场景的测试没有做到位。这让我意识到测试的重要性,尤其是自动化测试和持续集成的相关知识,需要在未来的学习和工作中加强实践。
1.2 回顾你在这门课程中的投入与产出
-
在软工实践课程当中我编写了约6千行代码。
-
第二次个人作业,“瓦了个瓦”构思与编写
-
结对编程--跨界合作平台
-
在团队项目中我参与了剑来的设计与开发,我在其中所承担前端工程师,主要负责前端代码编写以及页面UI设计。
- 软工实践的各次作业分别花费的时间:
作业 | 花费时间 |
---|---|
第一次个人作业 | 2h |
第二次个人作业 | 8h |
第一次结对作业 | 4h |
第二次结对作业 | 80h |
第一次团队作业 | 40h |
第二次团队作业 | 30h |
现场编程作业 | 3h |
团队作业 alpha 冲刺 | 50h |
团队作业beta冲刺 | 30h |
- 在软件工程课程上花费的时间
累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
247h | 31h | 10h |
1.3 令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?
印象最深刻的肯定是团队编程的阿尔法冲刺——“剑来文字修仙游戏”。这次作业让我经历了许多挑战,尤其是在解决各种各样的bug时,简直让我措手不及。项目初期,我们的设计和开发进展顺利,但随着功能的逐步增加,问题也开始不断出现。
其中最让人印象深刻的一次是在我们集成多人协作系统时,突然发现游戏的数据存储出现了严重的同步问题。玩家的进度无法正确保存,部分玩家的数据丢失,而其他玩家的状态显示不一致,严重影响了游戏体验。我们检查了代码,排查了数据库的连接与同步机制,但依然找不到根本原因。
在这次危机中,团队成员发挥了重要作用。我们首先进行了集体讨论,梳理出了可能的 bug 来源。大家分工合作,快速定位到是由于游戏状态更新的异步操作没有做好同步机制,导致了数据的不一致。经过数轮调试与反复测试,我们最终修复了这个 bug,并且加入了更为完善的数据校验机制,确保玩家的游戏数据能够准确保存。
这一过程中,我深刻体会到了团队协作的重要性。每个成员都发挥了自己特长,互相配合,才能顺利解决问题。同时,这次经历也让我更加明白了 测试与调试的重要性,即使是一个看似简单的功能,也可能潜藏着巨大的潜在风险。
这次的经历,不仅让我积累了丰富的项目经验,也让我意识到,软件开发不仅仅是写代码,更是一场不断寻找问题、解决问题、优化代码的过程。每一次解决bug、每一次系统优化,都让我更加热爱这个行业,同时也更加注重细节和团队协作。
这场答辩也特别令我印象深刻。面对评委的提问,我们团队的成员通过清晰的逻辑和细致的讲解,成功地展示了我们的项目成果,尤其是在解释我们如何通过协作解决复杂问题时,我感到无比自豪。这次答辩不仅是对我们技术能力的检验,更是对我们团队合作精神的认可。
二、总结收获
-
2.1 展开说说你的软工实践故事
个人编程:瓦了个瓦小游戏
在个人项目中,我开发了一个类似“羊了个羊”的小游戏——“瓦了个瓦”。这个项目让我深入理解了游戏开发的基本流程,包括:
- 游戏机制设计:设计简单有趣的游戏逻辑,确保玩家能够快速上手且感到具有挑战性。
- 前端开发:在 Lightly 平台上开发前端页面,使用其提供的图形界面和组件,提升了开发效率,并且能够快速调试和部署。
通过这三个项目,我不仅学到了如何进行软件开发,还提高了我的团队合作能力和项目管理能力。
结对编程:跨界合作平台
在结对编程中,我们合作开发了一个“项目合伙人平台”,目的是帮助用户根据兴趣和技能找到合适的合作伙伴。通过结对编程的方式,我和搭档的配合提高了代码质量,并且不断进行讨论和改进:
- 实时反馈:通过结对编程,我们可以随时互相检查代码,及时发现并修复潜在的bug,确保代码的稳定性。
- 创意碰撞:我们的项目在设计时,搭档提出了加入“技能匹配”功能的建议,通过更精准的匹配,提升了平台的价值和用户体验。
团队编程:剑来文字修仙游戏
在团队编程中,我们共同开发了“剑来文字修仙游戏”。这个项目使用了 Lightly 平台进行开发,我们重点解决了多人协作和代码整合的问题:
- 版本控制与协作:通过 Git 进行版本管理,确保每个成员在自己的分支上开发,最后进行合并,避免了代码冲突。
- 任务分配与进度管理:我们使用了 墨刀原型 来进行任务管理和原型设计,确保每个成员都能明确自己的任务和目标,提升了团队的整体效率。
2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?
在这门课程中,我学习并使用了一些新技术和工具,特别是在 Lightly 平台的使用上,这些技术让我在开发过程中事半功倍:
- Lightly:
- 用途:这是一个高效的开发平台,帮助我们在前端和后端快速开发应用。它提供了丰富的可视化界面,减少了手动编写复杂代码的需求。
- 帮助:通过使用 Lightly,我们可以快速构建和调试应用,尤其是在没有使用传统前端框架(如Vue.js)的情况下,Lightly的拖拽式界面和集成的开发工具使得项目开发变得更加简便高效。
- Git/GitHub:
- 用途:版本控制和团队协作工具。
- 帮助:Git/GitHub的使用帮助我们管理代码的不同版本,确保每个成员的开发进度同步,并通过Pull Request进行代码审查,有效避免了代码冲突。
- 墨刀原型:
- 用途:原型设计和任务管理工具。
- 帮助:墨刀原型是我们团队进行产品设计和用户体验测试的重要工具。通过它,我们能够迅速制作和分享交互式原型,让团队成员更好地理解项目需求,并提前预演产品功能和界面。它也帮助我们在设计阶段就发现潜在的用户体验问题,从而减少开发阶段的修改成本。
2.3 技术之外,这门课程还给你带来了哪些方面的提升?
这门课程不仅让我在技术层面有了显著提升,还在其他几个方面带来了很大的收获:
- 团队协作能力:
- 在团队项目中,我学到了如何与团队成员高效沟通与合作。尤其是在遇到分歧时,如何通过讨论达成一致,最终推动项目进展。
- 时间管理与任务规划:
- 使用 墨刀原型 等工具,帮助我学会了如何进行时间管理,合理规划任务的优先级,确保在有限的时间内高效完成工作。
- 自我解决问题的能力:
- 在开发过程中,我们经常会遇到技术上的难题。通过不断查阅资料、讨论以及尝试不同的解决方案,我的解决问题的能力得到了极大的提升。
- 代码质量与维护意识:
- 我深刻体会到代码质量的重要性。在项目中,我们不仅关注功能的实现,还注重代码的清晰度和可维护性,这对未来的项目迭代和扩展至关重要。
2.4 如果还有什么想记录的或者想说的,就写在这儿吧!
通过这门课程的学习和实践,我对软件工程的整体流程有了更加全面的了解。从技术角度来说,Lightly 作为一个高效的开发平台,让我能够更专注于业务逻辑的实现,而无需过多关注底层实现细节;从团队协作角度来说,通过结对编程和团队开发,我不仅提高了自己的编码能力,还培养了如何在团队中发挥作用的能力。
最有趣的部分是我们在开发“剑来文字修仙游戏”时,遇到的一个bug导致了整个游戏数据不一致,经过几轮讨论和调试,最终我们找到了问题的根源并成功解决,这让我体会到了团队合作的力量。
对未来的学弟学妹们,我想说:“软件开发是一个不断学习和不断尝试的过程,技术和工具是重要的,但团队合作和解决问题的能力同样不可忽视。多做实践,敢于挑战,你会收获更多的经验和成长。”
三、致谢
在这次软件工程实践课程的旅程中,我收获了不少,不仅学到了技术知识,还认识了许多有趣的人。在这里,我想感谢所有在这个过程中帮助过我的老师、同学和朋友们。
首先,感谢我们的任课老师和助教。老师们不仅讲解清晰,而且特别耐心,总是在我们遇到技术难题时,提供及时的帮助。每次看到老师耐心的解答,我都觉得自己像是找到了方向盘,避免了“迷航”。如果没有老师的悉心指导,真不敢想象我们会陷入多少“bug”的泥潭。
其次,特别感谢我的团队小伙伴们。我们是一个默契的团队,大家分工明确,各司其职,一起头脑风暴,一起攻克难题。从最初的想法碰撞到最后的代码调试,团队的合作让整个项目不仅顺利进行,还让过程充满了乐趣。每个人的努力和智慧都让项目变得更加完美,真的很幸运能和你们一起工作!
还有,我要感谢课程中与我一起讨论的同学们。每次大家讨论问题时,听到不同的观点和想法,脑袋里都会灵光一现。正是因为有了大家的启发,我们才能不断优化方案,解决难题。你们的建议和意见对我帮助巨大,真心感谢!
总之,这次软件工程实践课程让我不仅学到了很多技术知识,还体验到了团队合作和沟通的重要性。希望以后能继续和大家一起,合作愉快、一起成长!