软件工程实践寒假作业

本文回顾了作者选择软件工程专业的初衷,分享了学习历程中的问题与期待,包括阅读《构建之法》的思考,对未来职业的规划,以及对软件工程实践课程的理解和期望。作者强调了单元测试、代码可扩展性和软件缺陷处理的重要性。
摘要由CSDN通过智能技术生成
这个作业属于哪个课程软件工程实践-2023 学年-W 班
这个作业要求在哪里软件工程实践寒假作业
这个作业的目标提前学习 markdown 语法,阅读《构建之法》,回首过去,展望未来,制定学习计划
其他参考文献csdn,菜鸟教程

作业基本信息

一.准备工作

在这里插入图片描述
在这里插入图片描述

仓库地址:https://gitcode.net/Outlier_Reg/132101256


二.回首过去

2.1 问题 1:当初你为什么选择软件工程这个专业?

选择软件工程主要是由于从小就对游戏感兴趣,希望在未来的某天自己也能够做出一个令大家喜欢的游戏,同时也是听说了程序员的高门槛和高薪资,想着挑战自己(挣大米),所以选择了软件工程这个专业。

2.2 问题 2:当初对软件工程这个专业的期待和想象是什么?

像黑客帝国里的程序员一样,对着键盘噼里啪啦一顿输出,命令行黑框框各种弹出,随随便便就能够解决一些复杂的难题。轻轻松松,敲敲键盘就能月薪过万^ ^。在接触后才感觉到道阻且长,仍需努力 ⚔⚔⚔

2.3 问题 3:当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么 FLAG 吗?

当初是希望自己能熟练掌握至少一门语言的,成为 c++大佬,高考结束,尝试自学 c 语言,但是连配置 IDE 都稀里糊涂的搞了半天,后来又想学习学习 ds,结果到现在都学不明白算法 QAQ,flag:希望能成为独立游戏开发者


三.立足当下

个人简介
昵称Carpediem
出生年月2002.12
籍贯福建宁德
兴趣爱好打游戏
特长摄影
当前水平
成果和获奖经历福州大学2021-2022第一学期三等奖学金
福州大学2021-2022学期优秀学生干部
专业水平掌握的编程语言c、c++、html、css、php、java、js、ts
技术框架Yii2.0、ArkUI
开发软件Dev-C++、IntelliJ IDEA、Eclipse、Visual Studio Code、Visual Studio、DevEco Studio
累计代码量15k+
项目经历仿今日头条系统通过使用Arkui框架实现今日头条的主页、推荐、热点等页面设计,并通过调用api组件完成了利用json文件格式读取实时页面内容展示和预览,页面设置等多项功能
基于Yii2.0的博客系统通过yii advanced框架实现个人博客系统,包含了文章管理,用户管理以及评论管理并实现了RBAC的分角色权限管理;采用mySQL管理数据,实现了CRUD功能
简易图书管理系统利用jdbc来连接数据库以及java提供的各类api进行编程,对页面界面进行简单设计,实现了对图书借阅查找等管理功能

四.展望未来


4.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择 5 个及以上的问题写下自己的思考

问题 1:如何区分一个好的程序员和不好的程序员呢?

我认为一个好的程序员应该更看重他的解决问题的逻辑思维以及对待问题的态度上来评判,一个好的程序员在了解发现问题的过程中,应该能想到这类问题和已解决问题之间的共同点,并将复杂问题转换为一个个可解决的子问题,化繁为简。在接触从未了解过的问题中,一步步发掘需要的技术,不放弃不气馁。在解决问题后,能够回过头来想想哪些步骤可以优化,提高性能。

问题 2:认为软件系统十分复杂是不是因为软件工程还没有充分发展?

现在的软件工程已经愈发成熟了,觉得软件系统十分复杂我认为主要问题有以下几点 ① 软件系统是几代人共同努力的结果,前人所写的代码规模已经非常庞大了,不免觉得复杂。② 软件系统中各类的函数调用互相嵌套,不同过程中甚至调用的是同一个模板函数,所以也会让人感觉到晕头转向。③ 软件系统就像是拼装汽车零件,每个零件都有他特定的功能,但是也会有质量更好的零件可供替换,这就导致软件系统每个版本都有大大小小的不同,所以也会觉得十分复杂。

问题 3:如何提高单元测试的覆盖率(尤其是对于经验不足的新人)?

在做测试时应该先考虑对问题的考虑是否都到位了,设定明确的测试目标,有助于确定应该覆盖哪些代码路径和边界条件,还可以试着编写自动化测试,提高测试效率。在遇到实在解决不了的问题时,向有经验的开发者求助,虚心接受他人的意见和建议,

问题 4:我们在面对开始的需求时可以通过哪些方法增强程序的可扩展性呢?

① 可以考虑模块化设计,模块化设计可以降低系统的耦合度,使得变更需求时更加容易拓展和修改
② 遵循一定的设计模式,例如:工厂模式、策略模式等,提高代码的可维护性和拓展性。
③ 使用接口和抽象对象来定义组件的共同接口,降低模块之间的依赖。

问题 5:软件的缺陷是否应该在规格书中说明?

我觉得软件缺陷应该需要说明,因为软件缺陷是一个关乎软件公司自身硬实力的问题,有缺陷不可怕,不愿正视问题所在才可怕。而且如果用户发现软件存在缺陷并造成了巨大损失,损害的不只是客户,更多的是软件公司的公信力。倒不如提前将缺陷告诉用户,并在使用过程中,努力改善产品质量。

4.2 你未来的职业规划是什么?

先将 ue5,Unity 等游戏引擎摸索清楚,试着去投游戏开发岗的实习,同时也准备一下考研,做两手准备。

4.3 对于软件工程实践课程,你有什么理解和期望?

因为之前的学习中,每个人所接触学习的技术栈都是不同的,希望在小组作业中能够向其他人学习,取长补短,共同进步,也同时适应团队编程的方式,提高团队合作的能力,为未来的工作做铺垫。也希望能够在这门课程中将所学知识付诸实践,做到知行合一,提高自己。


五.思维导图和学习路线

在这里插入图片描述
在这里插入图片描述


  • 30
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值