个人技术,做中学
这个作业属于哪个课程 | 班级的链接 |
---|---|
这个作业要求在哪里 | 作业要求的链接 |
这个作业的目标 | 课程回顾与总结、个人技术总结 |
其他参考文献 | 《构建之法》 |
第一部分:课程回顾与总结
尝试解答
博客链接(https://www.cnblogs.com/zhengkaixin/p/14484018.html)
1.在团队合作时,如果有其中一个成员陷入了麻烦,或者没有按时完成目标,而且团队成员不在同一个地方,应该怎么有效解决?
- 这个问题在我亲身实践的时候深有体会。
- 尝试解答:从我进行结对编程/团队项目的经历来说,其他成员的进度仍需继续推进,然后在完成自己任务的同时,多花一点时间相互讨论一下,商量如何解决问题。我还没有接触到很难解决的问题,因此目前这对我们团队来说是比较好的解决方案。
2.敏捷开发的原则有一点是尽早并持续地交付有价值的软件以满足顾客需求,那么是和MVP的做法有什么关联吗?
- 通过看书和查资料对问题有了新的认识。
- 思考:因为我阅读到MVP的指导思想与渐进交付相似,并且强调更早获得用户反馈。
- 尝试解答:在“快”的前提下,敏捷开发是:知道“方向”验证“方法”;最小可行产品(MVP)是:知道“方法”验证“方向”。
3.敏捷流程中指出把任务分解到一个可以执行的冲刺任务,应该分解到什么程度呢?
- 这个问题在我亲身实践的时候有感触。
- 尝试解答:根据我们在开始编程之前所规定的文档,我们一般把任务分解成多个子任务,每个子任务对应一系列同类的功能,再将子任务分解成多个基础功能,用接口来描述,冲刺时就是对一个个接口的实现和测试,最终完成任务。
- 继续分析:在实践中,感觉分解任务是一个自上而下的过程,我们的项目就可以用一个树状图将任务分解。
4.敏捷流程中会遇到“认为任务都完成了”的问题,没有明确表明到底应该以何种优先级来完成那部分20%却要花80%时间的任务,按照一般开发顺序那部分20%的任务又不得不在后面才能做,那么按照作者的经验就会导致一直拖着,然后需要团队花大量的时间来解决,那有什么好的方法来解决这个问题呢?
- 这个问题在我亲身实践的时候有所体会
- 尝试解答:做过项目的人都知道,当你说“任务都完成了”的时候,那只是说,开发人员认为该写的代码都写完了,但其实还有很多事情没做完。例如显示图片文字还要考虑跨系统、跨语言的问题等等。我们在做项目过程中也有碰到类似的问题,按我当前的实践经验来说,可以在需求分析时对这些问题进行整理,并在代码实现过程中同步解决,但很难做到一次性都完整,因此等“任务都完成后”继续补缺补漏,完善代码。
5.MVP做法指出更早地投入到给用户反馈,如果没有获得有效地用户反馈呢?是否会影响开发?有什么好的方法获得用户反馈?
- 查找资料和自己体会
- 尝试解答:MVP的真实含义是选择,是你在有选择困难时,辅助决策的一种工具,且MVP会直接影响产品后续规划,基于MVP上线后的效果、数据反馈,将有功能优化、方向调整等一系列应对措施。如果没有很好地获得用户反馈,其实也是一种反馈,真实地去对待所有得到的数据,用这些来指导接下来的开发,然后把MVP贯穿在整个产品的生命周期之中。
- 继续分析:对于,如何更好地获得用户反馈,我没什么解决方案,可能只有加大力度推广?像之前β冲刺最后的问卷,也难以获得很多用户有质量的评测。
五个阶段,做中学
- 需求:在需求分析时,首先最大的感触是第一次真正意义上地进行团队协作,在组长的组织下,大家分析需求,将需求一个个具体地定义出来,并在讨论中逐步完善整个项目所要实现的功能。
- 设计:学习了数据库设计和类图设计,对sql语句进一步熟悉。
- 实现:学习了SpringBoot框架的使用,用mybatisplus进行代码自动生成,理解了前后端的交互。
- 测试:学习了使用junit5单元测试和knife4j接口测试,在单元测试使用了一些自动化手段。
- 发布:设计用户体验问卷问卷,学习了对问卷问题的设计。
心得
- 一开始个人项目是一个偏算法的项目实现,在实现的过程中,对算法进行完善和优化,使考虑问题更加详细,同时也在那时接触到了github的使用,为后面的项目打下了基础。
- 在结对编程时,我和yrc同学在做中学,完成了原型的设计,在结对编程一接触并掌握了一些原型设计的技术;在结对编程二中,第一次用前后端分离的方式进行项目的实现,我也加深理解了如何使用js,当时我印象最深的是对css的使用很生疏,然后和舍友在讨论css的实现;yrc同学之前有类似的经验,在他的帮助下,我学会将项目部署到服务器。
- 在团队项目中,让我真正地体会到了团队协作完成项目。从一开始的github编程实战,我们后端的几个成员基本都是零基础,在lxy同学的帮助下,我们开始学习SpringBoot框架,在一天之中完成了实战任务的后端部分,从那时开始我们对springboot才有了最基础的理解;然后慢慢从后面的α冲刺、β冲刺慢慢对框架的使用得心应手,对接口的实现和测试越来越熟练,感觉是真正学到了技术。
- 这学期的软件工程实践课总体来说是学到了挺多东西的,能完成一个项目还是很有成就感的。
第二部分:个人技术总结
SpringBoot上传和下载文件
概述:我们的项目是实现一个论坛。在论坛上发布博客时应该要可以上传文件,用户阅读博客是应该要可以下载文件。于是我去学习了SpringBoot的上传和下载文件,我感觉技术的难点在于使用图床并隐藏文件真实的存放地址。