软件工程实践总结——一直在路上

这个作业属于哪个课程2302软件工程
这个作业要求在哪里作业要求
这个作业的目标课程回顾与总结
其他参考文献《构建之法》

1 课程回顾与总结

1.1 寒假作业博客链接

寒假作业博客

1.2 新的看法

Q1:程序员是否有必要为满足小部分人的需求去做软件,或者为软件添加某些功能?

A1:程序员在决定是否为满足小部分人的需求或添加某些功能到软件中时,需要综合考虑多个因素。一方面,满足特定用户的需求可能有助于提升软件的个性化体验和口碑,特别是在这些用户属于目标市场的重要群体时。此外,这些需求可能揭示出软件潜在的市场趋势或创新机会。然而,另一方面,过多的定制化功能可能增加软件的复杂性和维护成本,同时可能牺牲软件的稳定性和易用性。因此,程序员需要在满足用户需求、保持软件质量、以及维持开发成本之间找到平衡。最终的决定应该基于软件的整体战略、目标市场和用户群体的具体情况。

Q2:如何能“证明”一个软件是可以继续发展的?

A2:要“证明”一个软件是可以继续发展的,首先需要展示软件目前的稳定性和可维护性,这包括良好的代码结构、易于扩展的架构以及有效的错误处理和日志记录机制。其次需要分析软件的用户增长和活跃度,以及用户反馈中表达的新需求或改进建议,这些都能反映软件的市场潜力和用户需求。此外,还需要考虑软件所处的行业趋势和竞争格局,以及技术团队的能力和资源,这些因素共同决定了软件未来的发展潜力和可持续性。通过综合分析这些因素,并展示软件在过去已经取得的成功案例和改进成果,可以有力地“证明”一个软件是可以继续发展的。

Q3:花费时间越多,代表工作量越高吗?

A3:花费时间多并不一定等同于工作量大,因为工作量的衡量涉及多个维度。工作效率的高低是关键因素之一。即使投入了大量时间,如果效率低下,实际完成的工作可能并不多。相反,高效的工作方式能够在相同或更短的时间内完成更多的任务。任务的复杂性和难度也是决定工作量的重要因素。一些需要深入思考、研究和创新的任务,即使花费时间不多,也可能涉及大量的工作量。个人的能力和技能水平也会影响工作量。拥有丰富经验和专业技能的人能够更快速地完成任务,而新手或技能较低的人可能需要更多时间。因此,不能仅凭时间来判断工作量,而需要综合考虑多个因素。

Q4:工作时是否应该带着个人、感情驱动的因素?

A4:工作时,虽然个人动力和情感驱动在一定程度上可以激发员工的工作积极性和创造性,促使他们更全情地投入到任务中去,但同时也需要警惕过度的个人或情感驱动对工作带来的负面影响。过度依赖个人情感可能导致决策的主观性和情绪化,忽视团队和组织的整体利益,甚至影响工作效率和团队协作。因此,在工作中,我们应该努力保持一种平衡,既要充分发挥个人动力和情感驱动的积极作用,又要避免其负面影响,保持冷静和理性的思考,以确保工作的顺利进行和团队的高效协作。

Q5:团队角色可以按需配置么?

A5:团队角色确实可以按需配置。一个成功的团队需要根据其目标、任务和工作流程来合理配置不同的角色。按需配置团队角色可以确保每个成员都能在最适合自己的位置上发挥作用,提高团队的协同效率和整体表现。通过明确每个成员的角色和职责,可以减少工作重叠和冲突,促进团队成员之间的互补和协作。因此,团队管理者应该根据团队的实际需求和成员的能力特点来灵活配置角色,以实现团队的最佳效能。

1.3 新的问题

  • 如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?
  • 对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?
  • 在团队项目中,是选择有利于自身成长、最具挑战性的工作;还是有利于团队、有把握的完成的工作?

1.4 五个阶段的收获

1.4.1 需求阶段

在需求阶段中,我参与撰写了详尽的软件需求规格说明书,其不仅明确了系统的功能需求、非功能需求。还通过分层描述的方式,逐步深入到各个功能模块的细节,这使得团队成员对项目的理解更加一致,为后续的开发工作打下了坚实的基础。

1.4.2 设计阶段

在原型设计中,我特别注重了交互设计,希望通过友好的交互界面和流畅的操作流程,让用户在使用产品时能够感到舒适和便捷。这让我明白了在软件设计中,交互设计的重要性不亚于功能设计。只有设计出符合用户习惯和期望的交互界面,才能让用户真正喜欢并愿意使用我们的产品。

1.4.3 实现阶段

实现阶段涉及到了数据的爬取,我学习了如何使用爬虫技术从网站上抓取所需数据,并进行了相应的处理,以确保数据的准确性和完整性。这一过程中,我体会到了数据处理在Web开发中的重要性,也掌握了一些数据处理的基本技巧。在结对作业中,我与队友进行了密切的沟通与协作。我们共同讨论设计方案、分配任务、解决问题,确保了项目的顺利进行。这一过程中,我深刻体会到了团队协作的重要性以及有效沟通的价值。通过与队友的合作,我不仅学到了很多新知识,也提升了自己的团队协作能力和沟通能力。

1.4.4 测试阶段

在测试阶段,我仔细体验了不同产品的各项功能,并尝试从中找出潜在的缺陷。我不仅对产品的功能有了更为深入的了解,也学会了如何从用户的角度出发,评估产品的功能是否满足需求。同时,我也发现了一些之前未曾注意到的细节问题,这些问题虽然看似微小,但却可能对用户体验产生较大影响。同时,我也更加明白了测试的目的不仅是为了找出软件的缺陷,更是为了确保软件的质量,提升用户体验。

1.4.5 发布阶段

在云服务器上部署应用代码时,需要注意各种配置文件的设置,如数据库连接信息、服务器端口等。同时还需要确保服务器的安全性,比如通过防火墙限制不必要的访问,这些步骤虽然繁琐,但是它们是确保应用能够稳定运行的基础。当应用成功部署到云服务器上后,还需要进行一系列的测试,包括功能测试、性能测试和安全性测试等。这些测试可以帮助我们及时发现并修复潜在的问题,确保应用能够为用户提供稳定、可靠的服务。

1.5 理解和心得

1.5.1 个人项目

通过本次个人项目作业的实践,我深刻体会到了软件工程实践的重要性和挑战性。在编码实现阶段,我严格按照制定的代码规范和编程要求进行编程,注重代码的可读性和可维护性,遵循了面向对象的设计原则,合理划分了类和函数。在实现基本功能时,我通过命令行参数接收输入文件和输出文件,并根据输入指令进行相应的处理。我实现了从文件中读取数据、解析数据、处理数据以及将结果写入输出文件等功能。同时,我也对程序进行了性能分析和优化,提高了程序的运行效率。同时,我也认识到了代码规范和单元测试的重要性。良好的代码规范可以提高代码的可读性和可维护性,而单元测试则可以确保程序的正确性和稳定性。在项目中,我遇到了许多新的问题和挑战,通过查阅资料和请教他人,我最终都能成功解决问题。

1.5.2 结对编程

在结对编程过程中,我深刻体会到了团队合作的重要性。我们首先需要共同理解作业需求,并对需求进行细化和分解。在这个过程中,我们进行了多次讨论,以确保对需求的理解是一致的。接着,我们共同设计了原型界面,并分工完成了界面设计和功能划分。在设计过程中,我们遇到了许多挑战。比如如何使界面更加直观友好、如何有效地展示选手信息和赛程等。通过不断的讨论和尝试,我们逐渐找到了解决方案。这个过程不仅锻炼了我的问题解决能力,也让我学会了如何在团队中发挥自己的长处并尊重他人的意见。在将原型设计转化为实际产品的过程中,我意识到编码实现只是整个过程中的一部分。在编码之前,我们需要进行详尽的规划和设计,以确保代码的可读性和可维护性。同时,我们还需要考虑如何优化性能、如何保证数据的安全性等问题。在实现过程中,我也深刻体会到了测试的重要性。通过不断的测试和调整,我们能够发现并修复潜在的问题和bug,从而提高产品的质量。

1.5.3 团队项目

在团队组建的过程中,首先要明确每个人的特长和兴趣,以便更好地分配任务和角色,确保团队能够高效运作。同时,选题也是团队合作的重要环节,一个好的选题能够激发团队的创造力和热情,使团队成员更加投入。在项目开发过程中,团队成员间的知识互补和技能共享显得尤为重要。每个人都有自己的专长和优势,只有将每个人的优势充分发挥出来,才能推动项目的顺利进行。团队成员间的相互学习也是非常重要的,这不仅可以提高团队成员的技能水平,还可以增强团队的凝聚力和向心力。团队合作中,沟通与协作是不可或缺的。在项目开发过程中,我们需要及时沟通项目进展、问题和解决方案,确保每个团队成员都能够及时了解项目情况并作出相应调整。同时,协作也是非常重要的,只有团队成员间紧密协作、相互支持,才能确保项目的顺利完成。

1.6 自我评分

1.6.1 课程目标

课程目标目标描述
1理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。
2掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。
3掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。
4能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。
5遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。
6具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。
7能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。

1.6.2 评分结果

目标理由分数
1我深入了解了软件工程师的职业道德规范,如保护用户数据、遵守知识产权法等,并尝试将这些规范融入日常开发中。93
2我通过分层描述的方式,逐步深入到各个功能模块的细节,使得团队成员对项目的理解更加一致92
3在编码之前,我们进行了详尽的规划和设计,以确保代码的可读性和可维护性。94
4在编码实现阶段,我严格按照制定的代码规范和编程要求进行编程,遵循了面向对象的设计原则91
5我参与撰写了详尽的软件需求规格说明书,明确了系统的功能需求、非功能需求。93
6我在开发过程中及时和队友沟通项目进展、问题和解决方案,确保每个团队成员都能够及时了解项目情况并作出相应调整。95
7我认为每个人都有自己的专长和优势,只有将每个人的优势充分发挥出来,才能推动项目的顺利进行。94

2 个人技术总结

2.1 博客链接

个人技术总结———全局异常处理

2.2 博客概述

在Spring Boot中,全局异常捕获能统一处理并响应应用程序中的异常,提高应用的健壮性、用户体验以及可维护性,通过自定义错误消息、日志记录以及支持多种响应格式等功能,实现优雅的错误处理。

  • 29
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值