软件工程寒假实践作业
软件工程寒假实践作业
| 这个作业属于哪个课程 | 2023年福大软件工程实践课程W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践寒假作业 |
| 这个作业的目标 | 注册博客、学习markdown、阅读《构建之法》、撰写博客 |
| 其他参考文献 | markdown教程-Gitcode 、Git入门-Gitcode |
目录
- 一、准备工作
- 二、回首过去
- 2.1 当初你为什么选择软件工程这个专业?
- 2.2 当初对软件工程这个专业的期待和想象是什么?
- 2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
- 三、立足当下
- 四、展望未来
- 4.1阅读《构建之法》
- 4.2 你未来的职业规划是什么?
- 4.2.1 毕业前
- 4.2.2 毕业后
- 4.3 对于软件工程实践课程,你有什么理解和期望?
- 五、学习路线
- 5.1 游戏客户端开发所求技术
- 5.2 游戏客户端开发需求技术路线
一、准备工作
1.1 git上传代码文件截图
- 使用SourceTree可视化git界面上传文件,可暂存避免本地丢失,提交附上描述

- 提交后可在代码仓里看到文件

- 使用SourceTree可视化git界面上传文件,可暂存避免本地丢失,提交附上描述
1.2 仓库地址
gitcode仓库:222000305
二、回首过去
不积跬步,无以至千里。
2.1 当初你为什么选择软件工程这个专业?
上大学前很喜欢玩游戏,有一天我哥和我讨论游戏的制作,聊了前景之类的东西,头脑风暴时也受很多实际开发中未知的领域的阻挡,于是决定要深入游戏行业一探究竟,选志愿时因为想多赚点钱到初中接触过易语言(虽然忘光了),认为软件工程的东西应该也可以驾驭,但计算机分数不够,于是选了软件工程,因为文案我哥去做,而我读书甚少,艺术技能^1也没有培养过。2.2 当初对软件工程这个专业的期待和想象是什么?
一开始从名字来看,就是学代码,打代码,对软件的整个系统还没有概念,甚至连“运行”这个概念都不太清楚。掌握的资料大多都来源于网上相关领域的解答,比如什么嵌入式、网页之类的,但关于游戏的没办法直接搜出来,只听闻那时候是游戏业又一蓬勃发展的时候。于是认知变成了猜测,因为听说大学有很大的自主性,于是认为学校也能学到游戏开发的知识。2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
当初希望了解完基础知识后就投入到游戏开发中。后来也在网上学习了很多引擎基础知识,但是学习的过程越来越艰难,因为越学越觉得需要的技能越多,当然这是指面向独立开发和完整项目。事实上实习之后了解市场、制作后觉得更难了 渐渐开始审视自己的本心,了解到,大多数进入游戏行业的人原因不外有三:1.游戏业薪资丰厚吃香正值风口。2.喜欢玩游戏。3.接触过游戏开发。但不论是哪种,都是一种动机和动力,只是游戏质量和影响力有差距。也常问自己是否真的会喜欢上游戏开发。最后得出:游戏行业很艰难,不论是程序还是其他,但我早已在大二上学期初做好了规划:大二下暑假实习,大三下至大四做出足够技术力^2的demo。
三、立足当下
| 基本信息 | ||||
|---|---|---|---|---|
| 昵称 | Ewanice | 籍贯 | 福建南安 |
| 性别 | 男 | 邮箱 | 1065540615@qq.com | |
| 特长 | 观察、想象 | |||
| 兴趣爱好 | 音乐、游戏、美术、做梦 | |||
| 获奖经历 | ||||
| 无 | ||||
| 专业水平 | ||||
| 掌握的编程语言 | c、c++、c#、java、html、php、css、javascript | |||
| 掌握的技术框架 | Game Framework | |||
| 掌握的开发软件 | Dev-C++、Eclipse、Vs Code、Vs、Android Studio、Unity、JetBrains Rider | |||
| 累计代码量 | 2w+ | |||
| 实习经历 | ||||
| 2022年7月-8月 | 上海心柒文化传播有限公司 | |||
| 项目经历 | ||||
| 个人练习项目 | 背包系统、碰撞处理、渲染管线、刚体移动等 | |||
| 实习项目 | 2022年7月参与游戏商店的开发、应用Game Framework框架开发商店UI与UI逻辑,UE细节类比游戏《原神》 | |||
四、展望未来
4.1阅读《构建之法》
- 水平近似的两个人在进行结对编程时,是否会由于能力的限制导致代码质量无法提高?
直接拿消极情况来看,当驾驶员工作时,领航员跟不上驾驶员的思路,此时必然产生问题,同时也促进领航员的提升,能力的差距显现出来时,一定会出现双方思维的碰撞,这样,只要差距不至于太影响开发效率,两者将在开发过程中共同提升。 - 写了再改Code-and-Fix模式真的很差吗?
这要分团队和个人开发两种情况。团队中沟通是重要且必要的,不同的岗位在开发中扮演的角色常常因为个人风格、对需求的理解和开发难点等因素出现问题,此时相比于写了再改,不如提前沟通好需求,适时提出质疑,并确定接下来正确的方向,即使为此开个会解决也好过后期反过来重构。我在实习期间,公司项目中时常不断地出现沟通环节,尤其是出现可行性与现实性地问题时,互相质疑是十分正常的。而个人独立开发难以统筹整个过程,写了再改也许难以避免,但一定要在需求阶段确定好实现的可能性并根据市场考虑到可能的反馈结果。 - 关于团队中的角色转换和转会,究竟有没有这方面的需要呢?我们团队进行了角色的转换,但大家都需要花费很长的时间进行新知识的学习,是不是降低了效率呢?
我认为此问题可能涉及到个人的业务方向和未来发展。个人认为如果自己希望在此次项目能够获得对其他岗位或角色的理解,那么代入到这些角色中是很重要的,但是是否需要转换和转会,还要取决于实际意义。作为练习或者模拟项目,也许可以使得我们学会总揽全局,也学到很多其他方向的知识,毕竟学习总可以试错,但实际项目开发我认为则完全不需要,除非你已经做好做全了本职工作。学习伴随着思考,未来若期盼岗位上升,或者独立开发,学习其他的知识也很重要。 - 在MVP方法中,如何保证雏形产品的不完备性不影响用户反馈?
用户反馈通常有评价和建议。以游戏为例,很多世面上的demo很难做到将游戏体验发挥到极致,即玩家很难体会到游戏的内涵,而可能只有机制或系统,这样一来,若美术与音乐和剧情没能够提升体验感,或者没出现新颖的设定和直接的冲击,demo的直接反馈就会变成:"不就是XX、XX的融合怪吗?"。用户才不考虑你的心路历程,顶多在建议中多写一些。提前表明项目的未来,做好公关,一个好的包装是有用的。当然最重要的是把核心功能和必要的点子做好。 - 虽然敏捷流程非常的迅速高效,但这是否是对团队人员的一种消耗?
正常项目的开发肯定需要汇报进度,避免出现有人掉队导致拖慢整个进度。曾经自己也在划水的行列,因为没有惩罚导致项目没有后续了,因此汇报是必要的,而且同时还需要及时地在会议中提出现阶段遇到的问题,该头脑风暴时就头脑风暴,该敏捷开发时就敏捷开发,不要让人为因素拖垮项目。 - 软件开发过程中是否有必要保证代码具有100%的正确性,如果有必要又应该如何实现呢?
如果正确性是指正确实现项目需求,我认为不必要,而是要在尽可能保证完成需求的同时不出现error。我认为项目是可以允许出现逻辑bug的,例如某张卡硬是抽不出来。不能出现error的原因是让其他人在分析程序或者测试时不花时间来解决你应该做的工作,同时也能保证开发效率。不是每个人都能每次都写出优秀的代码,因此也不用太考虑逻辑上的缺陷或者后续优化。当然全局观还是要有的。
4.2 你未来的职业规划是什么?
4.2.1 毕业前
- 2023年春至下半学期实习前完成毕业demo基本功能
- 初步接触UE引擎的基本操作和功能,了解与Unity的不同
- 学习插件、巩固常用插件使用技巧(Dotween、odin等)
- 学习各种架构,如ECS
- 学习语言Lua、python
- 学习图形学
- 学习常用算法,掌握必要算法(A*等)
4.2.2 毕业后
- 进入中大厂,学习大型项目开发、标准技术以及新技术
- 学习游戏AI— —AI大世界、AI模型、游戏AI等(参考无人深空)
4.3 对于软件工程实践课程,你有什么理解和期望?
- 理解:软件工程实践课是能够依照企业开发流程完成一个完整项目的实践课、并且以此熟悉多人开发的过程和要求、培养项目的跟进和掌控能力。
- 期望:期望如理解,希望能够在实践课中学到完整项目的开发精髓,包括重要的系统、必要的平台等,并构建起一套完整的开发体系,以适应全流程的开发,并以制作人为目标,希望获得项目的领导经验。而对于个人技术的补充,则希望用到一套比较基础的战斗系统和完备的、可移植的UI(用户UI、状态栏、背包等)
五、学习路线
5.1 游戏客户端开发所求技术

5.2 游戏客户端开发需求技术路线

...全文


