Fresns
2023年07月14日 2057

程序

以产品经理身份去推动开源项目,处处充满了难点。任何一个想法,都要找人实现,而这个过程中要寻人、沟通、磨合、验收,任何一点不如意的,都将导致资金和时间成本的浪费,很无奈的最终逼得我亲自上场写代码了。

在一年前的那个版本基础上,我实现了重构,着重在代码规范上花了更大的精力,所以正式可商用的版本,直接是 2.0 版本了。

Fresns 产品结构

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

Fresns 产品结构

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

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

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

Fresns 模型结构

模型结构是这一次耗时的最重要原因,因为是开源产品,为了开发者更好的参与,也为了使用者更稳定的运行,所以深思熟虑之后,我还是决定重构模型结构和代码规范。

Fresns 模型结构

重新梳理后的主程序,插件开发者可以更方便的开发插件。对于主要数据集已经封装好了 Models,对于常用的辅助功能封装成了 Helpers,常用的业务功能封装成了 Utilities,而对于跨业务跨语言的业务功能封装成了 Command Word 命令字(未来的 RPC 的基础)。这些封装都有详细的文档在官网供查阅,插件开发者可以直接调用,减少开发量。

针对客户端开发者,这一次 API 完全遵循 RESTful 标准,结构清晰、符合标准、易于理解、扩展方便。

Fresns 中国版官网 fresns.cn
Fresns 国际版官网 fresns.org

现在测试版已经发布(官网下载),测试演示站也部署好,欢迎大家参与测试。

提示:测试版是框架主题(界面),清清爽爽方便调试,因此风格样式不在测试范围内。


- End -




0 条评论
  • 表情
  • 游客你好,回复内容需要 登录 查看!