Product Idea

Server

Fresns 产品结构的设计理念来自 [ Algorithms + Data Structures = Programs ] 这个公式,基于该公式的软件思想,我们将 Fresns 划分成了如下图的产品结构。

Fresns 产品结构图

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

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

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

延伸阅读:产品特征介绍

Client

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

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

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

Fresns 客户端结构图

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