310
社区成员




这个作业属于哪个课程 | 软件工程实践-2023学年-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
这个作业的目标 | 课程的回顾与总结,个人技术的总结 |
其他参考文献 | 《构建之法》 |
@
在大学中只学习一学期的软件工程是相对较短的时间,在这一学期有限的时间内,学生们能够了解到软件开发的基本原理和方法,学会基本的软件工程知识和技能,为未来的学习工作打下坚实的基础。但软件工程是一个复杂而广泛的学科领域,涵盖多个方面。如果仅仅依靠这一个学期的学习,是远远不够的。在课程结束后我们仍然需要通过不断地自学、查阅资料或者请教相关前辈进一步深度学习,掌握专业技能。正所谓:学无止境。
Q2:如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?
1 .作为开发者,我们要不断保持学习,学无止境,坚持活到老学到老。因为软件工程领域每天都在不断地更新和演变,新技术与新工具层出不穷。只有持续学习,我们才能掌握这些新鲜事物,更好地为我们所用,提高开发效率。在平时空闲时可以阅读相关博客、参加培训课程、交流会等,让自己保持与行业最新动态的接触。
2.丰富自己的实践经验。通过参与实际项目,了解软件开发的各个流程,包括需求分析、设计、编码、测试、部署等,促进开发者不断学习和成长。同时开发者需要注重代码的可读性、可维护性、可扩展性等方面,遵循代码规范,确保代码的质量和效率。
3.加强团队协作和沟通能力。软件工程往往是一个团队协作的过程,作为一名开发者需要具备良好的团队协作能力和交流沟通能力。通过积极参与团队讨论、分享经验和知识、提供建议和解决方案等方式,促进团队协作和提升团队效率。
4.不断反思和总结。通过反思自己的工作,可以发现自己的不足和需要改进的地方,以便更好地提升自己的技术水平,避免类似问题再次发生,还可以提高自己解决问题的能力。
Q3:程序员是否有必要为满足小部分人的需求去做软件,或者为软件添加某些功能?
1.商业价值:如果这部分小众需求能够迎合一个具有商业价值的市场,满足这些需求可能会带来可观的收益,那么考虑满足这些需求是有商业意义的。
2.技术可行性:如果实现这些需求需要对现有架构进行大规模的改动,或者引入复杂的技术难题,那么可能需要重新评估其可行性。
3.未来可扩展性:在考虑是否满足小众需求时,还需要考虑这些功能在未来是否容易扩展和维护。如果添加的功能在未来可能成为负担,或者难以与其他系统集成,那么可能需要重新考虑。
4.用户需求和价值:评估用户需求的重要性和广泛性。如果满足这些需求只会给少数人带来价值,并且对于大多数用户来说并不重要,那么可能不值得投入时间和资源。
Q4:软件的行为和用户的期望值不一样,就一定是 Bug 吗?
不一定。
1.用户误解或错误操作:用户可能没有正确理解软件的功能或操作方式,从而产生了错误的期望。这种情况下,问题并不在于软件本身,而是用户的使用方式或理解有误。
2.用户需求不明确或变化:在软件开发过程中,用户需求可能会发生变化或不明确,导致开发团队对用户的期望有误解。这种情况下,软件的行为可能与用户的期望不一致。
3.存在Bug:如果是 Bug,开发团队将需要识别、修复和测试这些问题。
我觉得顾客并不总是完全知道自己想要什么。
知识限制与沟通障碍:大部分顾客可能不完全了解软件开发的相关过程,可能无法准确描述自己想要的功能。他们只能基于自己的经验和需求给出大致的期望,其中他们使用的行话、专业术语或者模糊的描述,这可能导致开发团队对需求的理解产生偏差。因此具体的实现细节需要与开发团队进行进一步的沟通和交流并不断调整。
Q1:对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?
由于在开发过程中,岗位时常会发生变动。因此程序员所扮演的角色也会变得有所不同。我认为作为一名程序员应该要专精于某一方面,以广为辅,各种技能都涉猎一二。如果没有在某个方向专精,是很难在当前动荡的行业中生存下来的;如果没有各种技能都略知一二,一旦发生特殊情况,程序员将会很难适应新的变化。因此应该以专为主,以广为辅。
个人项目:
结对项目:
团队项目:
目标 | 掌握程度 | 解释 |
---|---|---|
目标1: 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念。 | 100% | 我明白身为工程师职业道德规范的重要性,了解国情社情民情,设计的软件应该对社会产生积极的影响。 |
目标2: 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。 | 85% | 基本掌握需分析的全过程,但有时可能无法准确表达出用户的部分需求。 |
目标3: 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案。 | 90% | 整个开发过程我都基本参与,部分体系结构设计和数据库设计我都亲自设计,但还不是非常熟练。 |
目标4: 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案。 | 75% | 在技术评测方面,由于我主要负责前端界面的编写,,对于从组件到系统的评测没怎么涉及。但具有创新设计意识,能够优选设计方案。 |
目标5: 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力。 | 90% | 基本能够采用规范的表达进行API文档的撰写,具备与业界同行交流的能力 |
目标6: 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作。 | 95% | 我在团队中经常给出自己的意见,并与队员们沟通。与其他成员能够展开有效的沟通与合作。 |
目标7: 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力。 | 75% | 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,但对于配置不太熟练。 |
axios的使用总结
技术概述:
axios是一个流行的基于Promise的HTTP客户端,用于在浏览器和Node.js中发送HTTP请求。它通常用于从服务器获取数据或将数据发送到服务器。学习axios的原因在于它简单易用、功能强大且支持浏览器和Node.js环境,可以轻松处理异步请求。技术的难点在于对Promise的理解和处理,以及对HTTP请求和响应的处理。