软件工程实践寒假作业

222000224赵翊琛 2023-02-14 14:54:17

作业基本信息

这个作业属于哪个课程软件工程-23年春季学期
这个作业要求在哪里软件工程实践寒假作业
这个作业的目标学习使用gitcode进行版本控制、学习md语法、阅读《构建之法》、撰写博客
其他参考文献《构建之法》

目录

  • 作业基本信息
  • 准备工作
  • 回首过去
  • 当初你为什么选择软件工程这个专业?
  • 当初对软件工程这个专业的期待和想象是什么?
  • 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
  • 立足当下
  • Jan29th
  • 我喜欢的十首歌:
  • 综合能力测评
  • 展望未来
  • 阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考。
  • 2.1 单元测试中,测试用例是提前准备好的,还是看过代码后针对性编写的?
  • 4.5 结对编程中角色频繁互换是否会影响正常的程序编写的进行?
  • 8.1 如何发现社会的潜在需求?类似小黄车这样的项目,之前从未有人提出来过,这种颠覆性的创新是如何提出并且恰好被市场认可?
  • 10.1 典型用户为什么也要分析不受欢迎的用户?
  • 12.1.6 好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么办?牺牲质量去追求用户体验么,用户能接受吗?
  • 15.1.2 良性bug是否该被修复?
  • 16.1 在现有的情况下,个人或小团队的创新发展只能依赖大型企业的资本支持了吗?
  • 你未来的职业规划是什么?
  • 对于软件工程实践课程,你有什么理解和期望?
  • 思维导图和学习路线
  • 思维导图
  • 学习路线

准备工作

git上传截图


gitcode仓库地址

回首过去

当初你为什么选择软件工程这个专业?

我家在我很小的时候就购置了计算机,我是伴随着电脑和电子游戏长大的。而且小时候的我并不满足于玩游戏,还经常会打开各个软件甚至是系统的设置,想要搞懂里面的参数的含义。我就这样自己摸爬滚打地了解了很多电脑知识。
中学时期,我高强度地浏览互联网,在网上见到了很多“极客”:他们有人自己动手美化手机界面;有人对一些网盘网站的限速策略不满,自己找出了一种解除限速的方法;有人对每天不得不做的重复性工作感到枯燥,自己编写了一个可以解放自己双手的程序;这样的人数不胜数。我怀着对他们的憧憬,立志要成为像他们一样的人。同时,由于我对电子游戏有很大的兴趣,我也萌生过想要做一款属于自己的游戏这种想法。

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

当时的我还对大学生活有一层滤镜,无论如何想象都觉得无比美好。不过在大学之前我其实很少接触代码,第一次接触是在高一学习《信息科技》这门课时,跟着老师使用Visual Basic编写过一些简单的程序,当时我也是班上编程效率最高的学生之一。第二次是和同班同学在组队参加少年机器人世界杯时,我们学习了使用Arduino开发板,自己动手设计、组装硬件,并编写它的运行程序。不过在这次比赛中我并不是主要负责程序设计的角色,因此并没有接触太多代码。可以说我在大学前对编程并没有很多接触,了解也不够充分。当时的我可能还对代码感到有一些枯燥。

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

其实早在高中时,我就自己买过java、python、Android等语言的教程书籍,想要靠自己学明白。但可能因为课余时间太少、没有动力等原因纷纷半途而废了(这些书直到大学相应的课程开课前还是没有被翻开过)。此外,把伴着我长大的台式机升级配置后,将它从上海带到了福州大学应该是我上大学时最大的壮举了。

立足当下

Jan29th

charleszhao999@163.com
21岁

人无法决定命运的走向,但可以决定面对命运的姿态。

我喜欢的十首歌:

  • 失敗作少女
  • フォニイ
  • Rapport
  • アンノウン・マザーグース
  • 月光
  • 不可解
  • 帝国少女
  • 幽霊東京
  • 転がる岩、君に朝が降る
  • ヴィラン



夜ノ匂イ
車ノ音
街ノ灯リ
人々ノ聲
信号ノ点滅
発車ノ合図


icon 喜欢听一些J-POP和术力口,目前在自学歌姬调教和编曲,也喜欢唱歌
唱的大多都是日语歌,是罗马音战士。
这是我的网易云歌单。我很喜欢怪力熊的歌!偶尔还会找自己喜欢的歌打打音游(虽然很菜)
试着用ACE Studio翻调过一些曲子。最近对NEUTRINO AI很感兴趣。

综合能力测评

GitHub主页Jan29th
掌握的编程语言C/C++, Java, Android, Kotlin
累计代码量50k+行
开发过的项目模拟群聊、在线五子棋、在线新闻客户端、简易记事本、弹球游戏、博饼游戏、飞机大战游戏、数据库管理系统

展望未来

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

2.1 单元测试中,测试用例是提前准备好的,还是看过代码后针对性编写的?

我仍然认为单元测试的测试用例应该由开发者本人准备,开发人员对代码的分支、逻辑最为熟悉,这样测试用例的代码覆盖率更容易提高。至于提问者提到的边界情况的处理,我认为这应该属于“Ad hoc”测试范畴,无需在单元测试中过于纠结在边界情况上。

原文链接:2.1 单元测试中,测试用例是提前准备好的,还是看过代码后针对性编写的?

4.5 结对编程中角色频繁互换是否会影响正常的程序编写的进行?

假如结对编程的两人只是一个人沉默地写代码,一个人沉默地观察着,持续一段时间后换班的话,我认为势必是会影响程序编写的过程的,且效率低下。每个人的编程风格都不一样,当我们拿到别人的代码时,肯定不会觉得像阅读自己写的代码一样通顺和自然。因此我认为结对编程时,双方应该随时交流各自编程的思路,如果出现了疑问一定要马上提出,以免交换后对着对方的代码一脸茫然,再浪费大量的时间去询问代码的含义和目的。顺利的情况下,我认为有默契的结对编程同伴可以达到“合二为一”的境界,即两个人对对方的思路和习惯烂熟于心,结对时已经养成了属于两人自己的习惯和风格,仿佛就像是一个人在同时思考和编写一样。这也是我所憧憬的伙伴关系。

原文链接:4.5 结对编程中角色频繁互换是否会影响正常的程序编写的进行?

8.1 如何发现社会的潜在需求?类似小黄车这样的项目,之前从未有人提出来过,这种颠覆性的创新是如何提出并且恰好被市场认可?

这个问题让我想到了《构建之法》16.4 魔方的创新 一节中的故事。后入场的二柱在失去了先发优势的情况下,机智地发现了班级里女生的潜在需求,也因此收获了果冻、小飞、大牛等人未曾注意到的市场。书中8.4提到:“以前没人说:嗯,如果我能找到这样一个网站,我可以去偷菜,就好了……”潜在需求之所以名为潜在需求,正是因为大多数客户并不会意识到自己有这个需求,更不要谈主动向开发者提出诉求了。我认为想要发现社会的潜在需求,首先需要将自己代入客户的视角中。书中提到的“躲在单向玻璃后面观察用户”就是一种很好的方法。

原文链接:8.1 如何发现社会的潜在需求?类似小黄车这样的项目,之前从未有人提出来过,这种颠覆性的创新是如何提出并且恰好被市场认可?

10.1 典型用户为什么也要分析不受欢迎的用户?

我们无法确保使用产品的都是怎样的用户,自然也不可避免地会迎来不受欢迎的,甚至是充满恶意的用户。比如:在电子游戏中企图寻找游戏漏洞作弊的、在社交网络上散布不良信息骚扰他人的、在登陆系统中注入数据库攻击的等等。这些用户的存在会给产品的安全带来隐患,也会危及到其他用户的正常体验。因此,为了保障系统的稳定运作以及普通用户的体验,我们应该分析不受欢迎的用户。

原文链接:10.1 典型用户为什么也要分析不受欢迎的用户?

12.1.6 好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么办?牺牲质量去追求用户体验么,用户能接受吗?

我认为这个问题需要结合用户对体验的容忍度等实际情况分类讨论。
一个典型情况是:诸如国家政府、银行系统等,官方、非盈利性质(或盈利性质较弱),这些单位对系统程序的稳定性追求较高,但对用户(尤其是单位工作人员)的体验不太关心(这种情况在国内较为普遍)。在这种情况下,开发团队应当对产品的质量(稳定性、安全性)下大功夫,而不必太过追求用户的体验。假如一个系统用了十几年都没出问题,我为什么要去更换成一个虽然包含创新功能但可能会有bug的新系统呢?
而如果产品的主要面向对象是市场上的个人用户,比如社交网络产品,此时正如书中8.5 功能的定位和优先级 中提到的,我们应该在实现软件的主要功能后,着重开发“杀手功能”,让自己区别于其他的一种同类软件,而理解用户的感受并提高用户体验就是其中的一种方式。

原文链接:12.1.6 好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么办?牺牲质量去追求用户体验么,用户能接受吗?

15.1.2 良性bug是否该被修复?

题主在描述中提到了GTA线上模式中的飞天摩托,我认为是否修复这个bug还是应该由开发商的意愿决定,毕竟游戏作为一个作品,开发商拥有对游戏内容的绝对解释权,如果一个bug的出现导致游戏内容的大规模崩坏,完全背离了开发商的初衷,那就应该被毫不犹豫地修复(即使很多玩家对这个bug喜闻乐见)。例如:竞技游戏中,出现了一个bug,可以让玩家的实力通过一些方式增强到影响游戏平衡的地步,毫无疑问,这会让一些玩家获得快乐,但那些认真进行游戏的玩家呢?他们尽了自己的最大努力,却被对手用游戏规则的漏洞所打败了。这种情况如果不及时干预,很快就会导致守序的玩家大量流失,且大量的玩家都去利用这个漏洞,最后整个游戏环境乌烟瘴气,游戏寿命被大幅缩短,典型例子:绝地求生对外挂行为的不作为。
而如果一个bug放在整个游戏中无关痛痒,甚至可以作为一个笑点博得玩家一笑,而开发商对此也无所谓的话,那完全可以保留,甚至可以作为一个新的游戏“特性”,反过来影响到游戏的设计(Just as designed)。游戏史上并不乏这样的例子:著名沙盒游戏《Minecraft》在设计之初时偶然制作了一个贴图错误的猪模型,但开发者都觉得这个生物十分可爱,便把它涂成绿色,变成了《Minecraft》最有辨识度的标志:Creeper。在游戏《街头霸王中》,一些玩家发现可以利用敌人受击后短暂的硬直时间继续对敌人攻击从而连续造成伤害,尽管这完全不是开发者设想的游戏玩法,但玩家们在这个机制的基础上开发出了连招的玩法,这也迅速成为了“格斗游戏”的一个主流机制。直至今天还在影响着许多同类游戏。

原文链接:15.1.2 良性bug是否该被修复?

16.1 在现有的情况下,个人或小团队的创新发展只能依赖大型企业的资本支持了吗?

虽然很悲观,但我的答案是偏向肯定的。近十年的互联网新兴产业似乎在不断地循环:新企业推出了新兴产品,获得了大量用户的支持;大量企业效仿,形成同行竞争;大型企业发现商机,伺机投资或收购;没有大型资本支撑的公司在价格战中败阵,业界只剩下一至两个企业,形成垄断。网约车、外卖、共享单车……无数行业的龙头最后似乎都会“收束”成我们所熟知的那几个大型企业。这似乎不是很利于新产业的发展,但我也暂时没有想到有什么的方式能阻止这种情况。

原文链接:16.1 在现有的情况下,个人或小团队的创新发展只能依赖大型企业的资本支持了吗?

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

说实话,我对进入那些互联网大厂并没有太大的兴趣。我想做的是加入一个规模未必很大的,工作氛围良好的,大家可以畅所欲言,不必看他人脸色的项目组(如果是游戏项目就更好了)。如果还有闲暇时间的话,在放松自己的同时,希望也能运用自己的知识,写一些能够提高自己生活质量的小型程序(所谓小作坊式的编程?)。

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

坦白说,在寒假里得知需要完成假期作业时我在心里咒骂过这门课程()。但是当我打开CSDN社区,无意间打开了一些本校或外校的学长/学姐曾经写过的博客,我对这门课程的看法改变了。我认为这门课程和以往的一些语言/理论课有着很大的不同。
进入大学后,我一直有一个疑问:我学到的这些真的有用吗?工作的时候,难道不是只要写代码就够了吗?为什么要记住函数的名字和参数?我在用的时候百度搜也不会耽误多久呀。网络上有着那么多现成的模板,需要做某个功能时只需要在此基础上稍作修改即可,为什么要理解底层的逻辑?为什么我们还要学习过时的语言?我甚至怀疑过任课老师的水平,因为他们中的大多数并没有进入公司真正做过项目,而只是将他们从老师那得来的知识复述给我们罢了。
但是在浏览了许多篇学长/学姐的博客后,我能感受到,许多人确实因为这门课程改变了很多,甚至有人荒废了两年学业,在学完这门课后又重新燃起了斗志。他们学会了如何从头开始完成一个项目,学会了团队合作(而不是一个小组中的一两个完成大多数工作,其他人坐享成果)。这也是为什么我如此认真地写这篇博客的原因。此外,《构建之法》实在是一本很有意思的书,论坛中的讨论也提到了很多我没有考虑过的问题,用狼吞虎咽来比喻我浏览论坛和读书的过程也不为过。我希望通过软件工程这门课程学习到使用unity框架开发一款游戏的方法,同时也希望能够学习到一些团队合作的方法。
在这学期的课程中,我十分期待找到志同道合的队友一起完成项目,同时我也迫不及待地想要尝试一下《构建之法》中提到的多种开发方法(结对编程、敏捷开发、单元测试等)。希望经过这个学期的学习后自己能有所成长。

思维导图和学习路线

思维导图

img

学习路线

img

...全文
1068 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

写的很好呀,考虑把学习内容和过程沉淀成笔记知识库吗?

zhangrelay 2023-02-15
  • 打赏
  • 举报
回复
写得太好了,加油加油
幻灰龙 2023-02-15
  • 打赏
  • 举报
回复

这个学习路线不错。

222000224赵翊琛 2023-02-15
  • 打赏
  • 举报
回复

看来markdown语法不能完全兼容html的特性啊,歌名列表和歌词部分本来应该是左右各占一般空间的,和我本地预览的不太一样,不过问题不大

  • 打赏
  • 举报
回复 2
不谈技术,谈谈职业人生,我肯定年长你很多了,我加入互联网这个行当,没别的原因,就是想找个工资高的。大学选专业时热门的是通信,毕业时时互联网,家里兄弟多,没办法,毕业转互联网。 摸爬滚打了些许年,如果给我重新选择的机会,假如家庭条件允许,我想试试老师和科研,如果还是原来的经济条件,我还是会选现在的行业。 说回到工程师职业,我认为,努力要趁早,而且别松劲儿,在有精力的时候,挖挖深度,拓拓广度,很重要
路 飞 2023-02-14
  • 打赏
  • 举报
回复
继续加油
FZU_SE_teacherW 2023-02-14
  • 打赏
  • 举报
回复 1
看得出你是用心读了《构建之法》,思考也很深入,赞👍🏻 对这门课学习的收获不仅来自项目开发本身,还来自项目开发后教师的点评,希望你能在课程学习中也能获得学长们的体会。加油!
几何心凉 2023-02-14
  • 打赏
  • 举报
回复
强者从来不是一下子强大的,日积月累,厚积薄发,加油,未来可期!为你的规划打赏!
情韵~ 2023-02-14
  • 打赏
  • 举报
回复 1

强👍

586

社区成员

发帖
与我相关
我的任务
社区描述
软件工程-2022-23学年(第二学期)
软件工程 高校
社区管理员
  • LinQF39
  • promisekoloer
  • 异梦1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧