这个作业属于哪个课程 | 课程地址 |
---|---|
这个作业要求在哪里 | 作业地址 |
这个作业的目标 | 每个人发表一篇随笔,通过分析 腾讯即时通信IM ,结合阅读《构建之法》,写一篇随笔。 |
作业正文 | 作业正文地址 |
其他参考文献 | 《构建之法现代软件工程》 |
方式一:测试Demo,快速体验
第一部分 调研、评测
微信小程序Demo使用
- 录音功能已经显示了正在录音,我才开始说话,但还是录不到前面的一部分内容,说明交互没做好。
- 群聊的时候点开键盘,群聊记录看不到,变成空白一片。
- 重新进入群,群消息空白
Web端Demo使用
- 创建群,找不到群在哪,还要自己找群名称然后加进去
- 视频浏览器限制
- 重新登录,加入的群又不见了
安卓端Demo使用
- 密码要求字母+数字,只有字母也可以登录
- 对方ID过长会报valid错误
研究SDK的使用方式
IM SDK 调用 API 需要遵循以下顺序,其余辅助方法需要在登录成功后调用。
步骤 | 对应函数 | 说明 |
---|---|---|
初始化 | TIMSdkConfig | 设置 IM SDK 基本配置,例如 SDKAppID、日志等级等 |
TIMManager : init | 初始化 IM SDK | |
TIMManager : setUserConfig | 设置用户基本配置 | |
TIMManager : addMessageListener | 设置消息监听 | |
登录 | TIMManager : login | 登录 |
消息收发 | TIMManager : getConversation | 获取会话 |
TIMConversation : sendMessage | 发送消息 | |
群组管理 | TIMGroupManager | 群组管理 |
注销 | TIMManager : logout | 注销 |
功能性bug和原因探究
- 群信息找不到
BUG描述:之前加入的群聊找不到,想要找到要重新加入群,各种情况找不到自己已经建过的群。重新登录之后,自己的群聊还是只有自动加入的技术交流群,之前新建的群不见了,要找那个群的话就要重新加入,这时就造成了一个群同时进入两次。
原因:可能是因为没有存储到数据库吧,每次都要重新进群真的很麻烦,差评。
- 群聊消息自动消失魔术
BUG描述:安卓端测试明明看到群消息提示,但是点击进群,消息空白;在小程序上测试的时候,发现在群对话时,打开输入法,消息就消失不见了,关闭输入法消息又重新显示出来。
原因:开发者没有重新渲染数据,没有考虑用户打开输入法的时候刷新界面,这是个很大的bug,消息都没了。
- 输入信息问题
BUG描述:groupid很长的时候,测试在web、微信小程序里,三十位的groupid都能查询正确,而在android端输入30位的groupid报错了。
原因:可能是android控件本身的问题。
- 莫名其妙的弹窗
BUG描述:申请加入群聊的时候会弹出莫名其妙的弹窗,这是在做功能的时候没做好,开发一半就跑了的意思吗。
原因:测试没测试好,开发人员偷懒。
- 无法拉人进群
BUG描述:管理员权限没有办法分配,导致无权限拉人。
原因:测试不够
6. 未读问题
BUG描述:安卓端进入聊天窗口,发现之前在小程序中的聊天信息(进入窗口),还是显示未读,并没有因为之前发过而变成已读。
原因:测试不够
采访
- 想开发的产品
根据该SDK想必可以开发很多关于聊天的应用,可以在很大程度上减小开发难度。
我想开发的产品是通过该SDK实现“作业辅导帮帮小组”应用。 - 主要功能
在学习上有老师分配,完成小组配对,在家学习成绩优秀者可以对成绩不好的人进行小组教学,帮助其完成学业任务,可以线上文字或者视频交流,同时优秀学生也有对应的德育分等奖励。 - 面向用户
主要面向在校学生完成作业辅导,也可拓展到辅导班线上教学。 - 潜在客户采访
- 采访对象的背景和需求
本次采访了集美的莆田优秀大学生吴某煌,由于该生成绩过分优异,希望有个软件能够记录自己的辅助时长来换取更多的德育分,然后再次夺取电科专业桂冠。
第二个采访对象是川外的张某某,热爱学习,积极进取每天早上四点起床复习考研,对待学习有极大的兴趣,认为可能可以用于考研1v1和男朋友互相通视频。
第三个采访对象是沈某轩,热爱体育,阳光开朗,热爱生活;认为这种辅助学习的软件很有必要。 - 让采访对象使用demo
- 吴某
- Q:描述用户使用这个demo的过程, 用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
A:就他是个简单demo而言,首先界面怎么这么丑,加群也好麻烦,聊天的话,和平常使用的感觉有那么一丢丢一样,web用起来体验感很差,还有,改照片为啥要用url,这么麻烦,信息传输还算可以吧,没了。 - Q:介绍你想用这个SDK开发怎样的产品?
A:我想开发的产品是通过该SDK实现“作业辅导帮帮小组”应用。 - Q:用户对腾讯即时通信的功能有什么改进意见?
A:我希望吧,他可以有一个聊天内容反对的按钮,点赞按钮,这样可以反馈发消息的质量,感觉挺好玩的。 - Q:用户对你想开发的产品有哪些意见?
A:如果是帮帮组的聊天应用,还能加德育,想法挺不错,我正苦于自己太强想多帮班上成绩不太好的女同学帮助她们走出学习苦海,那你们这个视频有美颜功能吗,或者自动提醒如何优雅的和女孩子聊天之类。 - Q:给腾讯即时通信下一个评价
A:推荐,一般功能还是很完善的,需求第一的时代背景之下,能用是道,更何况他是开源免费的,
第二部分 分析
Q:
使用腾讯即时通信的所有功能,联系第二部分的分析,估计这个SDK做到这个程度大约需要多少时间?(团队人数大约6人左右,计算机大学毕业生)。 分析这个软件目前的优劣(和类似软件相比,如网易云信),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)。
A:
因为这个SDK包含了个人聊天,好友功能,讨论室,视频通话众多功能,想必也至少要2~3个月才能完成。
和网易云信相比,
缺点在:网易云信可以获取用户,免去了登录过程,方便一些;功能比较少,网易还有白板功能,直播功能;但从文字聊天来说,网易有游客进入讨论群观摩的功能;可以选择自己想要的功能模块产生对应SDK,而腾讯是只有一大捆,显得笨重。
优点在:可以搜索群聊号码加入群聊,也可以好友之间聊天;视频聊天低时延;
团队可以明确分工,互相帮助,团结友爱,和平共处,遇到bug不要心烦意乱,静下心来好好想想自己这些年来不是已知都这么菜吗,然后心就凉下来了了,也就镇静下来了。还有就是提升自我能力,也不能一直在低谷里待着,适当的出来透透气。勇于询问别人,多多混技术博客。
第三部分 建议和规划
- Q:目前市场上有什么样的类似的产品?
A:一般帮扶都是拉个小群进行学习讨论,如果想要视频沟通,就可以使用附带功能,比如使用QQ电话、钉钉直播等等,显得比较大材小用,没有针对学习帮扶,软件都显得太臃肿。 - Q:对你的产品进行NABCD分析。考虑为何要做这个功能,而不是其他功能?你的创新在哪里?为什么用户会用你的产品/功能?对于C:Competitors,结合同类产品分析,描述如何从竞争中获胜
A:
N(需求):“帮帮组”解决了班上资源优质分配问题,以前都是老师通过线下建立小组来让好学生辅导,如果在家的话也都是不然就是私聊,不然就是建立群聊,效果不理想,使用聊天应用也会很臃肿,而且不能很好的记录辅导时长,奖励很平均。
A(做法):导入学生账户信息,初始化辅导时长,提问时长,角色选择辅导者、被辅导者,根据进群后的消息内容判断时长,超过十分钟没有聊天则中断计时。
B(好处):可以给用户带来德育上的奖励,又能增长自己的学习知识何乐而不为,而且有计时功能,有区分度。
C(竞争):市场暂时没有此类应用吧,我反正找不到。nice,是个创新。而且我方产品可能还可以加强1v1的视频辅导功能,可实现在家为了学习视频面对面的友好感受。
D(推广):在教师群向老师推广,向教育处推广,向学校论坛宣传。
要想在同类产品中获胜,肯定要正视自己和对方,知己知彼百战不殆,要有一定针对性,和功能创新,否则人们根本没必要花费时间和精力来迁移自己的交流平台来到你的产品下。 - Q:如果你来领导这个团队,会有什么不一样?
A:我会更加注重用户交互性和美工前端设计部分,毕竟身边的人对这些要求比较高,可以忍受没用的,但是不能忍受丑的。 - Q:如果你的团队有5个人, 4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)?
A:
3后端/测试
1前端
1美工UI
这么分配的主要原因是,后端会复杂一些多派个人共同合作比如负责AOP,负责数据渲染等等;测试很重要,但是前期的话,测试可能轻松一些?单元测试的话,也很考验一个人的细心的能力的,可以让开发和测试合为一体;美工的话,参考一些网站里的配色方案。 - Q:描述你的团队在周期为16周,每周都要做什么,才能保证在第16周如期发布软件。
A:
周数 | 描述 |
---|---|
1 | 需求分析 |
2 | 原型设计 |
3 | 系统设计 |
4 | 数据库设计 |
5 | 服务器搭建 |
6-11 | 前后端设计 |
11-13 | 前后端结合,数据渲染等 |
14 | 黑白盒测试和内测 |
15-16 | 修正以及产品推广计划研究 |
- Q:项目发布后,有没有考虑过项目该怎么部署才能满足需求?分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置) 。
A:
1:应用服务器配置:4核8G
2:后端服务器配置:8核16G2
3:网站安全性:WAF、DDOS
4:关系型数据库:saLserver/oracle/Mysq|数量:3(读写分离2、备份1)
5:缓存数据库:Redis2