低代码开发真的存在悖论吗?#
如果按照第一性原理,很多事情只要不违背物理规则,都是可以做的,只是当前还没有人想出很好的解决方案!低代码也是一样。(关于低代码的提法是否科学,我们就不讨论了,其实我觉得这种叫法本身就不科学,“代码越来越少”一定是编程演进的方向。好吧,先不管这个名字了。)
如果当前的低代码平台真的可行,首先需要解决以下三个当前低代码平台普遍缺陷(iVX例外):
一、平台锁定问题?(研发安全问题)
如果要解决这个问题,就需要生成完整的可读性强的且不依赖任何商业产品的——前后台源代码(可以独立编译部署那种)。
甚至低代码平台本身开源也不能解决问题,一定要生成的代码本身可读而且完整,才能避免“平台锁定”。很多人就会说,“人家低代码平台都开源了,有什么解决不了的?”,我就告诉你“有点用处,但是真不大。就像Windows开源了,但是上面的应用没有代码,最终企业还是去维护应用,而不是去维护Windows,哪怕这个企业真能维护Windows,也成本太高,有违低代码降低成本的初衷!”所以,哪怕是开源,如果架构不好,一样解决不了锁定的问题,用处也不大。
解决方案:生成应用全栈代码,要求可读性高,用既有标准(例如前端生成 vue/react,后台Java SpringBoot)或直接支持生成多种语言。
二、产品用户自身冲突问题?(简单说就是:用户体验差)
由于种种原因(其实主要是强行引入完整的BPM解决方案造成的),多数低代码平台设计了很多开发工具,有前端的、工作流的、画逻辑的、数据可视化、表格的、表单的... ,里面时不时就嵌入点代码,反正要程序员才能看懂的😂。表面上看,平台好像是给“开发者”和“业务编辑者”共同设计的,实际上谁的体验都不好。“开发者”觉得功能受限,很多东西用不了,不灵活;业务人员觉得里面编程东西太多,头皮发麻🤪。所以两边不受待见,推起来就很难。
解决方案:通过“组件隔离代码”,让平台初级开发者,可以“零编程背景知识”使用。
同时,让平台对“代码/程序员”友好,包括:自定义组件、引入各种库和SDK、自定义前端和后台代码。(注意初级开发者或业务编辑者,只能看到通过组件隔离过的应用,可以考虑不同的版本给到程序员开发者和初级开发者)
三、对于需要开发的东西,开发还是慢!(很多时候比代码慢)
这个有组件设计的原因,也有逻辑表达的原因,还有选择编程语言使用技术架构的原因。但实际上也是可以解决的。
解决方案:面向组件编程,抽象、抽象、再抽象,封装、封装、再封装,万物皆组件。另外在可视化的逻辑表达上,尽量不要画图,特别是复杂的,画不出来,会很慢。当然,还有很多很多技术手段和方案,都要用上,才能让开发效率上去,例如封装云计算产品为后端组件等,使用AI能力等。
PS: 为啥说iVX除外,因为基本上iVX已经解决这些问题了,算是这个领域比较领先的,大家可以仔细研究一下。其实正如我一开始说的,我觉得低代码这个叫法本身并不是很科学,但似乎现在也没有啥更好的了。