公司要求开发一个SNS,开发小组的组长的想法令我眼前一亮的感觉。
组长的打算是,把SNS里面数据的流动看作一种消息的传递,用户的动作,发表日志,上传相册,留言等都可以看作用户发布了一条消息。
我们只需要定义一个消息的基类,包含消息共有的属性,例如标题,内容,时间等。然后日志,相册,留言等都继承消息的基类,并衍生出自己特有的属性。这样子我们在操作数据的时候只是操作一个消息类,在根据他们的类型进行相对应的处理。
话题
根据这个想法,我们进一步的对SNS进行一个规划,把SNS里的所有功能都看作一个话题,如图1
话题可以算是一种消息的集合,也可以算是一种消息的类型。每个话题内包含的消息我们称作主题。当用户在话题内发表主题时,或者用户需要浏览某个话题内的主题时,系统都会对用户进行一个话题的权限检查,如果有权限,就可以继续完成发表或者浏览的操作,如果没有权限,可以向话题的拥有者提交权限的申请,当然也可以什么都不做。
主题
每一条主题就是一条消息,但是主题是消息的具体实现,具有话题的特色属性。
内部元素
大体就是这些,SNS理论上的功能就完成了。
小结
其实我看重的是组长对开发sns中的这个思路,一个简单的话题主题,就把系统内的数据传递进行了一个约定、规范,整个系统看上去就很明了,当初学软件工程的时候虽然教过,也知道可以这样子做,但明显没有经过实战的我就是一个只会纸上谈兵的货色。只有多看,多做才是最实际!!