Fresns 社交网络服务软件设计理念

作者: 唐杰 分类: 产品设计 发布时间: 2021-07-05 12:28

Fresns 是一款免费开源的社交网络服务软件,专为跨平台而打造的通用型社区产品,支持灵活多样的内容形态,可以满足多种运营场景,符合时代潮流,更开放且更易于二次开发。

这一篇给大家介绍一下 Fresns 设计理念。

Fresns

服务端

Fresns 产品结构的设计理念来自「算法+数据结构=程序」这个公式,基于该公式的软件思想,我们将 Fresns 划分成了如下图的产品结构。

Fresns

用户通过交互行为对内容产生结果,结果可以通过某种分类形式进行归档;算法将归档的果进行特定条件的输出,最终客户端产品解析并渲染出界面供用户浏览和再次交互行为。

这一切的归因是数据,所以用户、交互、内容、分类都有自己的主键,然后再延伸附属,核心重点则是定义数据结构和 API 接口,其余的功能模块均可交付扩展插件处理;因此我们的插件机制是埋点在数据流转过程中的,这也保障了跨平台的实时、统一、通用和标准的一体化使用。

主程序的设计则更像是一个脚手架、一个框架,为扩展程序打好坚固可靠的基础,只含有身为社区不可或缺的基本 API 功能,其余扩展功能则由插件提供;插件作为一个独立功能模块,从系统设计和业务封装的角度,采用的是「命令字」设计模式,即一个插件模块包括多个命令字,外部通过命令字方式来调用插件。对开发者来讲,形式简洁,容易开发;对系统通讯来讲,插件通讯模式简洁,通过类似 RPC 模式来调用即可。这种软件设计思想,从后续的框架扩展来看,单体框架可以支撑多插件,同时后续也能支撑多系统多插件模式,并能以微服务的模式实现系统之间的分布式调用。

客户端

用户感知一款产品的功能(空间感),并不取决于 URL,主要来源于 UE 和 UI 层面(面包屑导航)。

用户感知一款产品的服务(体验感),并不取决于技术逻辑,而是来源于功能点命名。

因此,我们客户端采用了平级菜单模式(平级 TabBar 模式),完全由程序使用者定义目录结构,并且产品的任何功能点也均可在后台自定义名称,通过命名塑造用户对产品的认知,实现各种运营场景。

Fresns

如上图所示,每一个页面,每一个操作功能,都可以启用、禁用、隐藏、自定义命名等等。比如:“关注帖子”操作功能可以命名为“收藏”或“保存”,“我关注的帖子”可以命名为“收藏夹”;界面导航可以做成用户中心的收藏夹;如此设计之后,用户对该功能的感知就是“收藏”功能,路径认知就是用户中心的“收藏夹”。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注