项目 | 详细信息 |
---|---|
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 软工实践个人总结 |
学号 | 102201233 |
一、学期回顾
1.1 回顾你对于软件工程课程的想象
1.1.1 达到期待和目标的部分
-
算法编写能力的提升
- 目标:提高解决复杂算法问题的能力。
- 达成情况:通过不断的实践和练习,我不仅增加了代码量,还提升了解决复杂算法问题的能力。在“蛙了个蛙”游戏的开发过程中,我运用了多线程和事件处理等技术,对算法和数据结构的理解有所加深。
-
实际项目中应用机器学习和大数据处理技术的能力
- 目标:提升在实际项目中应用机器学习和大数据处理技术的能力。
- 达成情况:在APP开发过程中,涉及到了数据存储和用户认证等后端开发内容,使得我在实际项目中应用大数据处理技术的能力有所提升。
-
团队合作能力的提升
- 目标:提高团队合作能力,学习在多人团队中有效沟通和协作。
- 达成情况:在APP开发过程中,我体会到了团队协作的重要性,并采用了敏捷开发方法,这不仅提高了开发效率,也促进了团队成员之间的有效沟通和相互支持。通过使用QQ进行实时交流和反馈问题,展示了在团队合作中的积极参与和有效沟通。
-
项目实践经验的积累
- 目标:参与具体项目的开发过程,积累项目实践经验。
- 达成情况:通过“蛙了个蛙”游戏和APP的开发,我从需求分析、原型设计、开发、测试到复盘总结,完整地参与了项目开发的全过程。这不仅增加了我的项目实践经验,还让我在实践中巩固了理论知识。
1.1.2 存在的不足及原因
-
复杂算法问题的熟练掌握
- 不足:尽管我在算法练习上有所进步,但在面对复杂的算法问题时仍然会遇到困难。
- 原因:复杂算法问题的解决需要深厚的数学基础和丰富的实践经验。面对高度复杂的算法问题,还需要更多的系统学习和深入研究。
-
机器学习和大数据技术的深入应用
- 不足:在APP开发过程中,虽然涉及到了数据存储和用户认证等后端开发内容,但机器学习和大数据技术的应用还不够深入。
- 原因:机器学习和大数据技术的应用需要特定的项目场景和数据集。在当前的开发过程中,可能由于项目需求和时间限制,未能充分应用这些技术。
-
技术深度的提升
- 不足:在技术深度方面,虽然你掌握了多门编程语言和多种技术工具,但在某些技术领域(如大数据处理技术)的深入理解和应用上还有提升空间。
- 原因:技术的深入理解和应用需要持续的学习和实践。在当前的学习和开发过程中,可能由于时间和资源的限制,未能对某些技术进行深入研究。
1.2 回顾你在这门课程中的投入与产出
在软工实践课程当中我编写了约6000行代码。
在团队项目中我参与了“卷卷福”的设计与开发,我主要负责社区模块中问题咨询和试卷求助部分的前端设计及其功能实现。
软工实践的各次作业分别花费的时间:
作业类型 | 花费时间 |
---|---|
第一次个人作业 | 2 |
第二次个人作业 | 8 |
第一次结对作业 | 12 |
第二次结对作业 | 48 |
第一次团队作业 | 15 |
第二次团队作业 | 40 |
现场编程作业 | 5 |
团队作业beta冲刺 | 30 |
在软件工程课程上花费的时间
累计时间 (X h) | 实际周均时间 (X h) | 预计周均时间 (X h) |
---|---|---|
160 | 15 | 10 |
1.3 令你印象最深刻的是哪一次作业或哪一场答辩?为什么这次作业或这场答辩令你印象深刻?
令我印象最为深刻的是最后一次团队作业,这次作业给我带来了前所未有的挑战和收获。首先,从工作量上来看,这次作业无疑是所有任务中最为庞大的一次。它不仅需要我们完成核心功能的开发,还涉及到了前端设计、后端架构、数据库管理以及用户界面优化等多个方面。相比之前的个人作业和结对编程,这次作业的复杂性和工作量都达到了一个新的高度。
其次,这次作业要求我们学习大量的新知识和技术。为了实现项目的目标,我们不得不接触并掌握许多之前未曾使用过的工具和技术,例如php的开发使用,前后端连接,服务器的部署使用等,这些都扩展了我的技术范围,提升了综合能力。
在编程过程中,我的各方面技术都得到了充分的锻炼和提升。从代码的编写、调试到优化,每一个环节都要求我们精益求精。通过不断地遇到问题、解决问题,我的编程思维变得更加严谨,代码质量也有了显著提高。同时,这次作业也让我深刻体会到了项目管理的复杂性。我们需要合理分配任务、制定详细的时间计划,并在项目进展中不断调整策略,以确保最终能够按时交付。
最后,通过个人的努力和团队成员的共同协作,我们成功完成了“卷卷福”这一产品。在这个过程中,我第一次真正体会到了团队开发产品的喜悦和兴奋。每当遇到技术难题时,团队成员们总是能够集思广益,共同寻找解决方案。每一次成功的调试、每一个功能的功能实现,都让我们感到无比自豪。尤其是在项目最终展示的那一刻,看到我们的产品得到了大家的认可和赞赏,那种成就感和满足感是无法用言语来形容的。
这次团队作业不仅让我在技术上有了质的飞跃,也让我深刻认识到了团队合作的重要性。在一个优秀的团队中,每个成员都能够发挥自己的特长,相互支持,共同进步。正是这种团结协作的精神,使得我们能够克服种种困难,最终实现我们的目标。这次经历将成为我未来学习和工作的宝贵财富,激励我在今后的道路上不断追求卓越。
二、总结收获
2.1 展开说说你的软工实践故事
2.1.1 技术能力的全面提升:前端与后端的深度结合
在个人作业和结对编程项目中,我深刻体会到技术能力的全面提升对于项目成功的重要性。在开发微信小程序的过程中,我不仅需要掌握前端技术,如WXML和WXSS用于页面布局和样式设计,还需要熟悉后端逻辑,包括数据存储和用户认证等。例如,在“发布项目”页面中,我设计了项目描述和联系方式的填写和发布功能。这要求我不仅要实现用户友好的前端界面,还要确保数据能够正确传输并存储到后端数据库中。通过这个过程,我学会了如何处理用户输入、进行数据验证以及与后端API进行交互。这种前端与后端的深度结合让我对整个开发流程有了更全面的理解。
2.1.2 项目管理与任务分配:敏捷开发的实践
在结对编程项目中,我们采用了敏捷开发方法,这让我认识到项目管理的重要性。我们通过会议来跟踪项目进展,确保每个团队成员都清楚当天的任务和目标。例如,在开发跨专业项目合作的微信小程序时,我们根据各自的特长进行了任务分配。我负责后端开发和数据库管理,而我的搭档负责前端设计和用户界面。这种明确的分工和有效的沟通机制帮助我们高效地完成了项目。通过这个过程,我学会了如何制定详细的项目计划、如何进行任务分配以及如何通过持续的沟通来确保项目按时完成。
2.1.3 团队协作与沟通:共同解决问题的力量
在结对编程中,我深刻体会到团队协作和有效沟通的重要性。在开发微信小程序的过程中,我们遇到了许多技术难题,例如代码冲突和功能实现问题。通过团队的共同努力,我们成功地解决了这些问题。此外,在项目开发过程中,我们定期进行知识分享和进度汇报,确保团队成员之间的信息透明。这不仅提高了我们的工作效率,还增强了团队的凝聚力。
2.1.4 用户体验与产品设计:用户需求的深入理解
在项目开发过程中,我认识到用户体验和产品设计的重要性。在设计团队项目时,我们首先进行了详细的需求分析,通过发放问卷进行调查,确定了目标用户群体和他们的需求。这帮助我们设计了用户友好的界面和功能。例如,在”卷卷福“中我们添加了问题咨询,福币奖励等功能满足了目标用户的需求。通过用户测试和反馈迭代,我们不断优化产品设计,确保最终的产品能够真正满足用户的需求。
2.2 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的帮助?
2.2.1. Pygame
Pygame是一个用于开发电子游戏的Python库,提供了处理图形、声音、输入等功能的模块。在“蛙了个蛙”游戏的开发中,我使用Pygame创建游戏窗口、加载和显示图片、处理用户输入以及绘制图形界面。通过Pygame,我不仅掌握了游戏开发的基本流程,还实践了多线程和事件处理,提升了图形编程和动画设计的能力。
2.2.2. 墨刀(Modao)
墨刀是一款在线原型设计工具,类似于Figma或Adobe XD,但更专注于移动应用和网页的原型设计。在APP开发项目中,我使用墨刀设计了应用的用户界面和交互流程,包括主界面、项目详情页和个人中心等。墨刀让我能够快速创建高保真原型,进行用户测试和反馈迭代,确保设计符合用户需求,并提高了团队沟通和协作的效率。
2.2.3. 微信小程序(前端WXML + WXSS + JS + JSON,后端微信云开发)
微信小程序是一种无需下载安装即可使用的应用,基于前端技术(WXML、WXSS、JavaScript)和后端微信云开发。在开发跨专业项目合作的微信小程序中,我使用WXML进行页面结构设计,WXSS进行样式设计,JavaScript进行交互逻辑编写,并通过JSON进行数据交换。后端则使用微信云开发,包括云函数、云数据库和云存储,实现数据存储、用户认证和业务逻辑等功能。通过微信小程序的前后端开发,我掌握了全栈开发的基本技能。
2.2.4. PHP
PHP是一种服务器端脚本语言,广泛用于Web开发。在某些项目中,我使用PHP进行后端开发,处理表单提交、数据处理和数据库操作等。通过PHP,我能够方便地与MySQL数据库进行交互,执行SQL查询和操作,实现数据的增删改查。PHP语法简洁,开发效率高,适合快速开发和原型设计,帮助我快速实现后端功能,进行功能验证和迭代开发。
2.3 技术之外,这门课程还给你带来了哪些方面的提升?
2.3.1 项目管理能力
需求分析与规划:通过课程中的项目实践,我学会了如何进行详细的需求分析,明确项目的目标和范围,并制定切实可行的项目计划。
任务分解与优先级排序:我掌握了将项目任务分解为可管理的小任务,并根据优先级进行排序,以确保项目按时推进。
2.3.2 团队协作与沟通
团队合作:在多个团队项目中,我体验了不同角色的职责和挑战,学会了如何在团队中有效沟通、分工协作,并解决冲突。
沟通技巧:通过与团队成员的频繁互动,我提升了自己的沟通技巧,包括如何清晰地表达想法、倾听他人意见以及提供建设性的反馈。
协作工具的使用:课程中我们使用了多种协作工具(如语雀等),这让我熟悉了现代软件开发中常用的协作平台,提高了工作效率。
2.3.3 问题解决与调试
问题分析与解决:在项目开发过程中,我遇到了各种技术难题,通过系统地分析和调试,我学会了如何有效地定位问题、提出解决方案并实施改进。
调试技巧:课程中的调试练习和项目实践让我掌握了多种调试工具和技术,提高了问题解决的效率。
持续改进:通过不断的测试和反馈,我学会了如何在开发过程中持续改进代码质量和产品功能。
2.3.4 用户体验与产品设计
用户中心设计:课程让我认识到用户体验的重要性,学会了如何从用户角度出发进行产品设计和功能开发。
原型设计与测试:通过使用墨刀等工具,我掌握了原型设计的基本方法,并通过用户测试收集反馈,优化产品设计。
迭代开发:我实践了迭代开发的方法,通过不断的反馈和改进,逐步完善产品功能,提升用户体验。
2.3.5 文档编写与知识管理
技术文档编写:课程要求我们编写详细的技术文档,包括设计文档和用户手册等,这提升了我的文档编写能力。
代码注释与文档化:我学会了如何编写清晰的代码注释和文档,以便于团队成员理解和维护代码。
2.4 如果还有什么想记录的或者想说的,就写在这儿吧!
对未来专业道路选择的影响
首先,这门课程让我对全栈开发产生了浓厚的兴趣。通过前后端开发的实践,我深入了解了从页面设计到数据库管理的全过程。这种全面的技术掌握不仅提升了我的开发能力,也让我意识到全栈开发在现代软件开发中的重要性。我希望在未来能够继续深入学习和实践全栈开发,参与从零到一的产品开发,将自己的想法和技术转化为实际的产品。
其次,课程让我深刻认识到用户体验和产品设计的重要性。在项目实践中,我体会到用户体验是软件产品的核心竞争力之一。一个成功的软件不仅需要强大的技术支撑,还需要良好的用户体验设计。因此,我计划在未来进一步学习用户体验设计相关知识,包括用户研究、交互设计和用户测试等,并将这些知识应用于实际开发中,以提升产品的整体质量和用户满意度。
此外,课程中的团队项目让我深刻体会到团队协作和沟通的重要性。在软件开发中,团队合作是项目成功的关键因素之一。通过与不同背景的同学合作,我学会了如何在团队中有效沟通、分工协作,并解决冲突。我希望在未来能够参与更多跨职能团队合作项目,与不同专业的团队成员共同完成复杂的项目,并不断提升自己的团队协作和沟通能力。
三、致谢
感谢我的组长为我们团队辛苦的付出,也感谢各位队员在每个共同编程的晚上携手奋斗,最终才完成了“卷卷福”这一产品。