本周,我们正式在Github和Gitee开源了明道云容器版本(私有部署)的前端代码库,并将其命名为“明道云Openweb”。
配合明道云私有部署社区版,所有用户不仅可以免费获得一个企业级APaaS产品的使用权,还通过Openweb获得了足够丰富的扩展开发可能。商业客户购买明道云私有部署商业许可证后,依然可以在Apache 2.0协议下修改前端代码。
这种组合,在企业软件行业并不多见,因此我有必要说明一下我们的商业和技术考虑,以及未来的打算。
明道云在APaaS市场中拥有极高的“零代码程度”,意味着非开发者同样能够使用我们的产品。我们在制定设计目标时明确了“摒弃代码编写,减少表达式和函数使用”,尽全力使用符合直觉的可视化配置完成复杂应用构筑。我们之所以能够做到零代码、全能力,是因为选择牺牲了用户对前端界面进行完全控制的自由度。这个牺牲对于企业中后台应用来说是值得的,因为它交换的价值要大得多。
因为这样的设计策略,明道云给用户提供的前端交互是相当模式化的,用户可以较为自由地定义数据维度的属性,但是对前端却缺乏自主度,哪怕只是改一下字体颜色。
然而,用户的个性化需求始终是存在的,比如,有用户建议我们增加界面主题模版的选项,增加自定义组件能力。我们想更进一步,把整个前端代码库完全开源,在私有部署环境下,用户发布自己分叉的前端服务,通过一个简单的配置,让它和后台服务重新集成。这样,用户不仅可以自由修改前端表达的每一个细节,还能够通过外挂服务的方式来实现更大的定制。
概括来说,用户可以自定义前端界面的每一个要素,也能够增加自己私有的应用对象,并和明道云界面整合。我们在Github项目文档中提供了若干示例,将来也将不断丰富这个内容。
在我们宣布开源以后,有友商批评我们是在开历史的倒车,认为零代码产品不应该再让用户回到代码编程的老路上来。这是对我们目标的一个误解。明道云当然希望每一位终端用户都不用写代码能够实现各种各样的应用,但这在技术上是不现实的空想。要做到更强的用户适应性,需要花费大力气构筑一个应用软件的多层次用户社区。而在这个社区中,开发者将起到关键的作用。
因此,不难理解我们的开源是为了让更多人能够参与明道云产品的扩展开发。在开源条件下,用户可以自己定义前端组件,而如果通过明道云定义的Add-on规范,这个自定义的组件就可以成为普通用户可以直接复用的插件。少数人开发,多数人应用,是亘古不变的软件业范式。通过一段时间的开源,我们能够发现更多的扩展需求现象,就能够从中抽象出插件定义的规范。从而能够让私有的扩展开发成果转换为可以公开共享的“小组件”。比如,基于一个工作表构建的“甘特图”视图就可以五花八门的实现版本,而不仅仅是明道云官方提供的唯一一个。
成熟企业在应用APaaS的时候,有很多的系统集成诉求。有的是基于数据流的集成,有的则是希望整合效率更高的工作台(前端界面)。开源的明道云前端等于提供了一个非常方便接插的解决方案。既可以让明道云应用界面整合到其他系统中,也可以将其他系统界面或者界面元素整合到明道云应用界面中。
我希望很快能够为用户提供这个方面的丰富案例。
前端代码只是明道云系统的一个部分,而且因为应用前后端分离的架构特点,前端开源是一个相对安全的做法。但我们有计划推进更全面的开源战略。这需要循序渐进地积累经验。开源并非仅仅为了让用户能够修改代码,而是为了培育更繁荣的应用生态,孕育更健康和持久的商业模式。由商业公司推动的开源项目能够有更好的财务支撑,也能够让参与者有更强的经济回报动力。虽然还有很多的繁重工作要完成,但这是我们在未来几年内希望达成的愿景。