最近几年低代码开发工具的研发势头异常火爆,很多大公司都参与了其中,还有好多的小公司也跃跃欲试,但所有这些低代码开发工具的使用对于业务系统开发程序员都不十分感冒,网上也有很多这方面的分析文章,在这里我们结合近两年我们公司信管通低代码快速开发平台的实际研发过程中遇到的各种情况,以及解决方法,谈谈我们对这些问题的看法。
一、产品定位
低代码开发工具是为了解决实际业务系统开发过程中繁琐和重复代码编写的实现问题,繁琐重复代码编写会引起系统稳定性下降,测试工作量增加。特别是通用的业务系统中的代码大量重复,而且业务系统研发过程中不能做到既见既所得,我们要在编程环境中编写大量的系统代码,然后编译生成执行文件后,运行程序,才能看到相应的执行结果,特别是在调整界面样式会显得非常麻烦,随着系统复杂度的上升,繁琐重复代码编写、界面样式调整和系统测试的工作量将几倍上升。目前实际应用的业务系统基本都是复杂系统,因为简单的应用我们认为是不需要系统的,例如企业ERP和医院HIS,这些业务系统的特点是数据表特别多,每个表的中间的字段也很多,字段所涉及的类型也比较多,并且表和表之间的逻辑关系也很复杂,同时一个表中记录和记录之间的关系也不是相互独立的,有些是紧密结合的。所以低代码开发工具应该具备解决复杂应用业务系统的能力。
目前,市面上比较流行的低代码开发工具主要的产品定位是开发简单的业务信息处理系统,而对于复杂的业务系统处理基本上没有什么好的解决方案。既能解决复杂的业务系统开发,对于用户的操作又很简单,这是低代码开发工具的研发者遇到的一个很大难题。由于低代码开发工具只能解决简单界面的处理,对于复杂界面没有办法解决,往往对于业务系统开发者来说业务系统开发一半就被卡住了。究其原因是低代码开发工具相对自我封闭,程序员想象以前那样随意控制程序运行逻辑就非常困难,即使低代码开发工具提供了一些接口方式对业务系统开发进行扩展,但很难被程序员所适应。
所以低代码开发工具主要产品定位应该是解决中大型复杂业务系统开发的繁琐重复代码编写问题,同时又应用业务系统开发的特性要求可以按照程序员的开发习惯提供扩展方法。
二、目标人群
低代码开发工具的目标人群,也就是低代码开发工具的使用对象是谁?这会影响到低代码开发工具的研发和设计。我认为,低代码开发工具使用对象应该既不是对于企业的业务人员,也不是针对一般的程序员开发的,而应该是直接针对软件架构师和可以独立承担业务系统开发高级程序员进行研发的,业务软件开发项目组成员一般由软件架构师、普通程序员和系统测试员组成,低代码开发工具是可以完成普通程序员和系统测试员的80%的工作,从经济方面考虑,软件公司大量成本也是在聘用程序员编写重复率很高的代码和测试人员对编译后的业务系统。如果程序员不使用低代码开发工具,它的效率不可能提高,每次编译后的业务系统必须经过大量测试才能保证质量,那么在这种情况下软件企业的成本不会降低,使用了低代码开发工具,普通程序员和测试人员的很多工作将被大量简化,甚至取代,这些工作软件架构师和高级程序员就可以胜任。低代码开发工具本身具有快速搭建业务系统模型的能力,但它并不能完成用户的全部要求,低代码也就是在这里需要编写一些特殊代码来嵌入到低代码开发工具。如果大部分的程序代码编写都可以由软件架构师和高级程序员直接使用低代码开发工具设计完成,其实一般程序员的工作就几乎没有了,而且软件架构师和高级程序员肯定也是变成程序代码编写高手,那么一点点的需要编写特殊代码程序,他们可以很容易就编制出来了,这样的话,低代码开发工具才有意义。我们不建议业务人员单独使用低代码开发工具来进行开发的理由是业务人员可能只对数据库或软件开发知道皮毛,对于一些非常简单业务处理可能可以,但是对于中等以上复杂业务,一般的业务人员虽然业务很懂,但是怎么样把它设计成完整数据库管理系统他们并不精通。
综上所述,低代码开发工具的目标人群应该是软件架构师和高级程序员,他们使用低代码开发工具快速建立可运行的业务系统软件原型,然后可以用这个原型面对面跟企业的业务人员进行讨论,在讨论的过程中可以随时调整更改业务系统软件原型,而不需要再编写任何代码,仅当遇到不能用平台实现的功能时,才再使用编程语言编写相应的特殊代码嵌入到低代码开发工具中来实现业务系统软件特定功能需要。
三、扩展处理
低代码开发工具的扩展处理也是非常重要的,因为对于低代码开发工具进行业务系统开发时候,最担心的是一些特殊业务不能通过低代码开发工具直接处理时,不能进行代码扩展处理,或者即使提供了方法,扩展编程繁琐。低代码开发工具的扩展处理关键在于界定哪些位置需要扩展,哪些位置不需要扩展,需要扩展的部分,其实就是需要编写额外代码的部分,而需要扩展地方,就应该是需要编代码的地方,其实容器组件、表格组件、树状组件、图表组件的设计,界面框架的搭建,功能菜单和状态栏的设置,像这些东西都是可以不需要编程的,直接固化在系统里就可以,通过设置参数改变外观特性。
而需要扩展的其实主要集中在两个方面,首先是自定义基本控件,因为任何的低代码开发工具不可能包括所有的跟显示相关的基础控件,或者即使低代码开发工具内置功能类似的基础控件,但是控件可能并不满足业务用户的业务处理要求,所以必须要允许用户能够自己定义基础控件,同时,也允许用户使用第三方控件,通过包装挂接到低代码开发工具系统中。并且把这些自己定义基础控件可以低代码开发工具内置的基础控件一样看待,一样的使用。其次是业务逻辑处理,具体包含数据的汇总计算,后台记录的自动添加,特殊报表数据的生成等,那么在这个里头作为开发特殊代码的业务系统程序员,他所应该获取的信息应该可以满足对于特殊代码的编写工作,包括界面框架组成,界面框架所关联数据库表和数据记录,当前界面框架信息处理状态,通过特殊代码程序处理以后所得到的结果在界面上的展现,只有做好了这些才能方便低代码开发工具的使用者研发出符合客户要求复杂的业务系统。
四、快速迭代
低代码开发工具从本质上说是对大量业务系统开发公共要素的提炼,对于这些公共要素的内容进行分析,提出并实现可以快速迭代开发的方法,低代码开发工具也应该能够实现快速迭代开发的业务应用系统的能力,要想达到这个目标首先必须要能很方便的使用可视化设计,包括可视化的数据库设计,可视化的通用控件和专用控件,可视化的容器组件、表格组件、树状组件、图表组件和报表打印组件,可视化的界面框架之间关系定义,其次,要能够在开发设计环境完成设计后快速的迁移到终端用户使用的应用软件中执行的能力,这种迭代不是按周来算,或许会按小时分钟来算,快速迭代可以帮助系统的快速开发,同时也提高业务系统设计者和业务系统使用者交换意见的效率。可视化的开发设计模式可以直接在设计状态与使用者沟通,共同完成业务系统的研发工作。
低代码开发工具的不断升级其实是对业务系统的不停抽象,随着整个系统的抽象程度越来越高,越来越多的复杂设计都应该在不进行任何编码的情况下实现,也就是内置了越来越多的不同类型的模块,方便用户业务系统的搭建,最终可以实现对某项具体的业务也可以做到一键生成,比如说产品出入库,企业基本信息,会计凭证,发票信息等都可以形成标准模板库。通过模板库可以更加容易的搭建业务系统,这里的模板不光包括界面框架,还包括相关组件、控件和数据库表的完整信息,仅通过简单修改就可以实现用户的设计需求。低代码开发工具的使用者大部分精力用在对业务系统需求分析和架构设计上,而把具体的业务系统搭建留给低代码开发工具来完成。
综上所述,低代码开发工具的研制确确实实是未来软件行业的一个发展方向,因为对于软件企业可以大大降低成本,提高业务软件的产出效率,更加方便与客户的沟通,更快速的后期升级维护,但是,低代码开发工具的研发者必须要处理好上面我们提出的这几方面的问题。如果处理不好,或许这就是个鸡肋,作为一个有能力开发出低代码开发工具的软件企业也希望能按照自己的思想提供给大家一套完整的低代码开发工具产品和相应的业务系统研发解决方案,但目前由于水平有限,虽然有一个产品,但目前只能在公司内部使用,当然,我们会不断努力,尽快推出此类产品,也希望低代码开发工具的研究者同行们对我们提出宝贵的建议和意见。