个人作业———软工实践课程总结
这个作业属于哪个课程 | 2020春|W班(福州大学) |
---|---|
这个作业要求在哪里 | 个人作业——软件工程实践总结&个人技术博客 |
这个作业的目标 | 对软件工程实践课程的总结 |
作业正文 | |
其他参考文献 | 《构建之法》 |
一、回望
1、对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
在软件工程专业的能力方面,我希望可以参与一个产品通过软件工程的方法从零到上线的完整过程,到现在课程结束,我做到了。从选题、原型设计、需求分析、系统设计、数据库设计、Alpha冲刺、Beta冲刺,我们一步一步运用软件工程的方法,渐渐把产品给完成。通过这门课程,我终于明白,成为一名优秀的软件工程师,不仅仅需要优秀的编码能力,还需要有良好的设计能力与沟通能力。
在技能方面,我希望做到的熟悉vue框架的使用,到现在的课程结束,我也做到了。前期通过不断的视频学习,参考GitHub上面优秀的开源项目,我渐渐掌握了vue框架的使用,并较为熟练的使用组件库。最重要的一点,在项目编码的过程中,设计能力,开发能力,合作能力以及技术熟练方面都得到了比较大的突破。
不足的地方:我觉得最大的问题还是在沟通上,我们小组原先是有两个负责前端的开发,因为不善于沟通,设计完页面大体布局后,始终达不成相同意,于是我们alpha冲刺时,就决定由我做前端的全部内容,她只负责样式,这也是我们alpha冲刺后,我们的项目较为简陋的原因。在beta冲刺时,这样的情况依旧在发生,以至于我们多增加了两位同学来前端协助开发。究其原因我认为还是沟通不够。
2、你在第一次作业的个人简历中制定的这门课程结束后,你预期你将增长的能力、技术、技能;和你针对你的目标绘制的学习路线图。对比当前你的所学所得,你达到了当时的预期值吗?
我预期可以通过软件工程实践锻炼和提升工程能力和团队合作能力,经过多次的作业还有两次冲刺,对于工程能力的提升我认为达到了我的预期。但是并没有按照路线发展。我当初的想象是掌握vue框架后,学习心得框架,但是组建团队之后,发现团队前端开发选手极度缺乏对vue框架的使用,我不得不考虑团队,尽量多的完成前端开发,并解决他们前端开发遇到的bug,渐渐对vue框架的使用达到了精通。
3、 请总结这门课程的实践总结和给你带来的提升,包括以下内容
-
统计以下,你在这门软件工程实践中,一共完成了多少行的代码
不考虑自动生成的代码,为了完成这个课程,累计代码大概在1w行左右
-
软件实践的各次作业分别花了多少时间?(做一个表格)
作业 时间 博客搭建 12h 个人作业————疫情统计 40h 结对作业————原型设计 10h 结对作业————编程 20h 团队作业————选题 10h 团队作业————GitHub实训 10h 团队作业————需求分析 24h 团队作业————系统设计和数据库设计 10h 个人作业————IM SDK评测 20h 团队作业————Alpha冲刺 90h 团队作业————Beta冲刺 40h 个人作业————课程总结 4h -
哪一次作业让你印象最深刻?为什么?
GitHub实训作业,从早上10点开始到晚上12点,着实顶不住,关键还是用原生,前端还用的是swing,人都不好了。
-
累计花了多少个小时在软工实践上?平均每周花多少个小时?
累计花了超过290个小时的工作时间(没算摸索新技术的时间)。平均每周花16个小时。
-
学习和使用的新软件
xshell、xftp
-
学习和使用的新工具
Typora、Axure RP
-
学习和掌握的新语言、新平台
markdown,element
-
学习和掌握的新方法
- 利用单元测试来测试代码
- 性能分析工具,用来分析程序性能
- 撰写需求文档和开发文档
-
工程能力的提升
- 需求分析能力:能在生活中发现用户需求,并形成需求文档。
- 原型设计能力:能够设计出表达需求的原型,方便理解和沟通。
- 系统设计能力:能够运用UML对需求进行建模
- 开发能力:能够根据文档,实现编程
- 协作能力:能够和团队进行高效的合作
-
团队合作上的提升
前后端交互的时候,由于一开始没有考虑齐全,导致有的时候前段需要的数据,不能一次性通过后端返回,需要同时调用多个接口才能拿到。
-
其他方面的提升
抗压能力。最大的体会是:行百里者半九十。因为各种因素,Beta 冲刺是顶着巨大的压力完成的,这些压力来自家庭、来自个人、还有团队成员的影响。
二、团队总结
我认为我们的团队还处在磨合阶段,就像《构建之法》中所举的例子————“你应该信任我,我的代码没有问题”,在合作的过程当中,我们远远不能放心把工作交到一个人手中,对于每一个模块的代码、每一个接口都会自己去重新测试一遍,这是很浪费精力的,对于团队的合作非常的不利。我在团队中主要负责前端开发,我认为团队有几个不合理的地方,一个是前端的工作过重,Alpha冲刺明面上是两个,其实只有我一个人在做前端部分,另一位同学因为前端基础知识薄弱,自主学习能力也较差,只完成了部分css部分的设计,其余同学全部都在做后端开发,导致前后端进度差距过大。以至于在beta冲刺时后端的大部分接口都已经完成,而前端还处于项目最艰难的时候。第二个是,交流不够,以至于很多时候即使从后端拿回数据,因为数据不够,前端还要对其加以判断才能达到要求。最后一个是,没有调动技术薄弱的同学的积极性,主要工作集中在了几个人的身上。
三、人月神话
1、证明我学会了软件工程。
我们通过软件工程的方法指导,在预期的时间内发布了一个完整的、可维护、可拓展的软件。我们的项目紧跟着老师的作业安排,从选题开始,到设计原型,到需求分析到后面的每一个阶段,都有详细的工作安排、有完整的工作文档做记录,并且代码严格遵守编程规范,有详细的迁入记录。
2、我的人月神话
接口文档是前端和后端交流的唯一窗口,在项目启动的时候,我们就强调,后端开发人员在开发接口的同时也要编写好接口文档,甚至安排了专人负责接口文档的维护。但是随着开发的进行,接口爆炸性增加,并且Beta阶段还对接口做出了修改,问题还是出现了。后端因为怕麻烦,并没有维护好接口文档,就导致前段每调用一个接口,都要事先进行测试,甚至还需要询问后端开发人员,这就直接导致前端进度变慢,为了如期完成项目,砍掉了附加功能。如果可以重来,我觉得前端因先和后端探讨返回的数据,减少打包没用的数据,保证需要的数据可以正确返回。并且用postman每测试一个接口时,都将地址,参数,返回数据等信息记录
四、建议
1、对下一届软件工程实践班同学的建议
在选题时一定要明确,这门课程不仅仅是代码的编写,还有对《构建之法》的落实和应用
2、对软件实践课程的建议
我觉得可以维护和拓展以前的代码,感觉也不错
3、对助教工作的建议
助教可以发一些视频讲解开发历程或者实践经验
4、对于自己今后,你有哪些建议?
不能松懈,松懈就要花更多的努力才能跟上脚步,每天不断的编程,才能让自己的知识更加巩固