纸上得来终觉浅,绝知此事要躬行
这个作业属于哪个课程 | 2021春软工实践|W班 (福州大学) |
---|---|
这个作业的要求在哪里 | 软件工程实践总结&个人技术博客 |
这个作业的目标 | 回顾课程与总结、个人技术总结 |
其他参考文献 | 无 |
第一部分:课程回顾与总结
问题回顾
问题博客链接
问题
1、关于PSP的使用
原先觉得PSP的估算实在不太好做,觉得PSP的用处不大,现在才发现,PSP表格通过任务分解、预估子任务实际、统计实际时间,进而发现哪些子任务存在效率低下情况,加以改进。通过对PSP表格的对比,可以更直观的分析出自己能力有所欠缺的部分,便于今后更好的提高。而且通过几次的结对编程、团队编程的经历,我也认识到时间估算能力的重要性,想要让项目较为顺利地进行下去,时间安排的合理性就很重要,通过PSP的分析,然后进行较为合理的时间安排,可以减少项目进行过程中的各种突发情况。
2、关于理性地工作
我想我对原先提出的问题也许存在一些语言上的理解错误,一个成熟的团队必须从事实和数据出发,按照流程,理性地工作
,我现在觉得书中所说的很正确,我认为这里的理性并不是说缺少个人的、感性的分析,而是指要理性地根据实际情况以及团队安排流程来进行工作,也就是说对于事实可以有个人的感性的看法,但是也要对数据、事实进行理性的分析,在安排的工作流程中,也要理性看待,在流程上过于自我的话,很有可能会影响到团队中的协作,造成不好的影响。
3、关于过早的优化是一切罪恶的根源
我认为对于问题,还是越早解决越好,越是项目后期发现的问题,修复的代价越大。但是如果目前的问题对项目的影响不大,还是可以考虑先放过,不要钻牛角尖地一心想要优化,陷入不断优化的漩涡中可能会导致项目的进度都受到影响。
4、关于结对编程
在经过结对编程实践之后,我也意识到了结对编程的优越性,结对编程对于项目的质量有很好的帮助,也能提高效率,会产生1+1>2的效果,但是这是基于我和我的结对对象本身就比较熟悉,配合比较默契的前提下。我还是觉得在现实生活中,一些小型的公司不会有精力去培养结对对象,成本也许会太大,大公司的话或许有这个可能性去实施结对编程的方法。
5、关于团队模式的选择
要选择什么样的团队模式,还是要根据具体情况具体分析,之前的团队项目中,我们的团队模式比较偏向业余剧团模式
,每个人可以选择自己擅长的部分,并且有“组长”的指导和安排,每个人各司其职,平等讨论,总体来说还是很不错的。
做中学
需求阶段
从前对需求的分析都比较自我,较多地从自己的角度去思考,在这个阶段中,更多的学会了从不同的用户角度、不同的场景去分析,需求文档的编写也比我想象的复杂的多。在这个过程中也学习了对原型工具Axure RP的使用。
设计阶段
设计阶段做的好,对后续阶段的帮助可太大了,起初在设计阶段有部分内容(数据库设计、接口文档设计)考虑不够周全,然后实现的过程中才发现问题,就又要进行很多的修改。
实现阶段
学会了使用github进行团队协作,遇到的问题还是比较少的,偶尔遇到了冲突的问题。然后学会了spring boot以及mybatis-plus的使用,使用框架真的简化了开发。对代码规范也有了更多的了解。由于在实现过程中发现数据库、接口等一些地方有不完善的地方,浪费了一些时间,更加意识到设计阶段工作的重要性。需要注意的是,如果要进行修改,一定要让团队成员都能及时知道,并且充分慎重考虑。
测试阶段
对JUnit单元测试的使用更加熟练,还运用到了一些白盒测试和黑盒测试的方法。测试最好在完成了一个模块了就先进行测试,不要全部堆到最后测试,这样更方便找到错误。
发布阶段
发布除了考虑代码外,还需要考虑所部署的服务器,有可能出现本机服务器和部署服务器操作系统不同的原因,导致代码运行时出现错误。
在上述几个阶段中,有一个共同的收获,就是要加强和团队成员的沟通,这样才能保证项目进展更加顺利,能更快解决遇到的问题。
理解与心得
个人项目
个人项目中让我最为印象深刻的就是测试的重要性了,因为起初对测试考虑的不全面,通过了一些用例之后就以为正确了,没有进行多方面的考虑,导致代码的正确性没有达到要求。
结对编程
第一次接触结对编程,体验还是比较好的,初步感受到了结对编程的优越性,不仅提高了编程的效率,对提高代码的质量也有帮助,发挥出1+1>2的效果。当然,这也许是因为和结对的对象本身就比较熟悉,配合比较默契的原因,所以适应结对编程的成本比较小。
善用框架可以简化开发,因为在这个阶段的时候,对前端的学习不够多,前端框架方面也没有学习过,担心学习成本太大,使用了jsp+html原生开发,过程挺艰辛的,为了达到原型设计中的目标,在样式之类的细节上花费了不少时间。
团队项目
更加熟练的使用GitHub进行团队协作,但是还是遇到了一些冲突问题。
团队沟通真的很重要,遇到问题时,团队成员集思广益,能更快地发现错误,解决问题;而前后端加强沟通,可以尽量减少接口对接时遇到的问题。
不要小看任何一个阶段,把每个阶段做好,都能帮助下一个阶段的顺利进行。
第二部分:个人技术总结
Mybatis-Plus实现分页查询
概述:分页查询是一项常用的数据库查询方法,而使用Mybatis-Plus的分页插件,可以为你省去更多的时间去编写复杂的数据库语句,当然,前提是你还是要懂得一些数据库查询语句以及Mybatis-Plus的常用方法。