这个作业属于哪个课程 | 软件工程实践-2023学年-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践寒假作业 |
这个作业的目标 | 回首过去、立足当下、展望未来 |
当初你为什么选择软件工程这个专业? | 《构建之法》 |
目录
2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
4.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题
Q1:单元测试中,测试用例是提前准备好的,还是看过代码后针对性编写的?
Q2:我们在面对开始的需求时可以通过哪些方法增强程序的可扩展性呢?
1. 准备工作
1.1 Git Bash推送代码
-
克隆仓库
git clone https://gitcode.net/zzzz7_/222100222.git
-
推送代码
git push -u origin master
1.2 GitCode详情页
2. 回首过去
2.1 当初你为什么选择软件工程这个专业?
-
从小接触电脑,对计算机比较感兴趣
-
印象中的高薪好就业
-
计算机相关专业从分数高到低都报了,然后就到这里来了
2.2 当初对软件工程这个专业的期待和想象是什么?
可以创造出一些有趣有用的软件,动手实现自己的想法,能够便利工作与生活,能够对社会有所贡献吧。总之,我觉得软件工程这个专业给人的感觉就是充满了挑战和机遇,可以让我们在技术上、创意上不断地追求进步和成就。
2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
了解软件工程专业的就业方向,通过网上的课程、资料自学,在前期尽可能多接触、尝试不同的方向,然后找到自己感兴趣的方向深耕。
3. 立足当下
3.1 个人信息
个人信息 | 详情 |
---|---|
昵称 | zzz |
兴趣爱好 | 听歌、摄影、旅游、游戏 |
特长 | FPS、MOBA类游戏 |
获奖经历 | 第十四届中国大学生服务外包创新创业大赛国家三等奖 |
福建省人工智能创意赛二等奖 | |
海峡两岸信息服务创新大赛暨福建省计算机软件设计大赛省三等奖 |
3.2 专业技能
类别 | 详情 |
---|---|
编程语言 | c/c++, c#, java, python, js, ts |
技术框架 | React, Vue, Uniapp, Koa,Express, Django |
开发工具 | VsCode, Idea, HBuilderX, PyCharm, DataGrip |
代码量 | 5w+ |
3.3 项目经历
项目名称 | 详情 |
---|---|
识刻记账 | 一款智能多场景创新个人财务管理app,为不同年龄段用户,不同场景设计实现对应功能,满足用户个性化的财务管理需求。 |
懂宝 | 懂宝是一款基于大语言模型微调的智能客服平台软件,通过构建知识库为卖家提供个性化的定制服务,旨在降低人力成本,提升服务效率。 |
智能排程系统 | 为冠捷科技提供智能排程管理服务, 包括生产进度自动更新;网板自动更新;程序自动更新;工单CT预测自动化;排程过程即决策过程,决策预警提速;预测生产进度,便于产线资源调度管理等。 |
思锐AI | 一款体育运动赛事直播小程序,提供AI智能拍摄服务。 |
4. 展望未来
4.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题
Q1:单元测试中,测试用例是提前准备好的,还是看过代码后针对性编写的?
在单元测试中,测试用例可以以多种方式准备相结合:
提前准备好的测试用例:在实现功能或组件之前,开发人员可以根据需求规格或设计文档编写测试用例。这些测试用例可能涵盖了各种情况,包括正常情况和边界情况。这些提前准备好的测试用例可以用来验证代码的正确性,并作为实现代码之前的参考。
针对性编写的测试用例:有时,在编写实际代码之后,开发人员可能会编写针对性的测试用例,以验证特定的代码路径或边界情况。这些测试用例可能会根据实际代码中的逻辑和结构来编写,以确保代码的各个部分都得到了适当的测试覆盖。
无论是哪种方式,测试用例的编写都应该尽可能全面地覆盖各种情况,以确保代码的正确性和稳健性。
Q2:我们在面对开始的需求时可以通过哪些方法增强程序的可扩展性呢?
在面对新需求时,增强程序的可扩展性是至关重要的。为了实现这一点,我们可以采取一系列方法。首先,通过模块化设计将程序划分为小的、相互独立的模块,并定义清晰的接口和抽象层,以降低模块之间的耦合度。其次,利用依赖注入技术将模块之间的依赖关系从代码中解耦出来,使得模块更易于替换或扩展。此外,遵循设计原则和使用设计模式也是增强可扩展性的关键,例如单一职责原则、工厂模式等。面向接口编程和测试驱动开发(TDD)也可以帮助确保代码的灵活性和可扩展性。综合运用这些方法可以使程序更容易适应需求的变化,并且更易于维护和扩展。
Q3: 代码量与个人的编码能力有直接关系吗?
代码量与个人的编码能力并不直接相关。编码能力主要指的是一个人在解决问题、设计算法、优化代码、保持代码清晰易读等方面的能力,而不仅仅是编写大量的代码。
一个人的编码能力可以通过以下几个方面来评估:
问题解决能力:一个人是否能够理解问题的本质,并找到有效的解决方案。
代码设计能力:是否能够设计出清晰、模块化、可扩展的代码结构。
算法和数据结构:是否能够使用适当的算法和数据结构来解决问题,以提高代码效率和性能。
优化能力:是否能够对代码进行优化,以提高性能或减少资源消耗。
代码风格和可读性:是否能够编写易于理解和维护的代码,并遵循良好的代码风格和规范。
即使一个人的编码能力很强,也不一定会产生大量的代码。在实际开发中,高效的编码往往意味着能够用最少的代码实现所需的功能,并保持代码的简洁和可维护性。因此,代码量并不是衡量一个人编码能力的唯一标准。
Q4:“过早优化是一切烦恼的根源”:那么,如何界定早晚?
早晚优化的界定取决于具体情况,重点在于先满足基本功能需求,将优化放在后期,根据性能需求、预期使用情况、用户反馈和团队经验来评估。在开发早期,重点是确保代码的可读性、可维护性和功能完整性,而不是过早地优化性能。一旦出现明显的性能问题或风险,可早期介入优化,但要注意保持平衡,避免过度优化导致不必要的复杂性和工作量。可通过性能测试工具、用户反馈、团队讨论和行业标准等方面来验证是否需要早期介入优化,以确保项目的成功和可持续发展。
Q5:团队项目中,如何与技术段位差距较大的人相处或达成一致
在团队项目中,面对技术段位差距较大的成员,合作与达成一致的关键在于沟通、尊重和团队协作。首先,团队成员应该建立开放、包容的沟通氛围,鼓励每个人分享观点和经验。技术能力较强的成员可以分享自己的知识和经验,而技术能力较弱的成员可以积极提问、学习和尝试新技术。同时,尊重每个成员的观点和贡献,不要因为技术差距而产生偏见或歧视。
团队应该设立明确的目标和任务,并分配适合每个成员的工作。技术水平较高的成员可以承担一些技术难度较大的任务,同时可以担任导师角色,指导和支持技术水平较低的成员。技术水平较低的成员则可以承担一些相对简单的任务,并在实践中不断学习和提高。通过合理分工和互相支持,团队可以共同完成项目,实现共赢。
4.2 你未来的职业规划是什么?
前端开发到全栈
4.3 对于软件工程实践课程,你有什么理解和期望?
在软件工程实践这门课程中,会从项目规划和需求分析开始,然后进行设计、实现、测试和部署等阶段的工作。我们将学会如何使用各种软件工程工具和技术,如版本控制系统、敏捷开发方法、测试自动化工具等,来支持项目的顺利进行。此外,还会强调团队合作和沟通能力的重要性,因为一个成功的项目不仅需要技术上的专业知识,还需要良好的团队协作和有效的沟通。我也期望通过实践课程提高我的问题解决能力和团队合作能力,在与同学们一起完成项目的过程中,学会有效地沟通、协作和解决技术挑战。