这个作业属于哪个课程 | 2020春S班(福州大学) |
---|---|
这个作业要求在哪里 | 个人作业——软件工程实践总结&个人技术博客 |
这个作业的目标 | 总结本学期软工实践的收获和心路历程 |
作业正文 | 作业链接 |
其他参考文献 | 《构建之法》 |
一、回望
1.对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
比起课程刚开始的时候我觉得是有一定的进步的,尤其是后端方面,学习了一定的springboot知识,之前一直有设想过后端大概是个什么样子但从来没有实际操作过,这次的团队作业让我学习到了不少以前完全不知道的知识,可惜这次由于同时要准备考研,感觉我自己的后端知识并不深入十分皮毛,我的编码部分主要是在业务方面,像比较难的权限管理,安全管理和文件上传下载部分还是不太清楚,主要还是拓宽了眼界,巩固了已有知识并学习了一些新知识,不过我会继续努力的。
2.你在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
并没有,虽然学习到了一部分但我觉得还不足,还是停留在略微简单的部分还没深入学习之前预定的目标技术。
3.哪一次作业让你印象最深刻?为什么?
GitHub团队实训,因为首先我们的团队是随机组成,团队里的人基本不认识,然后在我们之前毫无交流的情况下就要开始进行实际操作属实有点突然,那天早上突然布置了这么一个作业我是完全没有想到的。不过还好经过短暂的讨论后我们勉勉强强开始了这次作业,首先确定了实现技术然后开始搭建环境,也是我第一次下载安装Maven,但不知道为什么有一部分包下不下来整个springboot跑不起来,结果我直接将组长的Maven仓库里的包手动复制下来,那个时候我真的完全没接触过springboot,就不知所措,然后就开始漫长的摸索实践,觉得自己摸索的差不多了就开始模仿着组长的代码进行编码,当自己写的业务功能运行成功的时候非常有成就感,从我成功了第一次之后我就差不多明白了这次作业要如何从接受前端发来的数据,之后又是观看组长的代码明白了怎么发送数据到前端,从这时开始我的编码进度开始突飞猛进,之前真的就是堪比蜗牛的进度几个小时看理论教程看不明白是怎么一回事,还是参考别人代码这种方法比较适合我学习新知识,这也是我第一次体会到了ORM的好处。不过那天真的做的不太好现在想想其实就非常简单还是第一次经历加上时间有限太紧张了。
4.在课程问卷中,我们统计了你在课程上花费的精力和提升;现在请你再次将这些数据罗列出来,作为个人的记录。
内容 | 结果 |
---|---|
在这门软件工程实践中一共完成了多少行的代码 | 1W行左右 |
累计花了多少个小时在软工实践上 | 180小时左右 |
平均每周花多少个小时 | 20小时左右 |
学习和使用的新软件 | IDEA,Axure |
学习和使用的新工具 | Git,Maven |
学习和掌握的新语言、新平台 | 学习了新的Java框架springboot |
学习和掌握的新方法 | 使用ORM进行数据库操作 |
工程能力的提升 | 学习了一定的springboot知识和原型设计技术 |
团队合作上的提升 | 提升了团队协作沟通能力 |
其他方面的提升 | 对整个软件的生命周期有了一定的认识 |
各次作业 | 时间 |
---|---|
软工实践寒假作业(1/2) | 3小时左右 |
软工实践寒假作业(2/2) | 14小时左右 |
结对第一次—疫情统计可视化(原型设计) | 25小时左右 |
团队作业第一次—团队展示和项目展示 | 6小时左右 |
结对第二次作业——某次疫情统计可视化的实现 | 30小时左右 |
团队作业第二次——团队Github实战训练 | 12小时左右 |
团队作业第三次—项目需求分析 | 10小时左右 |
团队作业第四次—项目系统设计与数据库设计 | 10小时左右 |
个人作业——软件评测 | 8小时左右 |
团队作业第五次——站立式会议+alpha冲刺 | 32小时左右 |
团队作业第六次——beta冲刺+事后诸葛亮 | 24小时左右 |
个人作业——软件工程实践总结&个人技术博客 | 6小时左右 |
二、团队总结
1.你是组员还是组长?你觉得你自己在哪些地方做得好?你觉得自己还有什么可以改进的地方,具体可以怎么改进?
我是组员。我觉得我还是很积极参与团队工作,能够积极分享自己的想法和一些创意,而且负责的内容虽然不难但是量会稍微大一点但还是很及时的完成了,遇到问题也会在群里积极讨论,需要改进的地方就是我可能太依赖组长了,一方面就是我一个新手菜鸟经常有一些不太友好的或者说比较笨的操作,比如使用魔法值而不是用枚举代替,或者不对一些变量进行打包管理,另一方面就是有的时候我还是像之前实训一样比较依赖组长先写他自己负责的代码然后我参考模仿进行编码,其实我可以自己在网上学习怎样的编码健壮性比较强,如何写效率高更方便更易于之后的管理,这可能就是经验的差距了,我还是需要多多学习
2.你觉得你的组长(组员们)在哪些地方做得好?你觉得ta(ta们)还有什么可以进一步提升的地方,有什么具体的建议吗?
我觉得我们组组长和组员们非常棒,组长认真负责,组员积极配合,我也没想过我随机分配能分配到这么一个组,一方面是管理能力很强,做事有条有理十分顺畅,另一方面就是技术水平够硬,观念比较成熟,说实话相比而言我们族长更像是一个即将进入企业工作的人,而我们就比较像乳臭未干还在HelloWorld的学生,经常就会觉得他好专业,能考虑到方方面面,而我之前比如在编码的时候才不会关心编码的效率,可读性,健壮性等等,我就想完成功能就行了,在他身上我就学到了很多良好的编码习惯。组员们沟通也很和谐配合的很不错,大家分工有序,就会让我觉得工作起来很舒服很顺畅,从来没出现过什么乱七八糟的混乱现象,每个人都感觉愿意为团队贡献,都很开朗易于交流沟通,我是觉得我们团队相对来说非常不错,暂时没有任何建议。
3.《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?
团队的发展包括了萌芽、磨合、规范和创造阶段。说实话我感觉基本没什么磨合阶段,大家挺默契的,从来没有什么激烈的争吵,只有和谐的发表意见建议,提出自己的创意和想法,而且大家也挺活泼开朗的,每次开会气氛都感觉欢声笑语的很和谐,我们第一次实训的时候虽然大家连面都没见过但迅速的着手自己的工作并积极沟通,就挺神奇。其他三个阶段都经历过,最终达到创造阶段,并完成了我们之前讨论的选题,即社团管理系统,并基本完成了预期的功能和计划甚至还多了一些新功能。
4.从开发的角度,你在团队中担任了什么角色?你是否完成了该角色的任务?现在你觉得你适合该角色吗?
开发角度来看我属于后端开发人员。在项目开发中我对springboot框架有了一定的了解,也对后端这个角色有了一定的了解。我完成了后端的任务,编写了接口及其相关业务20余个。我现在觉得我还挺适合后端开发的,希望自己以后能学有所成并且从事相关工作。
三、人月神话
1.怎样证明你学会了软件工程?以下要求你们的团队达到了哪几个?
2.写下属于你自己的人月神话——个人或结对或团队项目实践中的经验总结+实例/例证结合的分析,字数不限,开放命题,可以使用你自己喜欢的方式表达
每次团队任务我们都会提前开始任务的分析规划并且着手实现,这样就可以为之后的开发进度未知性提供保障,就不会出现临交作业前还有无数bug,结果草草了事乱写一通,甚至交个运行不了的半吊子上去。万事做好准备,进行细致合理的规划,正确预估好工作量,对开发工作的帮助很大,提高了开发的效率与质量。
四、建议
1.对于下一届同学,或者大一的同学,你想说:
好好学习,好好对待这门课,不要偷懒划水,这门课甚至可能决定你之后的工作方向
2.对于自己今后,你有哪些建言?
首先是先着眼于当下的考研,然后就是希望我每次的项目实践都能学到一定的知识日积月累,让自己成为一个能在行业立足的人。
3.对于助教工作,你有哪些建议?
建议就是不要那么严肃可以多多调动大家的积极性并及时反馈学生们的诉求,好好的进行沟通
4.对于软工实践课程,你有哪些建议?对于软工实践课程的上课形式和内容,你有什么具体的意见和建议?在哪儿需要强化或者剔除?
我觉得这门课从寒假就开始对我不太友好,占用的时间太多了,尤其是在大三下这么一个尴尬的学期又没有那么多时间,我是觉得其实可以像计算机专业的一样放在大三上,这样可以早点接触比较专业的软件开发知识,也可以在之后大三下更加深入学习一些自己感兴趣的东西。我的建议是有些答辩完全可以放在一起,提高效率,没必要硬凑课时,多出来的时间完全可以用于技术的分享与学习