首页 > 技术文章 > 发际线与我作队-Alpha冲刺总结随笔

fjxywzd 2021-05-14 22:12 原文


作业基本信息

这个作业属于哪个课程 2021春软件工程实践 W班 (福州大学)
这个作业要求在哪里 作业要求
团队名称 发际线与我作队
这个作业的目标 Alpha 冲刺
作业正文 作业正文
其他参考文献 《构建之法》

alpha冲刺总结随笔

一、项目计划与完成情况阐述

小程序端(用户端)

小程序一共分为三个页面:我要停车、投诉、我的三个界面

页面 计划 完成情况
我要停车 实现地图导航功能 成功实现地图导航功能,但使用腾讯位置服务的导航不能很好的照顾学校中方便行走的小路
使用热力散点图展示停车情况 改为点击停车场标识弹出仪表板图表显示停车情况
实现可支持查询的停车场列表展示 完成并显示用户位置与停车场的距离
从后端获取设备列表并展示 完成
从后端获取停车场区域 未完成,改留beta优化实现
投诉 用户反馈信息上传、获取公告 完成,在原型基础上增加公告查看
我的 用户个人信息等展示 完成
车流量图表展示 完成

web端(管理员端)

页面 计划 完成情况
登陆页面 实现对后台的登陆,以及页面跳转的权限管理 完成
基础信息-基础情况 查看用户登录记录列表 完成,但由于项目未上线,无法获得数据,只能先填充假数据
福州大学教学楼停车情况图表 完成
STOP小程序端日访问量 完成,但由于项目未上线,无法获得数据,只能先填充假数据
基础信息-车辆情况 福州大学各处电动车停车昨日峰值 完成
用户系统-发布情况 发布公告 完成,beta版本将会改成可以使用富文本
已发布公告列表 完成
修改公告 完成
用户系统-用户反馈 获取用户反馈列表 完成
修改用户反馈状态 完成

后端

模块 计划 完成情况
管理员模块 管理员登录、授权 完成
设备管理模块 对设备进行增、删、改、查 完成
用户模块 用户注册、登录、授权 完成
反馈模块 管理员对反馈改、查 完成
用户发布反馈 完成
上传图片 完成
公告模块 管理员对公告增、删、改、查 完成
图表信息展示模块 实现停车情况、昨日停车情况、小程序访问情况信息查询 完成
监控推流模块 实现对监控的动态上下线 完成,监控状态会发布到redis
对监控直播流的分流 完成,通过DNS来实现分流
分流服务器的动态上下线 完成
车辆识别模块 使用yolov4训练模型,得到可用模型,实现每分钟检测一次,把数据存入数据库 完成

项目管理

  • 创建在线接口文档
  • 使用teambition管理项目进度与生成燃尽图
  • 创建github团队仓库(团队文档以及代码规范)、创建开发成员分支
  • 书写冲刺计划博客、每日冲刺博客、测试博客、总结博客
  • teambition管理(任务完成及统计信息记录)、站立式会议、博客园博客更新

teambition项目记录

项目分工安排总览

项目燃尽图

二、Github提交记录截图

Github仓库地址

STOP-PROJECT

以下是commit部分记录

221801329李宇琨2018FZUSELYK













221801315张福荣Aurora

221801312吕庆炜RoseSavona























221801337林浩然yrc123






















221801238陈乐曦GaryChan029








221801427李耕raiLGun2000












221801406李荣臻Mr-Qingkong













221801303宋家锐6586744
















221801123武雍易221801123















221801316梁达毅liangdayi









三、团队心得体会

  • 221801329李宇琨
  • 之前写的是golang的小程序后端,这次使用uni-app框架写小程序是vue语法感觉很方便(在学习全栈的路上越走越远……麻了),和队友们的合作很愉快,相比于第一次团队Github实战,我们配合的更默契了,对于前后端交互也更加熟悉。
  • 更加欣喜的是本来有的要安排在beta冲刺的功能已经提前完成了(例如这个看起来很难的导航)
  • 不过开发过程中也有很难顶的时候,在给map做修饰的时候遇到了cover-view和controls都不能覆盖在map上的问题,查了很多资料,博主都可以我就不行,一气之下把cover-view移出到map外使用相对定位布局,居然成功了……无语……后来庆炜和我说其实map最近已经支持view的同层渲染,我真的是直接无语了,小程序文档真的别看,看了会麻的
  • 以后让我写小程序我一定不写,还是用vue写web吧
  • 221801315张福荣

本次我主要负责电动车检测模型的编写,复习了一遍yolov4的配置,学会了自己爬取、标注数据以及将训练过程放在云GPU跑;同时学习了通过redis获取数据,通过m3u8的url下载视频和截取视频帧。感觉这次不会特别困难。由于还有辅修课程,队友分担了很多工作,非常感谢我的队友们。Beta阶段的任务就是优化模型了。

  • 221801312吕庆炜
  • 1.在结对编程做前端开发的时候,我就已经意识到我对前端的代码规范基本没有了解,比如类名用驼峰还是用'-'命名,有时候是随心情命名的。所以这次我们前端小组制定了很详细的前端代码规范,在最开始的时候还需要一边看规范一边编程,等到熟练了之后就顺利把代码规范记在脑子里了。所以这次的项目很大程度地提升了我的代码质量,也增强了我的代码的可读性。
  • 2.这次也是第一次接触小程序开发和uni-app、uView这两个框架,在最开始的时候真的看文档看吐了,小程序开发文档和uni-app框架文档换着看,再吐槽一边小程序开发文档写的好乱。当然对于能够多端编译的uni-app,我也十分愿意学习。很庆幸在之前几次训练中提升了我Vue的编程能力,所以这次项目中没有出现卡超过两天的大BUG。
  • 3.项目给我很大的一个体会就优化用户体验真的是复杂且有趣的,复杂是因为在优化用户体验的过程中会出现更多新的BUG;而有趣则是因为能够看到自己写的程序越来越接近市面上实际运行的项目,会带来很大的成就感。虽然用户可能不会意识到操作的优化,但是我认为所谓用户体验更重要的是让用户体验不到操作顿挫感。所以我认为优化用户体验是很愉悦的过程。
  • 4.这次遇到的比较大的问题就是各种样式和逻辑的错误,因为在写代码的过程中希望加一点动画效果,这给整个地点框新增了很多bug,最严重的就是canvas和input框的残影问题,而且这些问题很多又无法搜到解决方案,所以大部分都是我按我自己的方法解决了这些问题,所以可能会有一些逻辑上的复杂化和冗余,希望等经验和熟练度上去之后可以更熟练得解决这些问题。
  • 221801337林浩然

这次主要精力是放在摄像头推流与项目的整合上。

  • 第一个遇到的问题是如何获取摄像头的视频流。

    • 后面发现可以通过nginx搭建一个推流服务器。
  • 第二个遇到的问题的如何处理摄像头的上线和下线。

    • 刚开始是想让java后端和python算法后端都轮询nginx服务器,但是这样要维护两套轮询逻辑,而且对服务器压力较大。
    • 于是我统一封装了轮询系统,即发现服务。发现服务来轮询摄像头状态,然后通过发布订阅来发布到redis服务器,之后两种后端只要订阅即可。
  • 第三个遇到的问题是单个服务器带宽较小。

    • 想法是通过部署多台推流服务器来分流。但是现有的技术好像比较难以实现对大带宽流量的分流。如nginx的负载均衡,实际上所有的流量都要经过负载均衡的服务器,适合对cpu压力大的场景。而其他的如LVS的TUN模式又要有硬件的支持。
    • 之后想到转发rtmp协议,但是实现后发现只有打了补丁的rtmp客户端才能识别302转发,而一般的客户端都不支持。
    • 最后我的实现方法是在每一台推流服务器上额外部署一个自己编写的服务,来将实际的服务器ip发布到redis,之后发现服务通过redis中的ip来发现服务器,之后在通过发现的服务器去发现在线的设备。而redis中的服务器地址都是真实的ip,然后设备再通过DNS来解析到不同ip来实现注册到不同的分流服务器上。
  • 更详细的实现方式和部署说明请看最后实现的项目地址

  • 221801238陈乐曦
  1. 我一直做的都是前端,但其实我的路子很野,这次需要团队协作,因此我把代码规范执行到底了(我定并且我自己要对组员的代码进行code review)。
    代码规范执行到底到最后的代码成品是十分赏心悦目的,可读性也提高了许多、代码质量也得到了提升。
  2. alpha冲刺前忙着实习面试,因此也恶补了很多前端的知识(其实就是背八股文)。虽然说是八股文,但是我感到这次很多地方都有用上,例如BFC、节流防抖函数、ES6语法、JavaScript运行机制等。让我感到学以致用,面试问这些也不是没有道理的。
  3. 技术选型很重要,遥想起我在寒假作业一曾提过“互联网行业发展十分迅速,在进行技术选型的时候,我们应该选择稳定的技术还是有风险的最新的技术?”这个问题,现在我能很肯定的能回答了,就是选用稳定技术......
    选用稳定的技术意味着能找到很多相关的资料,遇到问题很容易就能解决,而且不容易出错,这次就踩了坑,选用了highcharts没有使用echarts(现在已经部分替换过来了)。
  4. 把任务分解成不同的子任务的确能够提升效率,每天都做一点,而不是等到deadline才冲,让我感到很舒服。
  5. 非常感谢我可靠的队友,能够及时完成各种工作。
  • 221801427李耕

在本次的alpha冲刺中我主要负责的是小程序端投诉页面的编写,还有“关于我们”页。虽然我们的功能设计上看起来较简单,没啥复杂的逻辑,但果然如人机交互课老师所说的,简单的界面真正做起来也要考虑很多细节上的东西。在实现表单提交的过程中我就遇到了很多困难和意想不到的错误,例如:
1、因为使用的是基于UniApp的前端框架UView,而非原生代码,虽然使用很方便,但因为Vue基础较薄,且网络上教程与实例代码也较少,所以几乎靠自己阅读开发文档和开发者提供的模板源代码摸索。因为框架帮你封装好了很多东西,所以调一些样式细节时可能会遇到一些困难,还有兼容性的问题。。。正如乐曦同学所说的,还有最近软工理论课上项目管理部分教的,技术选型(成熟稳定的)很重要,这个是之前设计阶段的工作,感受确实这样。
2、前端和后端对接接口这个工作需要充分的沟通,前期的接口与数据库设计应用到之后的真正代码实现所用的技术里,可能不一定合适,这时候就需要做沟通与改善,最后得到了妥善(但可能比较粗暴)的解决方式。
3、alpha冲刺第十天的开始,通过微信官方的加急审核进行了小程序的上线测试,出现了一个在真机调试中图片可以上传,但线上版本无法上传图片到后端服务器的奇怪问题,查了很久最后发现是在微信管理员后台还要填写配置上传图片用的服务器域名,否则认为你是非法域名。并且因为调试了太多次表单填写了,感受到了使用自动化测试工具的重要性(但因为第一次接触小程序开发没去尝试小程序咋弄自动化测试)
以上遇到的问题可见开发所需要注意的细节之多,测试、沟通与管理的重要性。感谢队友的合作与技术上的教导!讨论的过程中我可能嗓门比较大望谅解,哈哈哈。

  • 221801406李荣臻

这次开发我主要负责前端小程序个人中心页面。第一次使用uniapp,一开始还怕自己做得不够好。但是做什么事都有第一次,只要开始了就一步一步往前,每天完成自己的一部分代码,在站立式会议时汇报工作并反思一下自己,颇有“吾日三省吾身”的感觉。
十天的冲刺让我身心俱疲,但同时也收获很多东西,比如使用框架进行小程序的开发,比如真正的融入到一个大团队中完成一次项目开发。最终的版本和预计本阶段目标也没有较大的出入。一往无前Alpha行,拨开云雾见光明。
最后非常感谢我的队友。

  • 221801303宋家锐
  • 本次开发我负责后端接口,自己的这一部分开发还是挺顺利的,没有遇到什么特别大的难题。但是在进行前后端连调的时候还是遇到了挺多问题的,比如说缺少数据类型,数据项冗余,还有数据格式上有些问题。这些问题很多是在定接口文档时没有考虑到的一些情况。以后在这一部分考虑的要更周到一点。
  • 虽然之前也有过团队开发,但是开发周期和项目大小应该是最长和最大的一次,每个人有自己的任务列表,然后完成任务后要打卡确认,每天都有进度,并且能够看得到,这种循序渐进的感觉还是挺有成就感的。团队在一起开发也很有意思,大家都十分积极的讨论,解决问题。
  • 最后感谢队友带飞,队友强强强
  • 221801123武雍易
  • 这次项目我最主要负责的是后端公告接口,用的基本都是之前学过的内容,所以开发过程中基本没有什么问题。学到新的东西就是接口参数过滤、分组校验以及查看了小程序开发数据访问文档,实现了小程序访问量接口。合理的分工安排以及时间规划,效率自然就上去了。
  • 队友很强,我很爱。
  • 221801316梁达毅
  • 在该次的alpha冲刺中本人主要担任的是后端代码的开发,在权限验证模块中学习使用了SaToken框架,这款轻量级的Java权限认证框架能够解决一系列权限相关的问题.本次的开发中体验到了它的简单、强大、易用、高拓展的优势。
  • 在这次项目中,由于我们用户端使用的是微信小程序,有部分功能的完成需要调用小程序接口获取数据,这考验了我了API文档的阅读能力以及需要对其返回的数据进行解析。
  • 在调用的同时也遇到了不少阻扰,例如获取用户画像这个接口中,其要求的参数比较严格,日期的格式以及范围都需要进行一定的处理,否则总能遇到61501错误码。
  • 本次项目进展顺利,组长分工合理,组员配合也很默契。在前一次的github团队协作的基础上,我们队内产生了不错的化学反应,在分工协作、沟通交流、数据交互效率都有了一定的提升。总的来说,体验感不错,收获颇多!

四、团队贡献比例

alpha阶段冲刺分工表

学号 贡献率
221801329 10.5%
221801315 10.5%
221801312 10.2%
221801337 11.7%
221801238 12.5%
221801427 9.4%
221801406 9.0%
221801303 8.6%
221801123 9.0%
221801316 8.6%

下阶段展望

小程序端

优化权限请求
增加地图缩放限制
优化地图样式
拥堵算法改进
获取停车场信息
反馈信息添加上用户信息
优化用户体验(如无网络反馈、服务器错误反馈、骨架屏处理等)

web端

优化首屏加载时间,可以考虑使用ssr框架
添加摄像头管理,可查看实时画面以及添加摄像头、地点等
添加与小程序一致的地图可视化展示
图表优化
公告支持富文本
样式优化

后端

做算法的同学希望不要被换走,并且下阶段模型能训练的更精确

推荐阅读