本文为冰河《分布式IM系统》的学习笔记,非本人创作
你站在用户的角度听懂了需求是什么,但是站在开发人员的角度你真的听懂了吗,开发人员眼中的需求,应该是什么样子的?
让我们从基础需求和扩展性需求两方面来看
基础需求(核心需求)
所谓基础需求,也就是我们要做的产品,应该具备的最基础,最核心的一些功能。那作为 IM 而言,从用户的角度来看,需要的功能就是发送文字、图片、语音、文件等等,当然还需要能找到发送消息的对象——也就是好友的管理。
而这些需求,落在开发的视角里,其实就是两个方面:消息管理和用户管理
消息管理
细看消息管理,从当前市面上的产品就可以总结出一些需要实现的业务需求:
从内容上来看:发送文字、图片、文件、语音、视频
从体验上来看:消息缓存、消息已读、未读、历史消息
从对话模式来看:单人聊天、多人聊天
用户管理
除了消息维度需要实现的功能,当然还有用户维度我们需要实现的一些需求:
好友管理:添加、删除好友、好友列表
群管理:创建群聊、加入群聊、退出群聊、查看群成员、修改群昵称、拉人、踢人、解散、公告、备注等等乱七八糟的功能
业务逻辑
我们目前想到了一些功能,但是这些功能在应用内显然完全独立存在的,他们之间存在一些交互上的逻辑,比如我们执行任何操作之前,都需要先进行登录,添加好友之前,我们需要能够搜索用户,拉人进群之前,需要先创建群聊。