开源软件 Fresns 终于要发版了

作者: 唐杰 分类: 天下杂侃 发布时间: 2022-10-12 14:04

光阴荏苒,日月如梭,不知不觉又过去了一年。从一年前《消失了一年,我带来了一款开源软件 Fresns》这篇文章之后,我又消失了一年,这一次 Fresns 终于要发版了。

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

在一年前的那个版本基础上,我实现了重构,着重在代码规范上花了更大的精力,所以正式可商用的版本,直接是 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

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

7 条评论
  • 王小大

    2023年6月16日 11:17

    支持支持

  • 落伍老站长

    2023年2月18日 17:23

    大佬牛逼,支持,下到本地玩玩先

  • 饭饭

    2022年11月24日 12:32

    大佬。安装了,但是前端没有默认模版的?
    有现成能用的麽?

    1. 唐杰

      2023年3月4日 20:50

      早期版本没有,需要单独安装。现在内置了,请重新下载安装。

  • 小风

    2022年10月19日 19:57

    看得出来,真的很用心,果断收藏关注,不过官方的应用市场和交流社区我这移动网无法访问!

    1. 唐杰

      2022年10月20日 17:29

      应用市场还没有部署

  • 小强哥

    2022年10月19日 02:25

    说实话,我要支持下。很少有这样的程序且完善的api接口开源了。discuzq本来挺好,结果是kpi项目,坑的要死。我支持!

回复 饭饭 取消回复

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