软工个人总结
这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | [作业要求](软件工程2024秋——个人总结作业 - 作业 - 软件工程2024 - 班级博客 - 博客园) |
这个作业的目标 | 项目实战 |
学号 | 052205144 |
🌟 轻舟已过万重山——2024秋软工实践个人总结博客
🍵 标题:算法与奶茶齐飞
是啊,长达三月,时至一秋,蓦然回首,过去种种,皆历历在目,看呐!那是我们的来时路!!!!
"如果代码是奶茶,那我们写出来的bug就是珍珠,有些卡喉但又让人上瘾!" 🍡😄而且我们组长就爱用奶茶解决问题,详见软工实践现场答辩VCR
注:本博客照片皆来自副组长王露洁💤小姐姐的朋友圈 _happy~~
∧__∧
(。•ᴗ•。) ☀️
/ ⌒ヽ
(_____) ノ
🏞️ 一、学期回顾
🌈 1.1 回顾你对于软件工程课程的想象 你可为软工拼过命?
在本学期初,我对软件工程课程充满了期待,在此之前哈,我就特别喜欢打手游噻,我也想做手游,我还认为这门课老师会教我们点实践方面的东西,学了这门课就可以出去接活了,结果啥子都没教诶,我是真恼火啊,啥子都要重头学,学就学嘛,学到一半不开始做就做不完,一直是个半吊子水平瞎做,熬了好几通大夜,甚至有一次刚做完然后就天亮了,该去上周一早八软工课了!SOS我是真的恼火呀~QAQ 我感觉这学期都要完了我还是个半吊子是咋回事QAQ,有人和我一样吗
但是哈,毋庸置疑,这个课程还是让我学到了很多有用的东西,回顾自个儿目前的所学所练所得(难绷~),随着课程的深入,我在这些方面达到了自己的期待和目标吧:
-
技术探索与应用的先锋者🚀
- 在面对课程实践项目时,展现出对新技术的强烈好奇心与快速学习能力。例如,当项目需要构建一个具有动态交互效果的前端界面时,能够主动钻研并迅速掌握如 Vue.js 或 React 等热门前端框架,将其巧妙应用于项目中,为软件带来流畅且富有吸引力的用户体验,使我们的作品在技术创新性上脱颖而出。✨
- 善于整合多种技术工具来优化开发流程。就像一个技术魔法师🧙♂️,能够把代码编辑器的智能提示功能💻、版本控制软件的分支管理策略📂以及自动化构建工具的脚本编写⚙️完美结合,让代码编写、协作开发以及项目部署如同精密运转的魔法机械🔮,高效而有序,极大地提升了整个团队的开发效率与项目质量。
-
问题解决的智慧侠客🦸♂️
-
拥有敏锐的问题洞察力,在软件调试过程中如同拥有鹰眼👁️🗨️一般,能够迅速从纷繁复杂的代码逻辑和系统运行表象中捕捉到问题的关键所在。无论是难以捉摸的内存泄漏问题,还是因数据传输异常导致的功能故障,都能通过细致的代码审查🔍、巧妙设置断点进行调试🚦以及对系统日志的深度分析📜,精准定位问题根源,并迅速施展出对应的解决方案,如优化算法、修复数据校验漏洞等,及时化解项目危机,确保开发进程的顺利推进。💪
-
具备坚韧不拔的毅力与创新思维来攻克难题。当遇到一些在课程资料或常规技术论坛中难以找到直接解决方案的棘手问题时,不会轻易放弃,而是像勇敢的探险家🧗♂️深入未知领域一般,深入研究相关技术原理,尝试从不同的技术角度和思维方式去思考问题。例如,在解决跨平台兼容性问题时,通过对不同操作系统底层差异的深入研究,创新性地提出了一种基于中间适配层的解决方案,不仅成功解决了项目中的难题,还为团队在处理类似复杂技术问题时提供了宝贵的经验借鉴。🌟
"新的风暴已经出现,怎么能够停滞不前!" 🌪️⚡💥🚀✨
-
-
团队协作的活力纽带🤝
- 在团队中扮演着积极的沟通协调者角色。无论是组织小组讨论、分配开发任务还是跟进项目进度,都能以热情洋溢且有条不紊的方式进行。就像乐队指挥家🎼一样,确保每个团队成员都清楚自己的角色与任务,并且能够在和谐的节奏下协同工作。通过建立高效的沟通机制,如定期的项目进展汇报会议🗣️、即时通讯工具群组的有效利用等,让信息在团队成员之间快速流通,避免因沟通不畅导致的工作重复或误解,有效提升了团队的整体凝聚力与协作效率。🔥
- 善于倾听并尊重团队成员的意见与想法,能够充分发挥每个成员的优势。在团队讨论中,不是一味地坚持自己的观点,而是以开放包容的心态认真聆听他人的建议🪄,如同海绵吸水一般吸收各种有益的想法,并巧妙地将其融入到项目方案中。例如,在数据库设计阶段,充分考虑到团队中擅长数据结构优化成员的意见,对数据库表结构进行了精心调整,使数据存储与查询效率得到了显著提升,同时也增强了团队成员之间的信任与合作默契。🤗
在这些方面还存在一些不足:
- 时间规划的迷茫舵手🕰️
在课程实践项目的时间安排上缺乏精准的预估能力和有效的规划策略。常常像一艘在茫茫大海中失去航向的船只🚢,在项目初期对各个开发阶段所需的时间估计过于乐观,没有充分考虑到可能遇到的技术难题⚙️、需求变更🔄以及团队成员之间的协作磨合等因素。 例如,在开发一个功能较为复杂的软件模块时,原计划一周内完成,但由于对其中涉及的一些算法优化问题预估不足,导致实际开发时间延长了近一倍⏳,进而影响了整个项目的进度安排,使得后续的测试与优化阶段时间紧迫,给项目质量带来了一定的风险⚠️。
容易受到外界干扰和自身情绪波动的影响,导致时间管理失控💥。在项目开发过程中,有时会因为一些社交活动🎉、个人兴趣爱好🎮或者临时的学习任务📚而分散注意力,不能全身心地投入到项目中。就像一只容易被路边野花吸引的蝴蝶🦋,频繁地在不同任务之间切换,使得开发时间被碎片化,工作效率大打折扣⚠️。此外,当遇到一些技术难题或者项目压力较大时,容易陷入焦虑情绪😣,进一步加剧了时间管理的混乱,形成恶性循环🔄。 - 文档撰写的幕后隐士📄
对文档撰写工作的重视程度严重不足,在整个课程实践过程中常常将其视为可有可无的任务❌。认为只要代码能够正常运行,软件功能能够实现,文档不过是一种形式上的东西,就像舞台背后的道具🎭,有没有都不影响演出效果。因此,在编写需求文档、设计文档以及用户手册等项目文档时,往往敷衍了事,只是简单地罗列一些基本信息,缺乏对项目整体架构、详细功能模块、业务逻辑流程以及用户操作指南等内容的深入阐述和清晰梳理,导致文档内容空洞、逻辑混乱,难以让其他团队成员或后续接手项目的人员快速理解项目全貌,给项目的维护、升级以及知识传承带来了极大的困难📉。
文档撰写能力较为薄弱,缺乏系统的文档写作规范和技巧训练🖋️。即使意识到文档的重要性并尝试认真撰写,写出的文档也常常像小学生的作文📝,语句不通顺、表达不清晰、格式不规范。例如,在描述软件功能模块的接口设计时,使用了大量模糊不清的术语和复杂冗长的句子,使得其他开发人员在阅读时如坠云雾之中☁️,无法准确理解接口的参数定义、返回值类型以及功能用途等关键信息,严重影响了团队协作的效率和项目开发的顺利进行。 - 代码优化与重构的遗忘行者🔧
在完成软件功能模块的开发后,缺乏对代码进行优化和重构的主动意识❗。往往满足于代码能够实现基本功能,就像一个疲惫的旅行者到达目的地后便不再前行🚶♂️,而忽略了代码中可能存在的诸多潜在问题,如代码冗余、算法效率低下、可扩展性差等。随着项目的不断推进和功能的逐步增加,这些问题就像隐藏在道路上的陷阱⚠️,逐渐暴露出来,导致代码的维护成本越来越高,修改一个功能可能需要牵一发而动全身🔄,严重影响了项目的开发效率和软件质量。
对代码优化和重构的方法与技巧掌握不够熟练,即使意识到需要对代码进行优化重构,也常常感到无从下手🧐。在面对复杂的代码逻辑和庞大的代码量时,缺乏系统的分析方法和有效的重构策略,不知道如何合理地提取公共代码、设计抽象类和接口、优化数据结构和算法等。例如,在处理一个包含大量重复代码片段的模块时,只是简单地进行了一些局部修改,而没有从整体架构上进行重新设计和优化,导致代码的结构依然混乱,可读性和可维护性并没有得到实质性的改善🔄。
"学软工,像喝珍珠奶茶,第一次吸总会被呛到,吸习惯了才发现满口都是快乐。" 🍹
⏳ 1.2 回顾你在这门课程中的投入与产出
-
代码量统计:
本学期共编写了约 5000 行代码。 -
参与项目:
团队项目名称:养食记
我的角色:后端开发与AI接口调用 -
软工实践的作业时间分配(据不完全统计):
作业 | 花费时间 |
---|---|
第一次个人作业 | 1小时 |
第二次个人作业 | 8小时 |
第一次结对作业 | 5小时 |
第二次结对作业 | 48小时 |
第一次团队作业 | 2小时 |
第二次团队作业 | 20小时 |
现场编程作业 | 5小时 |
团队作业Beta冲刺 | 25小时 |
项目统计 | 总时间 | 实际周均时间 | 预计周均时间 |
---|---|---|---|
软件工程课程总时间 | 114小时 | 9.5小时 | 6小时 |
"代码没写完,奶茶续一杯!debug没搞定,团建安排起!" 🤣
🌟 1.3 印象最深刻的作业或答辩
最让我印象深刻的是第一次团队作业答辩。在这次任务中,各个团队,为了挣取那个小蓝饼,提出各种***钻的问题,而各个小组更是绝了哈哈哈哈,疯狂画饼,饼我吃了捏~
真的灰常灰常有意思,这是这堂课人最齐,回答问题最积极的一次,后面大家就回答不积极了哈哈哈哈哈,因为理论的饼和实践的饼是分开算的!!!哈哈哈哈哈
"那天答辩完的感觉,就像喝到了一杯加双倍珍珠的奶茶,甜到飞起!" 🥤✨
∧__∧
(≧∀≦) 💖
/ ⌒ヽ
(_____) ノ
✨ 二、总结收获
💡 2.1 我的软工实践故事
在这为期三个月的课程实践中,我经历了一场充满挑战与成长的“冒险游戏”。每一次作业都像是一块拼图🧩,逐渐拼凑出我对软件工程的认知与能力的完整图景。
初次邂逅:个人作业的试水🐣
第一次个人作业像是“跟着感觉走~”🎵踏入未知领域的初探。那时,我对软件工程的理解还停留在“纸上谈兵📜”的阶段。用一个小时完成了简单的第一次个人作业后,我还美滋滋地以为:“噫,这课程怕是莫得难度哦~😏”。然而,第二次个人作业却狠狠给了我一记“暴击💥”:8小时才啃下需求分析、编码实现与测试的细节,让我意识到细致与专注才是代码的灵魂💻✨。
合作的阵痛:结对编程的磨合🛠️
进入结对作业阶段,合作就像是一锅火锅🍲,要放啥料,麻辣比例咋个整,都可能起争执。第一次结对作业用了 5小时,我和搭档简直像《成都》的歌词那样:“和我在代码堆里走一走~直到争吵渐渐消散咯~”🎵。第二次结对作业直接飙到 48小时,复杂的需求犹如麻辣锅底里藏着的花椒,时不时整得人脑壳痛🤯。不过,通过明确分工和利用版本控制工具,我们逐渐学会合作,“团结才是最辣的底料嘛!”🥳
在结对编程作业中,我初次尝试了Git多人协作,起初由于冲突频发导致版本管理混乱,但后来通过学习网络上面的相关视频,明确分支策略和定期Merge解决了这一问题。例如,在开发路径规划功能时,我负责实现后端算法接口,但由于与前端对接出现了数据格式问题,我们通过团队会议迅速调整了接口定义,成功完成任务。
后端开发:撑起项目的骨架🦾
作为团队中的后端开发人员,我承担了核心逻辑的实现和数据处理的重任。开发接口时,我常戏称自己是“数据快递员📦”,需要保证每个请求都能在“十分钟配送到家🚴♂️”。
- 接口设计:一开始设计API时,团队内经常因为字段命名和数据结构起争执:“这个字段为啥叫
user_id
?不如叫uid
嘛,简洁得很!”后来我学会遵循统一的命名规范,让接口文档逻辑清晰,便于前端小伙伴使用。 - 数据库操作:处理复杂的查询和事务时,我感觉自己像个“SQL炼丹师🧙♂️”,一不小心就会掉进性能优化的大坑🌋。“SELECT * 不要乱用嗷!”这句话已经刻进了脑壳里。
特别是在团队冲刺阶段,为了实现一个复杂的推荐算法,我连续熬了两个通宵🌙,当接口成功跑通时,整个人像《青花瓷》里唱的那样:“天青色等烟雨,而我在等数据~”🎵。
团队协作:从迷茫到默契🤝🐼
到了团队作业阶段,开始时我们都像“瞎子摸象🐘”,毫无方向。第一次任务只用了 2小时,但大家更多是在试探和相互熟悉。逐渐地,我们的团队从散沙变成了“盘它!👊”的紧密合作体。尤其是 Beta冲刺阶段,我们一口气投入了 25小时 开发,仿佛开挂一样:“哟,工作量再大都不怕,冲鸭~💪!”技术难题、需求变更这些“牛鬼蛇神👻”被我们逐一打败,最终成功交付项目。
现场编程:在压力中成长🔥
5小时 的现场编程就像“英雄联盟Rank局🎮”,压力拉满。时间紧迫让我们一边抓耳挠腮😵💫,一边“脑壳开天眼💡”。虽然结果不完美,但这次经历让我体会到时间管理的重要性,还学会了“先整点能跑的代码,后头再慢慢优化嘛~”🤭。
收获与反思:从迷茫到笃定🌟
回头看看这段“硬核修行🕉️”,我从最初的“哪个说了算我就听哪个🙈”变成了团队的“稳定大后方🛡️”:如何分配时间、如何高效协作、如何在压力中保持“嘎嘎稳”✨。正如歌词所说:“当初的愿望实现了吗~”🎵答案是:“实现了一部分,但未来更广阔!”🚀
作为后端开发的过程中,我不仅学会了技术,更锻炼了沟通能力和解决问题的思路。“代码是冷的,但开发的经历是热的🔥”,这段充满挑战的课程就像四川火锅,麻辣鲜香,回味悠长~🥢!
"每次代码冲突解决后,总感觉像从珍珠奶茶的吸管里成功吸出最后一颗珍珠,成就感爆棚!" 😂
🛠️ 2.2 学习到的新技术或生产力工具
-
在这次课程实践中,我学到了一些新技术和工具,感觉都挺实用的,下面来分享一下:
1. Git与多人协作 🧑💻🔀
在结对编程和团队作业中,我第一次真正接触了Git的多人协作。刚开始时,冲突一大堆,版本管理搞得一团乱,后来通过看了一些教程,学会了分支管理和定期Merge,问题就解决了。
2. 后端技术栈 ⚙️💻
作为后端开发的一员,我学到了一些后端技术:
- RESTful API:理解了如何设计和实现API接口,做了不少接口处理。
- 数据库优化:学会了怎么优化数据库查询,提高效率,像是通过添加索引来加速查询。
- JWT:了解了如何用JWT做用户认证,确保系统的安全性。
3. 算法与数据结构 📊🔍
在开发路径规划功能时,我用到了A和Dijkstra*算法,这让我对图论有了更深的认识,也让代码变得更高效。
4. 自动化工具 🤖🚀
为了提高效率,我还接触了一些自动化工具:
- Jenkins:学会了搭建持续集成和持续交付(CI/CD),自动化构建、测试和部署,节省了很多时间。
- Docker:通过容器化开发环境,确保了代码在不同环境下的一致性。
5. 敏捷开发与团队工具 🏃♂️📝
在团队协作中,我们采用了敏捷开发方法,并且使用了工具来管理任务:
- Scrum:把项目分成若干个迭代,每个迭代都有明确的目标,工作效率提升了不少。
- Trello & Jira:通过这些工具,项目任务管理变得清晰多了,进度也一目了然。
6. 性能监控与调优 ⚡📊
在项目中,我也学会了如何监控和调优性能:
- Postman:用它来测试API接口,能清楚看到请求和响应的细节,问题能迅速定位。
- Profiler & Debugger:调试代码时,用了VisualVM和PyCharm的性能分析工具,快速找出瓶颈并优化。
7. 文档编写工具 📚🖋️
文档方面,我学到了如何用一些工具提升效率:
- Markdown & GitHub Pages:通过Markdown写文档,然后结合GitHub Pages生成项目文档网站,这样文档管理更方便。
- Swagger:用Swagger来生成API文档,让团队成员更轻松地理解接口。
8. HBuilder X 🖥️💡
在前端开发时,我用的开发工具是HBuilder X。它简单易用,支持多种前端技术栈,特别是做Vue.js项目时,智能提示和自动补全功能帮了我很大的忙,提升了我的开发效率。
9. Firefox开发者工具 🦊🔧
调试前端时,Firefox的开发者工具真的很强大。它的调试功能让代码执行过程一目了然,网络请求监控也很实用,可以轻松检查API是否按预期返回数据。
这些工具和技术的学习,不仅让我在开发中更加得心应手,还让我意识到团队协作的重要性,提升了工作效率。
🌱 2.3 技术之外的提升
-
心态成长:
在课程实践头,我除技术上学了一些东西外,人的成长也多得很。
①团队协作
跟队友搞项目时,才晓得啥子叫“舌头比脑壳快”。一开始分工没整明白,结果啥子都干乱了。后头我们开了几次会,学到好好沟通的重要性。以后不管是分任务还是对功能需求,队友间“摆龙门阵”整清楚了,再动手才不至于浪费时间。
②时间管理
说真的,时间一不规划好就完球。我原来觉得时间多得很,结果一赶ddl就急得脚打后脑勺。后来我逼着自己学会了安排时间,像用个啥子番茄钟,列任务清单,慢慢把时间卡到点。现在,不说高效率至少比以前好多了。
③抗压能力
项目赶工的那几天,我差点儿被压力压得歪了,尤其是调试Bug的时候,感觉心态都爆炸了。后头我学会了换个角度想问题,比如累了就出去整碗小面,回来继续搞。发现心态平了,效率反而还高了些。
④自我反思
在出问题的时候,我没再推给别人,而是先问“是不是自己问题?”比如,后端接口对接搞出点事,我就会去想:是不是没描述清楚,或者逻辑有漏洞?这些都让我对自己的责任意识更清楚了。
-
团队精神:
一、队友的好
我那几个队友,个个都是神仙级人物!有啥子困难,只要开口,马上就有人来帮忙。
- 扛重活的“战神”:有人疯狂熬夜修Bug,一句抱怨都没有,硬是把项目稳住了,简直就是队伍的定海神针!
- 脑壳灵活的“神算子”:每次方案讨论,总有人能一针见血指出关键问题,帮大家少走弯路,确实厉害!
- 气氛组的“活宝”:还有个耍得开的小伙伴,遇到难题大家情绪低落的时候,他总会活跃气氛,让我们放松下来再继续搞。
队友间的信任和支持,让我真正感受到啥子叫“1+1>2”。
"软工的日子里,我们就像一杯五颜六色的奶茶,每种技能都是一颗特别的料!" 🌈
🎙️ 2.4 想说的话
-
未来专业道路:这门课让我更坚定了我不会从事软件开发的任何岗位,好多好多约束啊!TAT。
-
最遗憾的事情:软件上线出来还是有些许小虫虫(bug),有些小图标加载不出来~不晓得浪子办才好。
-
给学弟学妹的建议:
“避坑指南”:
- 计划赶不上ddl?不,我连计划都没有。
学长学姐吃过的亏告诉你们,别当“ddl战士”。早一天开工,少三天掉头发。 - 别在ddl前一天喊队友“我们来个奇迹吧!”
奇迹是不会发生的,只有头秃是真的。 - 遇到Bug,先别怪代码,先怪自己。
80%的Bug,可能是因为你少打了一个逗号,或者代码写着写着写到梦游。 - 别轻信谷歌的第一条解决方案。
学姐试过用Stack Overflow上的代码直接复制,结果Bug从一个变成三个。 - 学点工具,不然只能靠手动。
HBuilder X炒鸡好用,写前端像玩游戏,Firefox的调试工具更是神器,调完Bug你会怀疑人生为什么没早点用! - 能躺平的是你自己,别指望队友躺平你还能赢。
分工的时候要快准狠,把活揽完了就别后悔,不然到头来你只能抱怨:为啥子又是我? - 对接沟通很重要,不然队友要揍你。
前端:你这后端返回的数据像乱码!
后端:你这前端代码像小学生写的!乱成一锅粥
如果你Bug调不通,那它可能已经成为系统的一部分。
Bug不会被解决,它只会被隐藏或者伪装成功能。 - 项目最重要的,是笑得出来。
千万别焦虑!作业交了就是完成了,代码写完就先算赢了!
最后,别怕失败,加油吧,娃儿们!
- 计划赶不上ddl?不,我连计划都没有。
∧__∧
( ˶•ᴗ•˶ )
/ ⌒ヽ
(_____) ノ
🙏 三、致谢
特别感谢:
-
我的队友们:
- 在一次次的讨论和协作中,大家真的有做到互帮互助,团结友爱,基本没有发生什么非常大的明面上的矛盾
- 特别是组长小曹,他在飞书上面的细致规划,为项目奠定了良好的基础
- 还有副组长小王,她非常有领导能力,而且做事做的又快又好,又细心,一个宝藏女孩儿
-
助教与老师:
- 感谢助教耐心批阅我们的每一个博客。
- 老师的课让我明白了软件工程的本质:不仅是技术,更是对问题的全面思考。
"这一学期的经历,就像从零开始调制了一杯独家口味的奶茶,每一口都有我们的努力和欢乐!" 🥳
====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
🎉 结语 os 走不了一点❤️
写到这里,张诗悦本学期的软工实践之旅,落下帷幕,一路走来,风雨兼程,一篇篇博客是我的泪水与汗水!希望我能够带着从这门课程中获得的一切,或是新技术和生产力工具,或是结对的友情or团队的精神力量,带着这份收获与感恩,向着下一段旅程继续前进!!!