处于成长期的低代码行业,虽然备受争议但仍在不断自我更新迭代。
去年,网易数帆首次发布了轻舟低代码应用开发平台。作为云原生系列产品之一,该平台目前已升级到了 2.0 版本。网易数帆在原有的软件开发逻辑之上推出了全新的可视化编程语言 NASL,自带可视化的分支、循环、赋值、调用等编程语法组件,可以通过“拖拉拽”方式快速创建应用。InfoQ 在轻舟低代码应用开发平台 2.0 发布会上专访了网易数帆轻舟产品总经理陈谔,聊聊低代码的实际应用和未来发展。
研发低代码平台,先解决运维问题
低代码平台的使用门槛很低,这是经过事实验证的。即使是对编程没有概念的人经过培训后也可以开发出一定的应用,但回到平台本身的开发却没有那么简单。
相较于轻舟系列的其他产品,低代码平台去年才发布,而推出比较晚的原因是,网易数帆在寻找低代码方向上运维问题的解决方法。
运维最重要的是对应用生命周期的管理,除了常见的创建、发布外,还包括申请资源、启动或关闭应用、发布应用更新和应用的水平扩展。低代码平台还会涉及数据运维的能力,如数据库的 Schema 变更管理等。
但在云原生体系下,各个企业有同样的运维体系标准,低代码平台面对的接口一致性很高,自动化运维的工作就很容易完成。
“随着云原生领域的积累,基于云原生的运维标准体系建立起来,整个低代码的拼图就完整了。”陈谔说道。网易数帆使用云原生技术完成了运维生命周期管理的建设。比如轻舟提供了中间件平台,开发者既可以对接已有的中间件、数据库,也可以托管在轻舟平台,完成整个中间件、数据库层面的自动化运维。
基于 Kubernetes 等云原生技术,轻舟低代码平台使用标准的技术栈,企业系统只要在云原生生态内,就可以使用轻舟低代码平台进行系统搭建。轻舟低代码平台的 API 网关和企业应用集成就是低代码通向云原生底座的入口,将这两者联系起来。
“如果没有云原生体系,即使做出了一个低代码平台,企业也不一定认可这个平台的运维能力。”陈谔表示,“接入企业的运维体系时缺乏标准的情况,使得低代码很难真正地落地。”
解决了运维问题外,低代码平台当然要具备基本的代码逻辑描述能力、数据访问能力、对流程定义能力。进一步地,低代码平台还要具备高可用、高性能和可维护性等。这些是隐藏在低代码平台背后,厂商为企业提供服务时需要具备的能力。
可视化是低代码开发的一个显著特点,代码组合之间会有相应的约束,这让平台很少出现代码层面的错误。低代码平台还内置了很多常用的函数库,多数情况下可以调用现成的函数。低代码开发人员更多是做控制布局、粘合等操作,只要通过前端获取一些变量状态就可以完成很多发布前的测试工作。
从信通院对“低代码无代码开发平台通用能力要求测试”中可以看出,当前对低代码平台能力的评估,主要从功能完备性、平台开放度、平台易用性、平台安全性等四个方面考虑。
平台完备性方面比较重要的测试指标有:多端开发能力、可视化开发能力、应用生命周期管理、产物可复用度等;平台开放度方面比较重要的测试指标包括:体系开放度、扩展能力、编程接口与系统集成等。基于云原生技术的支持,在信通院给出的 99 个必选指标中,轻舟低代码平台通过率达 96%。
使用低代码平台,需要逐渐尝试
虽然有很多人并不看好低代码平台,但低代码平台始终是一定需求下的产物。
轻舟低代码平台最早诞生在网易内部的一个前端物料系统。“当初,我们希望开发人员能够拥有全栈开发能力,通过操作一些前端物料的配置组合就能完成 UI 开发。实践中我们发现,如果有一种可视化、可配置的操作方式,那么企业内部很多应用的前端都可以轻松搭建出来。但是,服务端一些面向数据的操作和逻辑编写等还依赖 Java Web、Spring 这样的专业技术栈,只要解决了这个问题,非专业开发者也能做应用开发。”陈谔说道。
网易数帆内部将低代码市场分成了两类:零代码平台和低代码平台。在陈谔看来,零代码平台更加追求细分场景上的研发效率,比如纯流程应用、纯表单填报,但处理一定复杂度应用的能力却难以预测。而与传统软件开发模式没有太大区别的低代码平台,从数据库、模型驱动的设计出发,有逻辑、页面等概念,可以支持更复杂的企业应用。
当前市场上有很多引擎式的低代码平台,这类平台是在解释执行低代码上编写的逻辑,处在运行时的状态。另一类平台更接近编程语言 +IDE 的模式,生成编程语言的代码,然后产生编程语言代码对应的产品,最后发布到线上。轻舟低代码应用开发平台属于后者。
据悉,轻舟低代码这次推出可视化编程语言 NASL 将低代码使用场景拓宽到了中等复杂度的企业应用,同时也使低代码平台具备了编程语言的能力。
陈谔表示,推出可视化编程语言概念,一是为了避免 bug 进入运行阶段,二是可以为这门编程语言做 language server。
开发期间很容易引入各种错误,这些错误如果留到运行阶段,开发人员就要面临非常麻烦的问题。鉴于类型相关的问题是整个开发过程中最常见的 bug 来源之一,网易数帆引入了静态类型系统,来做类型检测。而 language server 完善后,其可以为整个低代码平台提供完整的调试能力,不会出现无法跟踪子系统状态的情况。
“使用低代码平台,对企业来说是一个需要逐渐尝试的过程。”陈谔说道。企业提出希望使用低代码平台的场景,然后网易数帆内部的低代码教练来帮助企业做开发(当然也可以由低代码教练培训企业员工自行开发低代码应用),之后再落实到实际开发环境中,最后评估应用是否与其运维体系匹配、能不能和业务真正集成等。“需要考虑的东西其实很多,这些都得一点点去尝试。”
在陈谔看来,当前的低代码平台更多是要解决人与数据、人与流程之间的交互问题,主要应用场景是企业内部的信息管理和流程相关的场景。人事系统、财务系统、行政系统等组合出符合企业管理需求的应用系列。
另外一些企业应用场景则是目前通用低代码平台还不适合的,例如:
互联网企业虽然有充分的开发资源,但内部同样也要面对不断变化的管理思路,好想法要立刻实践才能发挥最大的作用。但由于内部开发资源紧张等种种原因,针对公司内部管理的系统开发需求通常会被开发人员排到很靠后的位置,但实际上用低代码平台一周就能做出来。
但目前使用低代码平台最多的还是传统企业。传统企业如今纷纷投身到了数字化转型当中,但与互联网企业相比,传统企业很难招到足够优秀的软件开发人员,同时由于这些企业之前开发使用的很多技术栈比较分散,相关维护也有一定的难度。低代码的开发模式对传统企业来说是一个非常好的补充。
据陈谔透露,企业在使用低代码平台时,主要关注两方面的问题。
第一,如何跟自己已有的 IT 体系进行集成,尤其是大型企业。比如企业已经采购了 ERP、CRM 等软件,新应用需要适用于这些系统的接口,但这些接口本身的使用、管理是比较专业,对开发人员有一定的要求。集成不当还可能带来安全风险。
第二,低代码平台产生的代码怎么与其运维体系进行匹配。现在有很多低代码平台产生的应用只能被平台自身解释执行,不像是编程语言开发出来,这对运维是很不友好的。
低代码平台的优势还在一些特殊情况中得到了体现。
在今年河南暴雨的时候,很多志愿者自发形成组织来收集寻人信息。但当时志愿者们只能用 Excel,很多细化需求的实现能力有限。而且由于是线上工作,存在上百人同时操作的情况,这导致整个操作很慢。
轻舟的低代码教练了解情况后,立刻确定了关键信息和功能:失踪人口信息编辑、上传照片、状态变更、数量统计、上传和查看信息权限分离,之后便直接在低代码平台上设计数据模型、搭建页面和做功能实现,经测试后,寻人平台的 1.0 版本发布上线。
值得注意的是,整个过程省去了与 UI 设计师、前后端开发以及测试的需求沟通时间。这位低代码教练一个人在与志愿者沟通的同时,仅用 1.5 小时就完成了整个寻人平台的搭建工作。
低代码创造了一个增量市场
根据海比研究院的数据,目前中国低 / 无代码使用人员规模达到了 42.6 万人,另外有 164 万人在使用自有或开源的低代码平台或工具。低代码市场未来还有很大发展空间。
虽然使用门槛低,但陈谔认为,作为一款产品,低代码平台依然在一定程度上依赖开发人员对逻辑、业务的掌控能力。
“如果低代码开发人员对数据库不熟悉,他编写数据库的 query 也有可能产生性能问题。除了业务理解错误,开发人员的思维逻辑,尤其是对可能产生错误、异常问题的处理等方面考虑不全面,就会出现一些运行错误。”
但在陈谔看来,低代码平台可以让每个人从事自己更擅长的工作。“有的人擅长沟通和理解需求,但可能不擅长编程这种符号性、抽象性的工作。低代码平台可以把编程的门槛降低,让沟通能力、理解能力很强,甚至掌握了一些领域专业知识的人成为开发者。这样,他们有可能成为更好的业务开发人员。”
目前低代码平台的使用者中,大概有 40% 的人是非专业程序员背景。由于非专业开发人员拥有来源更广、招聘更便捷特点,针对非专业开发人员的培养体系正在逐渐发展,非专业开发人员的队伍会越来越壮大。
一方面,低代码平台是对专业开发人员很好的补充。专业开发人员在相对重复的业务编码上花费更多的时间,则意味着他们用在技术改进、解决技术债务等问题上的时间会变少。所以,一部分专业开发人员愿意通过用低代码平台来解决一些问题,用这样释放出的时间去做一些更能体现程序员价值的事情。
另一方面,低代码平台也是对企业数字化软件生产的一种补充。低代码平台可以承担企业内部相当一部分信息交互和管理应用的开发,这使整个企业的开发市场变得更大,很多研发者可以从事更高阶的工作,如专业或通用的组件、中间件开发,算法、架构等,去解决实际的业务问题。
在陈谔看来,当前市场是缺人的状态,低代码平台更多是为企业补充缺少的研发人力,并创造了一个增量市场。
尽管处于争议之中,但陈谔认为低代码平台最后还是会被大家接受。
陈谔用编程语言的发展作类比。从最早的汇编语言到 C 语言、从 C 语言到更高阶的 Java,再到后面的 Ruby、Python、JavaScript 等,语言越来越高级。但是很多语言刚出现的时候也受到了众多质疑。如果把低代码平台看成一门属于这个时代的编程语言,那可想而知,总有一天它会被接受。
“但这一切的前提是低代码平台尊重整个软件工程领域的历史积累。”陈谔强调。