个人作业——软工实践课程总结
这个作业属于哪个课程 | 2020春|W班 |
---|---|
这个作业要求在哪里 | 个人作业——软件工程实践总结 |
这个作业的目标 | 对软件工程实践课程的总结 |
作业正文 | ... |
其他参考文献 | 《构建之法》 |
一、回望
1. 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
- 开篇博客中我期待是在实践中学习和掌握一些后端框架和技术,但是阴差阳错的在团队作业中担任前端开发,虽然与一开始的想法不同,但深入了解学习并在团队中做出像样的前端页面,我觉得也是另一种锻炼。
- 期望和目标
- 学会使用Vue Element + Node.js开发
- 熟练掌握github基本操作
- 学会与他人协作开发
- 不足
- 开发效率低,常常面对搜索引擎编程
- 原因
- 对于前端相关技术之前尚未了解,前期学习和编码常常需要对照相关文档
2. 你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能;和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
- 先说结论:对比当前所学,我并没有达到当时预期值,但是学到一些以前不了解的前端技术。
- 在软件工程的多次个人作业,结对作业以及最后团队作业中,我培养了一些编码以外的设计能力和协作能力——结对作业学会了设计原型以及初步的两人合作开发。但与当初指定的学习路线不太一样,最开始团队选择开发Android应用,在一周过后因难度过大而转向web开发,由于组内后端人员经验较为丰富,我就自告奋勇投入前端工作,基本没有经验的我通过视频和文档学习,在同学和学长的帮助最后基本完成我的工作。虽然与我的预期不相符,但是学会了vue前端技术对于今后从事后端开发我觉得也是有所帮助。
3. 请总结这门课程的实践总结和给你带来的提升,包括以下内容:
-
统计一下,你在这门软件工程实践中,一共完成了多少行的代码
累计代码7000行左右
-
软工实践的各次作业分别花了多少时间?(做一个列表)
作业 | 时间 |
---|---|
博客搭建 | 12h |
个人作业————疫情统计 | 48h |
结对作业————原型设计 | 30h |
结对作业————编程 | 30h |
团队作业————选题 | 10h |
团队作业————GitHub 实训 | 8h |
团队作业————需求分析 | 24h |
团队作业————系统设计与数据库设计 | 10h |
个人作业————IM SDK 评测 | 20h |
团队作业————Alpha 冲刺 | 80h |
团队作业————Beta 冲刺 | 30h |
个人作业————课程总结 | 10h |
-
哪一次作业让你印象最深刻?为什么?
团队作业————Alpha 冲刺,第一次多人协作开发,而且自己也是从零开始学习前端技术,常熬夜。
-
累计花了多少个小时在软工实践上?平均每周花多少个小时?
因为自己水平不足,面对一些代码开发任务,前期进展总是缓慢,大约有300小时,平均每周要花近15小时
-
学习和使用的新软件
github
-
学习和使用的新工具
- 原型设计工具,以前还不知道原来有这个
- markdown,对于只会用word打字的,第一次见到这么强大的工具
-
学习和掌握的新语言、新平台
前端框架:vue.js
-
学习和掌握的新方法
- 利用单元测试来测试代码
- 性能分析工具,用来分析程序性能
- 撰写需求文档和开发文档
-
工程能力的提升
- 代码阅读能力:在前期学习的时候常常通过阅读大佬代码来加深对知识点的理解
- 系统和数据库设计:结对作业中熟练运用了本地数据库
-
团队合作上的提升
很幸运地遇到好的团队成员,大家积极完成分配任务,在协作中可以相互帮助
-
其他方面提升
抗压能力得到很大提升,在遇到程序或页面崩溃后能冷静分析原因
二、团队总结
-
如果你是组员,你觉得你的组长分工安排是否合理?你对组长的选举有什么建议?
我们组(D6PLUS)组长分工合理,虽然缺少前端大佬,但是组长扛起主要的前端开发,在我实际开发中给予我跟多帮助和指导。
组长的选举,能毛遂自荐是最好的,倘若摇骰子出来的对组员和组长可能都不是很好。
-
你这学期经历过换组吗?你对换组有哪些看法?谈谈你在这个过程中的感受。
- 没有经历过。
- 换组的目的是提前适应项目组人员呢流动,可以理解,但是组员内主力如果被换走,这对于组内项目的推进是个大问题,换组成员最好是实力较近的两个成员。
- 感受就是新成员融入很快,点个赞。
-
分析一下自己所处的团队。软件工程实践是大学里少有的认真的团队协作经验。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?(参考《构建之法》第17章 人、绩效和职业道德)
我认为我们的团队还在磨合阶段,虽然每个成员都学习了相关技术,已经可以着手开发完整项目,但是项目完成度一般,与初始目标有些差距。可能是团队成员6人较少,在分配任务时前端只有两人且从未系统学习过,前端任务较重导致最后做出来的成品没有想象中的完美,相信经历这一学期实践,自己今后进行团队协作可以更高效。
三、人月神话
-
怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?请在随笔中用数据证明上述内容或侧重选择之一。
我们团队成员认真学习了软件工程,在初期用原型软件开发出预想的软件,第一次冲刺完成了大部分功能,并于第二次冲刺完善程序的不足。每一次冲刺的每一天都有详细的工作安排,团队成员每天定时会议沟通。
-
我的人月神话
在疫情统计作业中,第一次了解hashmap。HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。从构成角度看,HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度为O(n),首先遍历链表,存在即覆盖,否则新增;对于查找操作来讲,仍需遍历链表,然后通过key对象的equals方法逐一比对查找。
附上学习中保存的关于hashmap的put方法↓↓
四、建议
-
对下一届同学的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?请写下你对后来人的期许。
- 对于下一届的同学:
- 尽量提前做好自己的知识储备,在实际开发中才会更得心应手
- 编码能力很重要,但是选题时的前期准备工作更为重要
- 对于下一届的同学:
-
对于软工实践课程,你有哪些建议?
- 可以多展示一下往届优秀和一般作品
-
对于助教工作,你有哪些建议?
- 助教可以发一些视频讲解开发历程或者实践经验
-
对于自己今后,你有哪些建议?
- 只有下坡路才会轻松,一定要上进要努力