这个作业属于哪个课程 | 软件工程2024 |
---|---|
这个作业要求在哪里 | 个人总结 |
这个作业的目标 | 平芜尽处是春山:我的软件工程之旅 |
学号 | 102202130 |
📖平芜尽处是春山:我的软件工程之旅
📝总体回顾
在2024年,软件工程的出现,使我的大学生活变得异常繁忙,陪伴我度过了许多漆黑的夜晚,也见证着我写出属于自己的软件,看着一个一个从无到有的软件也感觉异常充实。
✨第一章 初识软件工程
第一章的故事从传闻开始,说起要开始上软件工程了,学长学姐们的第一句话就是看来你这学期要很忙了。。。(回顾对于软件工程课程的想象)
在未开始软件工程课程之前,我就已经听说过这门课程的诸多传闻。作业多、博客多、代码多……大二的时候听学长学姐说他们已经能够制做出自己的游戏和软件,那时觉得离我还挺遥远的,但经过与软工的相遇相识相知,发现原来我和他们之间只差了一个软件工程啊!!!
最早对软件工程没有什么概念只以为是写出可以实现功能的程序,但渐渐发现没有那么简单,编程只是其中的一部分。SE是一个系统化的过程,涉及到需求分析、设计、开发、测试等等。
经过这段时间的相处,我的理论水平与实践技能都得到了一定的提升。从个人项目到结对编程,从而进化到团队项目,中间再穿插有极限编程,从中体验到了团队合作的乐趣和挑战,也意识到沟通和协调的重要性。
📈第二章 实践中的成长
在软件工程的世界里,成长往往伴随着实践的深入而逐步显现。第二章的故事,就是关于我在实践中如何一点一滴积累经验,成长为一个代码开发者。
还记得第一次个人作业只是简单的准备工作,这道开胃小菜让我无法预测到之后的作业,而第二次的个人作业就开始上主食了,直接就上升到了游戏制作。
那次作业印象最深刻的点就是舍友都回家过中秋了,而我独自于宿舍🏫在开发小游戏中度过黑夜迎来中秋的清晨。更深刻的点就是在好不容易完成制作后,初次使用github,竟然把上传代码的分支给误删了,接着就是在紧张刺激的氛围中寻找误删的《耶了个耶》小游戏。🍂
起步:环境配置与工具准备
一切的开始,都要从搭建开发环境说起。首先下载了pygame库,这是一个能够创建游戏和交互式应用的强大工具。接着,在VScode中配置了github copilot,它将在我的编程旅程中扮演智能助手的角色,帮助我提高编码效率。此外,我还接触了AIGC技术,包括豆包、craiyon和kimi,这些工具将协助我生成游戏所需的背景图、图标和代码。
探索:需求分析与游戏设计
随着环境的搭建完成,我开始着手进行需求分析,思考我的游戏应该具备哪些特色。我希望它能够拥有简洁的图形界面,提供多模式选择,并设置时间限制来增加游戏的紧张感。此外,我还计划加入加时道具,让玩家在关键时刻能够增加额外的游戏时间。这些想法最终转化为具体的游戏玩法和界面设计,我为游戏设计了主菜单、游戏界面和结束界面。
实施:技术实现与代码编写
技术实现阶段,我开始使用Python语言和Pygame库进行游戏开发。我学会了如何加载和缩放图像资源,并处理游戏逻辑,包括图案生成、事件处理和得分计算。这一阶段,我深刻体会到了理论与实践之间的差距,也学会了如何将抽象的需求转化为具体的代码实现。
成果:项目完成与心得体会
在与AI的不断交流中,我的游戏项目终于完成。深刻体会到了AIGC工具在提高开发效率和创新设计方面的作用。虽然AIGC技术在某些情况下可能存在局限性,但它在内容创作、辅助设计、代码开发和文档撰写等方面的应用,无疑极大地提高了我的工作效率。
从最开始的想设计思路,可能想的没有很完善,后面不断新增了好多功能。开始编写代码的时候,没有使用类分装,零零散散的很难慢慢添加功能,后续在类中使用大量函数,比较好更改。完成任务基本要求,包括主页面,游戏界面,多层消除,胜利和失败的页面展示、游戏效果界面和卡片图案。与最开始的想法设计还是有所不同,经过不断完善修改得到此版本,写游戏真的真的好不容易啊。
来看看成品吧
总的来说,第二章的故事是关于在实践中不断学习、成长和突破自我限制的过程。每一个挑战都是我成长的催化剂,每一次成功都坚定了继续前行的决心。在软件工程的道路上,将继续探索、实践,用代码编织自己的梦想。
🤝第三章 团队的力量
自此我不再孤独。在软件工程的世界里,软件开发离不开团队合作。第三章的故事,就是关于我和我的搭档如何在结对作业中携手合作,共同克服挑战,实现项目目标的历程。
结对编程的启航
我们踏上了结对编程的旅程,面对着两个艰巨的任务:需求分析和原型设计,以及代码实现。这两个任务考验着我们对软件工程的理解,也考验着我们的合作精神。
需求分析和原型设计
在需求分析阶段,我们首先明确了项目的目标和需求。我们先在草稿纸上画出了所需的页面,这为后续使用墨刀大大节省了时间,唯一不足就是过于简洁了。
我们的原型设计最终包括了用户注册、项目创建、项目加入等多个页面,并通过动图展示了各个页面的操作流程。
我们的结对还没完结!!!光有原型怎么能行呢,少不了国庆期间的编程实现
代码实现
本以为我们会做一个小程序或者APP,万万没想到我们脱离原型做成了一个Web。
通过结对编程,我们深刻体会到了团队协作的力量。我们学会了如何更有效地沟通和协作,如何在压力下保持冷静,以及如何从错误中学习并不断改进。
总结来说,第三章“团队的力量”讲述了我们如何在结对作业中发挥团队合作的优势,共同解决问题,实现项目的成功。这个过程不仅提升了我们的技术能力,也锻炼了我们的团队协作和沟通能力。通过实际的结对编程实践,我们更加深刻地理解了团队合作在软件开发中的重要性,并在实践中不断提升自己的专业技能和团队协作能力。这就是我们的在软件开发奇妙世界里的冒险故事,一个关于团队合作、智慧和勇气的故事。
🌟第四章 团队大项目的征程
在需求阶段,最初提出构想,在制作PPT的同时和队长不断完善软件的功能。
设计阶段,进行概要设计和各种UML设计。
实现阶段,尝试了一个新的开发环境和工具,从web到微信小程序再到现在的app,体验感拉满。不是在纠错的路上就是在遇到错误的路上,AI纠错经常越纠越错,终是要靠自己来改正。我主要负责登录注册忘记密码和社区部分,刚开始的时候只是写静态页面还没有涉及到云函数。后面大约是第三天的时候突然开始写云函数,但是刚开始并不顺利,我的云函数一直运行不了,经过对照分析纠错,原来是云函数名称发问题啊。完成社区模块还是很愉快的,一起写社区模块的队友非常给力。
后面帮助其他模块的同学一起完成项目,先制作了页面的导航栏,后进行各模块代码的连接、页面美化和“我的帖子”模块的代码编写。这个过程不仅考验了我的技术能力,也锻炼了我的团队协作技能。通过充分沟通与协作,成功实现了用户可以修改或删除自己发布的帖子,与此同时帮助同伴查找云函数的错误,发现只是云函数名称大小写敏感的问题(这个问题我熟,上个阶段可是卡了我整整半天呢)。在这个过程中主要是维护unicloud的云数据库。
这个过程印象最最最深刻的就是α冲刺阶段的编写代码过程,每天离不开电脑的日子终是轮到我了,熬夜到两点三点的日子持续了一整周!
🚀第五章 现场编程的考验
真没想到半天之内一个记账小程序就此产生。这是我第一次制作小程序,我们使用了微信小程序开发者工具。我经历了从最初的轻松探索到即将验收的争分夺秒的全过程。刚开始还有点不熟悉,后来专注于记账功能的代码编写,不断进行调试和优化来实现功能。在慢慢摸索中渐渐熟悉了软件,能够将UI设计转化为实际的代码。通过与团队成员的紧密合作,感受到了团队协作的力量,以及在项目中沟通和协调的重要性。
👏第六章 平芜尽处是春山
随着课程的结束,这场波澜壮阔的航行小小地告一段落。在这段旅程中,我们面对了无数的挑战和困难,也共同庆祝了每一个小小的胜利和进步。“平芜尽处是春山”,这不仅是一句诗,也是精神的写照。在看似无尽的平凡和挑战之后,我们终于迎来了属于自己的春山——那些成长的喜悦和成功的果实。
经过本学期的软工课程,我发现学长学姐们所说不假。但也深知软件工程有假期消失术,但我收获了一个小游戏,一个web程序,一个微信小程序,一个App,更难能可贵的是开发的过程。
未来,我们将带着此次软件工程之旅中积累的宝贵经验,迈向新的征程。
补充内容
一、学期回顾
我的投入与产出⚙️
- 在软工实践课程当中我编写了好多好多好多……行代码。最终派上用场的代码至少有几千行,还有不少尝试的代码没有派上用场
- 在团队项目中我参与了福小旅的设计与开发,我在其中担任了开发人员。
- 软工实践的各次作业分别花费的时间:
作业 | 花费时间 |
---|---|
第一次个人作业 | 3h |
第二次个人作业 | 12h |
第一次结对作业 | 15h |
第二次结对作业 | 79h |
第一次团队作业 | 10h |
第二次团队作业 | 80h |
现场编程作业 | 4.5h |
团队作业beta冲刺 | 35h |
- 在软件工程课程上花费的时间
累计时间 | 实际周均时间 | 预计周均时间 |
---|---|---|
238.5h | 26.5h | 20h |
令印象最深刻之处✨
好不容易过个中秋结果在学校写小游戏;好不容易写完代码结果github分支被我误删了!详情见第二章
二、总结收获
我的软工实践故事📘
见《平芜尽处是春山:我的软件工程之旅》
学习到的新技术或工具以及它们的帮助🤖
- GitHub:主要在结对编程、团队作业和现场编程之中发挥作用。GitHub作为代码托管平台,让我和队友能够轻松地进行代码的版本控制和协同工作。通过分支管理、Pull Request和Issue跟踪,我们确保了代码的一致性和项目的顺利进行。
- 墨刀:墨刀作为一款原型设计工具,让我能够快速将想法转化为可交互的原型。它丰富的模板和易用性大大缩短了从概念到原型的时间。
- Copilot:陪伴我进行编程,通过智能代码补全和建议,提高了我的编码效率。它在解决复杂问题时提供了宝贵的思路和代码示例,是我编程旅程中的得力助手。
- Kimi:Kimi作为一个多功能的AI助手,不仅在编程问题上给予了我指导,还在文档撰写和信息检索方面提供了巨大帮助。它的多语言能力和知识库让我能够快速获取所需信息,提高了工作效率。
- 微信小程序开发平台:能够开发轻量级、无需下载安装的应用程序,可用利用微信提供的丰富组件来更迅速进行开发。
- HBuilder:作为一款专为前端开发设计的IDE,极大地提升了我的开发效率。它支持HTML、CSS、JavaScript以及各种前端框架和语言,让我能够快速编写和调试代码。
- **unicloud **:unicloud云数据库提供了一个稳定且可扩展的数据存储解决方案。它的灵活性和易用性让我能够轻松管理数据,而无需担心后端的复杂性。
除技术外其他方面的提升📊
- 时间管理能力🍅:各种实践课程并行,以及课程作业,我学会了合理分配时间。
- 团队协作与沟通🤝:在结对作业和团队项目中,我深刻体会到了有效沟通的重要性。学习如何与队友协作,如何表达自己的想法,并倾听他人的意见。
- 解决问题的能力🧠:面对编程中的各种挑战,我学会了如何冷静分析问题、寻找解决方案,并从失败中吸取教训。特别是找bug,不仅能够找出自己代码的问题,也要帮助队友寻找问题。
- 自我学习与适应新技术💪:软件工程课程鼓励我不断学习新技术和工具,提升了自我驱动的学习态度和快速适应新技术的能力。
- 创新思维💭 :在设计和实现项目的过程中,被鼓励去创新和尝试新的想法。
还有什么想记录的或者想说的📝
具体见第六章
大胆去尝试,没有什么是你敲不出来的,过程虽然很艰辛,但是成功的喜悦是发自内心的!!!💡
三、致谢
一个学期过去,首先要感谢一下自己,成功地结束了好几门实践课,不仅仅是软件工程,经过了许多漆黑的夜晚和可能是被迫放弃的假期,终于在2025年来临之前迎来了胜利的曙光。特别要感谢结对作业的队友,效率真的好高,配置环境的能力也很强,陪我熬了好几个夜,虽然我发现我们的作息完全不同,每次我准备收工之时,发现她竟然还没睡,还在写软件工程,并且总能发出一个新版本。