已有的事后必再有

news/2025/1/4 13:11:03/文章来源:https://www.cnblogs.com/linzihao/p/18639637

学期回顾

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

对软件工程的第一印象

最初,我对软件工程的理解非常肤浅,以为它只是一门普通的专业课程。然而,随着个人作业、结对作业和团队编程的深入,我深刻体会到了软件开发的巨大压力。

初步达到我的预期

在这三个月的学习实践中,我参与了需求分析、原型设计和小组编程的后端开发,大致了解了软件开发的全部流程。特别是在后端接口开发和数据库部分,我不仅实践了所学知识,还将其与数据库课程内容相结合。

2.磨练了个人的意志。在众多作业完成过程中,最让我感到痛苦的是修改bug,尤其是修改别人的代码。对于自己编写的代码,至少还能有一定的思考方向,但遇到其他人的问题时,真的让人无从下手。

3.最重要的是掌握AIGC技术。AI贯穿了我整个软件工程学习史。从国内的大模型如Kimi、豆包,到国外的ChatGPT,一系列人工智能大模型在代码实现、bug查找修改等方面发挥了巨大作用,可以说没有AI,就没有今天能够顺利完成软件工程课程的我。

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

在软工实践课程中,我编写了大约9000行代码。其中,个人作业约500行代码,结对作业约3000行代码,剩余的都是在团队作业中完成的,包括后端接口代码、单元测试代码和数据库相关代码。后期还参与了前端对接和部分代码问题修改。

在个人作业中,我实现了类似“羊了个羊”的小游戏“猴了个猴”。小游戏本身逻辑不难,但从零开始设计构思并编写一个小游戏程序对当时的我来说确实是一个不小的挑战(多亏AIGC才能快速实现满足需求的代码)。

在结对作业中,我主要负责前端界面的路由跳转等函数设计以及云数据库的管理。两个人一起实现开发一个小程序,几乎占据了我们整个国庆假期(除去休息的前两天),在各大网站学习技术,了解相关知识,在GitHub上查阅了大量前人的代码,在结合AIGC工具的帮助下,终于在截止日期前完成了项目。接下来三天,我们几乎每天都是两点一线,宿舍食堂两头转,两眼一睁就是写代码。

在团队项目中,我参与了“养食记”的设计与开发,承担的角色是前端页面设计。好处是有的,能够理解其他人的工作,更好地进行交流讨论,改进优化程序,修改bug。

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

作业 花费时间
第一次个人作业 4小时
第二次个人作业 20小时
第一次结对作业 20小时
第二次结对作业 45小时
第一次团队作业 30小时
第二次团队作业 100小时
现场编程作业 5小时
团队作业beta冲刺 80小时

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

累计时间 实际周均时间 预计周均时间
304小时 24小时 25小时

1.3 印象最深刻的是

毫无疑问,是小组编程阿尔法冲刺的经历。在大约10天的时间里,在白天还要上课的基础上,将原型设计的软件实现出来,我认为这对所有人来说都是一个极大的挑战。但是,在组长的带领下,历经多个日夜的鏖战,我们最终还是完成了大部分重要的功能,使我们的项目初具雏形,能够在发布会上进行展示。那一段时间里,和小组成员在宿舍苦苦熬夜,为实现一个功能感到开心,发现修改一个bug而激动,现在看来,都是微不足道的小事情,但在当时却是激励我们不断把软件完成下去的动力。当最终看到自己编写的程序成功运行起来,通过二维码展示给大家时,欢欣雀跃,无比自豪的心情无疑是对自己最大的回报。

二、总结收获

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

经验总结:

(以下观点都是建立在自身痛苦经历上总结出来的)

一定要养成写代码注释的好习惯:注释不仅是用来帮助其他人理解你的代码,还是帮助未来的自己。因为一段时间后,可能连你自己也看不懂这段代码(至少花费一定的时间去理解)。

前期不要过多的设计细节:过多的设计细节的功能会大大拖延前期的进度,同时在没有整体完成的基础上,一些小的功能是依赖与其他主要功能的,在大部分模块完成前无法实现。

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

技术方面

云服务器配置搭建及小程序项目部署:自主搭建了腾讯云服务器并用于配置mysql数据库以及小程序的后端,了解配置域名以及ssl等服务器管理有关方法。

mysql数据库管理维护:实践了在数据库管理系统课程上学习到的知识,配置、运行、维护数据库,实时监控保证数据安全。

python-flask后端框架:掌握搭建flask框架体系,开发运行于服务器上,轻量级的后端框架,满足对数据库进行操作的接口需求。实现ai接口的调用。

vue3框架:了解vuee3前端框架,设置store来管理全局变量,页面的设计,函数的编辑以及接口的调用。

生产力工具

APIFOX:便捷的编写接口文档,支持根据文档写接口测试,根据文档生成代码,直接发送请求并判断返回格式是否正确。同时,还能用于简单接口自动化测试,可以支持多线程多请求访问。

HBuilder:前端开发工具,支持内置浏览器预览设计的小程序,且支持一键打包,对小型的程序还可以生成临时查看的二维码。

XShell Xgtp:好用的远程连接服务器的工具,不论是上传文件还是操作终端。

AIGC工具:无论是编写实现某些功能的代码,还是修改代码中bug,以及帮助优化代码,AIGC在本次的课程中都居功至伟,可以说全部以上的代码都由AI经手过。(再次感谢Kimi,豆包,ChatGPT4)

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

抗压能力:面对时间紧迫,任务量繁多的项目开发工作,没有良好的心理抗压能力,很难在日后的职场上坚持下来。

协作能力:较大的团队项目不是一个人埋头苦干能够完成的,如何分工,如何对接,如何避免矛盾分歧,都需要在实践中学习掌握。

自学能力:学校不可能教会你所需的全部知识。只有不断的自主学习才能跟进时代的潮流,把握机会,成长自己。

时间管理能力:在日常课程中挤出时间,分配好每一部分的工作,按部就班的完成,最大化利用时间,才能高效率的完成任务。

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

虽然我的专业是大数据,未来不一定会从事软件开发相关工作,但是作为一名计算机学院的学生,怎么能没有和伙伴们熬夜开发程序的经历呢。大三上的软件工程课程很好的弥补了这一缺憾,算是让我的计算机学习生涯更加圆满了一些吧。过程中尽管存在种种挫折,可是当这篇博客写到这里,一切都即将结束的时候,或者真的只有一句轻舟已过万重山可以形容此时我的心情了吧。

三、致谢

最想要感谢的人是我们小组的组长。在他们的帮助鼓励下,我才能在软件工程这门课程上收获如此之多。在遇到问题时有人分享,思考解决。遇到困难时,分工合作,共同化解。情绪低落时,能够一起谈笑抱怨,缓解压力。同时,在困惑时,有人一起探索求真,指引方向。

同时,也感谢张栋,吴越钟老师以及助教们的帮助指导,顺利的完成本学期的软件工程课程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/861036.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

秒杀场景的设计思考

秒杀场景的设计思考 在学习Redis的之后,一个绕不开的话题就是秒杀系统的设计。本文将从下面几个方面展开一下个人简单的理解:秒杀场景的介绍 设计的核心思路 怎么限流、削峰、异步 planB 总结‍ 秒杀场景的介绍 秒杀场景是大家常说的高并发场景,但是实际上其与单纯的高并发还…

UE4.27, 揣摩源码, 序列化 (三) FLinkerLoad, FLinkerSave

3. FLinkerLoad, FLinkerSave分别是UObject的反序列化和序列化的内核3.0. UPackage与UObjectUObject因为涉及与其他UObject的复杂引用关系,如果我们客制化地单独正反序列化每一个UObject,我们会在反序列化的时候惊觉这是繁琐而不可能的。为了满足UObject这种复杂的对象的序列…

设计Element UI表单组件居然如此简单!

0 前言 上文讲解了Jest框架对组件库测试,TypeScript和Jest都为代码质量和研发效率。之前实现Container和Button组件以渲染功能为主,可根据不同属性渲染不同样式去实现布局和不同格式的按钮。 本文的表单组件,除了要渲染页面组件,还支持很好页面交互,从Element3的表单组件开…

Kubernetes(v1.29)学习笔记

什么是KubernetesK8s是Kubernetes的简称,是一个开源的容器编排系统,用于自动部署、扩展和管理容器化应用程序。 Kubernetes源于希腊语,意为“舵手”或“飞行员”,其主要功能包括服务发现与负载均衡、存储编排、Secret和配置管理、批量执行、水平扩缩、自动化上线和回滚、自…

简答题

1 冯诺依曼结构计算机的基本思想是什么 ?按此思想设计的计算机硬件系统的应由那些部件组成,它们各有什么作用? 存储程序和程序控制是冯诺依曼结构计算机的主要设计思想。存储程序是指将解题的步骤编写为程序,然后将程序和运行程序所需要的数据以二进制的形式存放到存储器中…

基于双PI控制器和三电平SVPWM交流同步直线电机矢量控制系统的simulink建模与仿真

1.课题概述基于PSO粒子群优化的PV光伏发电系统simulink建模与仿真。通过PSO粒子群优化进行最大功率跟踪。2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a 4.系统原理简介光伏(Photovoltaic, PV)发电系统利用太阳能直接转换成电能,是实现可持续能源战略的重要组成部分。…

Gridview使用CheckBox全选与单选 Version 3

还是有网友开发ASP.NET程序,今天联系Insus.NET说,参考下面随笔,无法实现,没有效果。Gridview使用CheckBox全选与单选 Version 2 https://www.cnblogs.com/insus/archive/2013/05/22/3093114.html 几番仔细检查,放大对着搬,照抄,没能错呀!说实的,具体原因,Insus.NET…

RL中on-policy和off-policy的本质区别/重要性采样

讨论了on-policy和off-policy的本质区别。说明了off-policy MC和off-policy TD是如何利用重要性采样的,以及为什么Q-learning不需要进行重要性采样。本随笔的图片都来自UCL强化学习课程lec5 Model-free prediction的ppt (Teaching - David Silver ). 回忆值函数的表达式: \[v…

2024-2025-1 20241319 《计算机基础与程序设计》第十四周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14这个作业的目标 《C语言程序设计》第13章作业正文 https://www.cnblogs.com/wchxx/p/18639513**教材学习内容总结 1. 文件的打开与关闭…

视野修炼-技术周刊第115期 | 现代的 Nodejs 能力

① 一些现代的 Nodejs 能力 ② MarkItDown ③ ReactAI ④ 背景移除 ⑤ 智能图片描述生成器生成器欢迎来到第 115 期的【视野修炼 - 技术周刊】,下面是本期的精选内容简介 🔥强烈推荐一些现代的 Nodejs 能力🔧开源工具&技术资讯MarkItDown ReactAI🤖AI工具&资讯背…

2024-2025-1(20241321)《计算机基础与程序设计》第十四周学习总结

这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(2024-2025-1计算机基础与程序设计第十四周作业)这个作业的目标 <深刻学习C语言,反思一周学习,温故知新>作业正文 ... 本博客链接https://www.…

11. 日期和时间控件

一、日期和时间控件日期和时间类也是 PySide6 中的基本类,利用它们可以设置纪年法、记录某个日期时间点、对日期时间进行计算等。用户输入日期时间及显示日期时间时需要用到日期时间控件,本节介绍有关日期时间的类及相关控件。我们可以在终端中使用 pip 安装 pyside6 模块。 …