烤盐人——团队作业六:alpha阶段问题总结随笔
alpha阶段问题总结随笔
这个作业属于哪个课程 | <福州大学2021春软件工程实践S班> |
---|---|
这个作业要求在哪里 | <团队作业六——beta冲刺+事后诸葛亮> |
团队名称 | 烤盐人 |
这个作业的目标 | alpha阶段问题总结 |
其他参考文献 | <现代软件工程讲义 11 项目管理 - 事后诸葛亮会议> |
一、设想和目标
晒研论坛项目旨在给考研学生提供一个考研资讯查询、考研社区交流的环境,让考研学生更加方便地获取考研信息。
1. 预期功能标准
前端
1.用户端登录/注册静态页面及接口数据连接
2.首页静态页面及接口,社区静态页面及接口(首页实现文章推荐)
3.查看文章详情模块
4.文章一二级评论
5.发布文章模块
6.文章点赞收藏标签模块
7.个人主页静态页面及接口数据连接
8.后台管理员静态页面及接口数据连接
9.后台的静态页面
10.后台的用户管理接口数据连接
11.官方文章管理、文章管理接口数据连接
12.发布文章数据接口连接
13.通知管理,发布通接口数据连接(计划外)
后端
1.博客增、删、改、查
2.标签改、查
3.举报增、删
4.封禁博客
5.博客内容过滤
6.收藏增、删、查
7.防SQL注入、CSRF攻击、XSS攻击
8.用户信息查询
9.公告增、删、改、查
10.评论增、删、查
11.附件增、查
12.点赞博客
13.用户信息(包括密码)修改
14.登录、注册
15.接口防刷
16.日志管理
17.数据库优化
18.密码防爆破
19.权限管理
20.动态接口文档
21.高并发优化
2. 现实进展
预期的任务和功能,基本实现了“有”,都按原计划交付的时间交付了,但还有很多地方需要细化。
二、计划
alpha 阶段的计划如下:
第一阶段:前后端各自根据API文档开发
时间 | 前端 | 后端 |
---|---|---|
4.29 | 项目框架搭建、熟悉开发环境 | 项目框架搭建、熟悉开发环境 |
4.30 | 登陆/注册静态页面、文章详情 | 登录/注册、文章部分接口 |
5.1 | 首页文章列表、后台文章管理 | 文章列表、文章管理接口 |
5.2 | 发布文章页面、个人主页 | 用户信息接口、完善文章接口 |
5.3 | CSS美化+axios调试、后台用户管理 | 通知相关接口、点赞/收藏接口 |
5.4 | 文章评论、点赞/收藏文章 | 权限管理 |
5.5 | 前后台权限管理 | 代码测试、优化 |
5.6 | CSS美化、前后端联调 | 前后端联调 |
5.7 | 完整测试、打包发布 | 完整测试、打包发布 |
第二阶段:前后端接口联调与测试
第三阶段:总结本阶段进度与计划下阶段任务
三、资源
1. 人力资源分配
由于是自由组队和随机组队结合进行的,在人力资源方面,组员们之间都不太了解。商讨分工的时候,给出了产品经理、前端和后端三个角色,组员们根据自己擅长的部分进行选择,也可以选择多个角色。由前端、后端能力较强的同学担任前后端小组长,由组长进行任务划分,小组成员自主选择任务,这样进行人力的分配,有一个好处是能使组内成员各尽所长。
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
时间相对充足。我们在每天都通过线下或是腾讯会议开会讨论,并且使用腾讯在线表格进行收集小组成员的工作计划进度,每天每位成员都有固定的任务计划,提前完成的情况下可以自主选择完成待发布的任务,所以项目进度比较快。
四、设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
我们的设计工作是在团队作业四——系统设计和数据库设计时完成的,是由我们全组同学共同完成的。我们将系统设计和数据库阶段的任务通过会议和在线文档自由认领任务,所以是自愿选择的,所以算是合适的人,时间也是紧随团队作业三——需求分析之后的,是合适的时间。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
在开发过程中会遇到一些模棱两可的情况,一般通过询问产品经理,和产品沟通一下可以解决,如果还是没有解决就通过会议团队成员充分讨论得出最佳方案。
3. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
代码复审我们采用开发过程中开发人员自己复审,测试阶段由测试人员二次复审来提高复审质量。代码除了少部分可能有细节疏漏外,基本上严格执行了代码规范
4.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
要保持良好的代码注释习惯,防止项目越来越难读懂。前后端分离的是代码,但沟通需要更多一些,避免因为沟通问题引起的一些bug和小问题,重来一遍要加强沟通。
五、测试/发布
1. 团队是否有一个测试计划?为什么没有?
只有一个较为简易的测试计划,主要测试前端的页面逻辑、反馈以及后端方法的正确性
2. 是否进行了正式的验收测试?
我们在alpha阶段还没有进行了正式的验收测试,在beta阶段后进行验收测试。
3. 团队是否有测试工具来帮助测试?
有,前后端接口测试使用了chrome、vue-devtools、knife4j在线接口文档,单元测试使用了JUnit5单元测试框架。
5. 在发布的过程中发现了哪些意外问题?
我们为了保险发布了两个链接,但答辩演示时还是遇到了意外,由于后端接口文档https证书有问题连不上后端接口,由于我们平时调试时一直是浏览器打开着后端接口文档的,所以开发环境是登陆过接口文档,能够访问相关接口,因此在新环境上由于证书问题访问不了,所以没有及时发现这个问题。
六、团队的角色,管理,合作
1. 团队的每个角色是如何确定的,是不是人尽其才?
首先我们组是由组长发起的,所以组长就确定下来了,然后工作角色我们是分为产品经理、前端、后端(可以一个人兼任多个角色)。然后是通过小组开会讨论,根据个人意愿选择。由于可以一个人兼任多个角色,最后我们组所有成员都有参与前端或后端的开发。
其中前后端有对应的前端组长和后端组长由能力较强的同学担任,组长对任务进行分工安排,其中分工很精细,其中一些部分为协同开发部分(一个主开发人员、一个副开发人员),可以让能力不足的同学更容易上手,或者也可以让组员自己商量着来,充分发挥开发人员技术。
2. 团队成员之间有互相帮助么?
我们团队在遇到自己不能解决的问题时,会根据问题的情况发到群里面寻求帮助或者问组长或前后端组长。只要有问题,一定会得到热心、迅速的解决的。其中前端不会使用接口文档对接接口的问题,我们专门开了一次会议,由组长林炜通过屏幕共享大致的讲解了相关的操作。
3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
出现项目管理、合作方面的问题时,我们会通过当天晚上9:50的会议或临时会议讨论解决。
七、总结
1.团队成员心得
队员 | 心得 |
221801314 | 在冲刺开始的一两天里,还没完全进入状态,同样一些技术也不熟练,所以效率一般;但在中间的时间里,已经熟悉了项目和技术,和其他同学合作起来也非常顺畅,中期的产出效率会比较高;在进入到后期的时候,加入了一些测试,也发现了诸多bug,修复bug以及测试的时候就感觉效率又比较低了。经过这一次的alpha冲刺感觉也收获许多,学到了更多有关前端的技术。 |
221801226 | 回首我第一次软件工程的作业的前端开发学习路线,发现真的有在一步一步的在前进。从结对编程使用jsp+servlet到团队作业的vue框架和webpack构建工具以及与后台数据接口的连接交互,以及一直在对Github这类代码仓库管理系统的不断了解和熟悉。但是这一次冲刺也发现了我在vue基础语法的学习尚有缺陷以及对于一些异步请求以及vue的生命周期不是太了解的问题。(不得不说Vue有的时候组件懒加载不刷新还挺麻烦的,这部分花了我很多时间去改bug,还有生命周期里面使用函数也是做完发现错误再回溯去搜索学习。总之10天的时间里学到了很多同时也很感谢组长和各位组员的帮助!👍 |
221801235 | 本次软工实践强化了我对vue的理解与运用,团队开发最重要的是及时交流,有任何问题或想法都应该及时提出,有时候困扰你很久的问题也许其他人的一句话就能为你解惑,因此有效沟通能很大程度上提升团队开发效率,也有助于项目推进 |
221801203 | 之前的结对作业我还只是应用简单的html加css写,然后搬到jsp使用。这次团队作业学习使用vue来做前端开发,通过试错和百度收获了很多知识,比如测试的方法接口使用的jwt如何获取等等,框架是为了方便开发,虽然一开始入门不熟练反而不方便开发,但随着a冲刺的推进,慢慢边学边练就适应了。还有团队开发队长的指导也让我受益匪浅,总之就是在冲刺过程中学到了一些以前没有接触到的知识。 |
221801127 | alpha冲刺这十天给了我很不一样的体验,让我知道了自己要学的还有很多,在完成项目的时候遇到了很多困难,经常需要寻求帮助,所幸我有乐于助人的队友,在解决困难的过程中我学到了许多新知识,书本上的知识还是要多实践才行,最后很期待做出来的产品能有很好的体验 |
221801334 | 太久没写过java的后端了,这次的作业让我重新捡起了以前学习的知识,成功整合了我目前所学的各项知识点。同时也尝试使用了一下比较新的权限管理框架:sa-Token。这次的α冲刺第一次让我感受到了结对编程的优点和缺点,体会到了和伙伴们一起编程的乐趣。伙伴们非常给力,为了完成当天的计划都会忙到很晚,在考研之中也能很好地保证软工实践的顺利进行,伙伴牛逼! |
221801319 | 学习使用springboot框架开发后端,从上次小组作业在李星源同学的帮助下对springboot有了初步理解,在此次冲刺之后对各个层的使用有了更深的理解。在星源同学指导下,明白了一些合法性判断的重要性,他对安全性的强调给了我很多启发。这次冲刺也让我有一段时间这样坚持学习并进行开发,学到了很多专业知识,更重要的是学到了如何和其他成员进行团队合作。 |
221801310 | 学会了Springboot框架开发后端,在之前一天的冲刺里大概知道怎么做,而经过这次十天的alpha冲刺,我对这个框架有了更深的理解,我还学习使用了Mybatis-plus框架,这个框架是对Mybatis的封装,相对于Mybatis来说更加简单方便,适合快速开发,基本的增删改查都有封装好,只有要用到多表联合查询的地方才需要自己编写sql代码。 |
221801325 | 这次作业学习了使用spingboot框架开发后端,这里首先感谢李星源同学手把手教学。由于时间较赶,来不及让我看完教学视频再开始,所以刚开始完全属于摸石头过河阶段,报错了就百度看看,或者找人问问,慢慢对各个层的使用有了一定的了解。我们使用mybatis plus框架也省去了编写sql代码的时间。但是在便捷的同时也多出了问题。比如,它并没有多表查询的方法,使用它进行多表查询,再进行分页的话,就会出问题,通过百度我学习到了使用s原生mybait来解决这个问题。这次的作业让我收获了很多,不仅是对这个框架、对后端的理解,更是对这个专业的一种探索。 |
2.团队改进计划
对于代码规范我们还有一些地方做得不是很好,前后端在beta冲刺应该提高交流,高效对接,代码规范应更加认真执行,一些代码原来没有注释,在beta阶段需要改进代码注释,让组员之间更好得互相读懂代码。还有前端代码中的一些像素长度可以改成百分比长度,提高使用的兼容性。
3. 代码管理的质量具体应该如何提高?代码复审和代码规范的质量应该如何提高?
代码管理我们用github,会帮助检测到一些冲突,提高管理质量。代码规范我们通过制定一个代码规范文档,使用注释模板对代码进行注释来提高代码规范质量。代码复审我们采用开发过程中开发人员自己复审,测试阶段由测试人员二次复审来提高复审质量。
4. 整个程序的架构如何具体提高?如何通过重构等方法提高质量,如何衡量质量的提高?
将可复用的前端代码写成组件,供开发人员调用,提高代码质量。这样修改需求和bug不需要多处修改,并且提高代码可复用性,提高架构质量。
5. 其它软件工具的应用,应该如何提高?
可以组员之间互相帮忙,或者百度一些教程,多学多用就提高了。
6. 项目管理有哪些具体的提高?
通过开一些issue,来管理和记录功能实现进展。可以通过燃尽图和issue的完成情况和剩余情况方便的管理项目进展。
7. 项目文档的质量如何提高?
在写完项目文档后,自己复审一遍,还有组员之间互相复审。
8.对于人的领导和管理, 有什么具体可以改进的地方?
继续采用给任务打评估贡献度,然后根据自己的能力和时间安排自主认领来获取贡献度。
9. 对于软件工程的理论,规律有什么心得体会或不同意见?
通过每日会议和腾讯在线文档,方便管理项目进展,也方便对项目计划做出一些调整,这样可以提高项目管理质量。