常见问题
Enhancer 使用的基础是什么,需要掌握 Node.js 开发吗?
- 要求的知识掌握程度:熟练掌握关系数据库设计, 熟练掌握 SQL,入门了解 JavaScript。
- 知识使用频率:SQL > 90%,JavaScript < 10%。大部分情况下,如果不挑剔前端效果,合理变通,可以做到零编码。
- Node.js 是 Enhancer 产出的系统运行依托的环境,理论上无需用户去掌握。绝大部分情况下,不需要写代码;即使要写,也是只是串接业务逻辑的片段。所以只需了解 JS 的基本语法和数据结构即可,有任何问题可以求助官方答疑群或者社区。
Enhancer 如何收费?
- Enhancer 平台永久免费。
- Enhancer 平台上的组件或者高级业务模板有付费和免费,目前官方提供的组件都是免费。
- 免费组件无法满足需求时,可以使用自定义窗口替代。
- Enhancer 产出的系统可以免费使用,但需要保留右下角 logo 标识。
- 如您将产出系统用做非商业用途(如教育、慈善、公益等),即便包含付费内容,也无需支付任何费用。
为什么采用 SQL 驱动的方式开发系统?
- 首先,关系数据库诞生至今 40 余年经久不衰,尤其在信息管理领域更是无可替代。 写 SQL 是开发系统绕不开的一个环节。
- 其次,关系运算理论以及 E-R 模型,可以完备地表达和构建客观世界的任何业务,这是其他未经论文论证和形式化数学推导做支撑的非关系型数据库所不可比拟的。
- 此外,试图不写 SQL,以纯拖拽配置产出系统,意味着这种无 SQL 开发方式在逻辑能力上能与关系运算等价,才可能生成数据库可执行的满足各种业务需求的业务 SQL。由此难度可知,这样的无SQL产出系统的方式不存在,或者适用面非常局限。
所以 Enhancer 云开发平台主推 SQL 驱动的配置化开发,力争做到:数据库建表完成,写完 SQL,做完相关配置,系统开发也就同时完成,无需再用面向对象思想二次建模,用 Java 或其他语言转述、串联逻辑。
只写 SQL,会不会限制了开发大型复杂系统的能力?
- 首先,关系数据库在表达客观世界,以及建模能力上本身就是完备的,已经被论文以及多年的行业实战所证明。
- 其次,如果你即将开发的系统,其持久化层是用关系数据库存储,那么不论你做的系统属于哪个行业,有多么庞大,对象之间的关系有多么复杂,最终一定是一条一条的增、删、改、查的 SQL 执行到数据库。所以抓住 SQL,就是抓住系统开发的本质,可以从容应对任意复杂的业务系统开发需要。
- 此外, Enhancer 绝大部分情况下不需要写代码,不表示 Enhancer 不能写代码,实际上编写代码的能力是完备的。并且不论前端和后端,都可以通过浏览器进行友好调试。如果需要实现跨系统,异构环境调用,依然可以采用自主编码的方式,实现系统之间的对接。
Enhancer 有什么优势?
- 开发流程上的优势, 相比之下,可以省掉 Java 及面向对象逻辑开发过程、前端 UI 开发过程以及前后端联调过程。
- 常规的系统开发过程: 【需求分析及概要设计】-> 【SQL 建表】 -> 【面向对象建模】 -> 【编写 SQL 并使用 Java 或其他语言串联逻辑】 -> 【前端 UI 实现】->【前后端联调】 -> 【测试】-> 【发布、迭代】
- 使用 Enhancer 开发:【需求分析及概要设计】-> 【SQL 建表】-> 【编写 SQL,选前端组件,做配置】->【在线实时预览】-> 【发布迭代】
- 采用窗口流程图,清晰直观表达页面逻辑,让开发及维护更简单。
- 完备的@变量@体系,将浏览器端和服务器端的数据,直接嵌入 SQL,实现心中所想的 SQL 逻辑,不绕弯子。
- 拥有配置简单,功能强大的组件和复用机制。
- 在云上开发,只需打开浏览器,整个过程不再依赖其他开发工具,试错成本极低。
综上,开发速度可以提高 5 ~ 10 倍。
在云上开发是否安全?
我们知道,在通信领域,通信安全的保障,不是依赖加密算法的保密而达成的。因为加密算法都是公开的,比如 RSA、DES 等。 同理,软件系统本身的安全性,也不是依赖软件开发过程的保密性来保障的。
- 一方面,在使用云平台开发的过程中,并未使用真实的业务数据,并且 Enhancer 提供的数据桥也仅仅是在您个人局域网实现通信。而一旦软件开发完成,系统可以部署在您指定的任何私有环境。
- 另一方面,Enhancer 会竭尽全力保障用户开发过程产出的任何信息不对外泄露,并愿意为过失承担任何法律责任。
Enhancer 适合开发哪些项目,不适合开发哪些项目?
只要属于信息管理类的业务,都可以使用 Enhancer 快速开发。 当然,很明显,你不可能指望用 Enhancer 搭建一个类似新浪微博的社交化应用,或者淘宝网这样的电商平台。但是,使用 Enhancer 为这些应用搭建支撑其运营的客户关系管理,配置管理等后台系统,会是一个不错的选择。
Enhancer 产出的系统可以部署在私有环境吗?
产出的系统是源码交付,用户可以根据意愿部署在任何私有,公有环境。
Enhancer 产出的系统如何跟其他已有系统对接?
系统之间通信方法有很多种:RPC、内网 Http、数据库之间消息同步等等。 Enhancer 提供给用户编写后台自定义接口的能力,可以根据需要编写 RPC 或者 Http 接口调用的逻辑,以实现系统间对接。 由于 Enhancer 采用的语言是 NodeJS,所以 RPC 跨语言调用可能存在难度,我们推荐采用内网 Http 接口调用的方式。经过实践,这种方式效率依然很高。
Enhancer 产出的系统性能如何?
- 作为运行在数据库上层的应用,Enhancer 产出的系统,本身几乎不额外增加任何性能消耗,所有压力原封不动传递给库。业务瓶颈也在数据库。
- 根据实测结果,数据库和 Enhancer 系统同机部署在双核、4G内存、普通硬盘(非 SSD)的服务器上,SELECT 和 UPDATE 执行效率,皆可达到每秒 500 次以上的响应速度,承载日均千万的访问量不是问题。
- 此外,Enhancer 产出的系统在运行时,除 Session 外,都是无状态的,可以将保存 Session 的 Redis 独立部署,然后分布式部署任意多台 Enhancer 系统,以达到水平扩展的目的,可从容应对超大规模访问量。
Enhancer 命名含义是什么?
Enhancer (增强子)是一个生物学概念,本意是指能够使基因转录频率明显增加的 DNA 序列片段, 比喻连接浏览器和数据库之间的服务器应用程序。另外, Enhance 有增强、精进的意思。选用 .io 的域名表示 IT 领域的输入输出概念。Enhancer 是信息管理领域输入输出的增强者。