为什么低代码和专业代码走向融合才能破解低代码困境?
近年来,低代码开发平台勃然兴起,成为业界的“当红炸子鸡”。但随着推广和投入应用,低代码平台却遭遇了强烈的质疑,尤其是开发人员和专业人士的反对,这方面的典型文章有许多,比如:
《“行业毒瘤”低代码》
《如何用低代码搞垮一个公司》
《低代码,不要以比“中台”还快的速度臭大街》
《帮手还是鸡肋?低代码的未来悬而未决》
......
这些文章和观点的结论基本一致:低代码概念很好,但在实际应用中有重大缺陷。为此,我们请起步科技牛刀低代码平台架构组就此进行深度分析探讨,发表争鸣文章,也欢迎按文末所述方式加入微信群更详细讨论,以期共同探讨进步。
一、低代码开发平台为何遭遇强烈质疑?
为什么低代码平台会遭遇业界的强烈质疑?归根到底,是因为这样一个具有普遍性的基本事实:低代码的确大幅提升了应用系统中“70%~80%部分”的开发效率(六到十几倍),但是,针对应用开发中 20~30%的重要或关键需求,低代码开发无法满足,导致应用系统烂尾和无法交付!说白了就是很“鸡肋”。
在复杂的企业业务应用开发中,低代码工具“七八成做起来很快捷,剩下的两三成做不了”而导致项目烂尾,是一个高发的现象,这不仅引发了企业应用开发者的强烈质疑,也使得低代码工具的推广遭遇了很大的阻力,因此,很有必要对这个问题进行深度探讨,找到问题的关键症结,并给出有效的解决方案。
二、低代码的产品定位有重大问题
在我看来这个问题产生的根源就是低代码开发平台的产品定位有问题。
无代码的产品定位是非常清晰的,就是那些没有专业技术的业务人员,让他们可以完全不懂编程也能做出软件来,哪怕能力是受限的也没有关系,简单好用,能解决日常信息化问题就可以。
而低代码平台即希望能让业务人员使用,也希望能让开发人员可以接受,这种定位下所产生的产品明显是两不讨好的。
低代码平台之所以区别于无代码平台的关键,是可以有更强的定制能力,既要像无代码一样可以简单拖拽出简单应用,也要能做复杂应用。这时候必然要采用一些模型设计、表达式、逻辑编排、脚本等工具和手段,但是这些明显是有技术门槛的,什么是数据库?什么是服务?什么是函数?出错了怎么分析日志?怎么调试?这些对于业务人员来说完全就像天书一样!
21CTO 在《低代码开发可不低,用户仍需要与 IT 技术部门联手》文中提到,经过统计只有 6%的低代码开发是由业务人员完成的。也就是说,低代码平台真实的广大受众是开发人员,而不是业务人员。
既然低代码开发平台的主要使用人群是开发人员,那么为什么得不到开发人员的认可和接受呢?
大多数低代码平台为了兼顾业务人员的体验,做了一件看起来非常有价值的事情,让使用者尽量不理解底层,看不到代码,在上层通过平台提供的各种表达式、逻辑编排和脚本等工具的组合来解决问题。但是这个对于开发人员来说是不可接受的!开发人员在使用低代码平台的时候最常遇到的问题是:这个地方我写代码其实很简单,到了低代码平台我不会了,或者更复杂了,这个东西让我怎么用?对于开发人员来说会感觉开发效率还没有我原来的快!
那么是所有的开发者都不喜欢吗?也不是的,有一部分开发者是可以接受的,那就是初级开发者。由于本身的技术水平并不高,所以会感觉到用了低代码平台真的能解决一些自己原本不能解决的问题。但是,在真正在实践过程中会发现另一个问题,一旦遇到真正的复杂业务还是搞不定!两个原因:一个可能是低代码工具本身的原因,另一个更重要的其实是人的原因,指望初级开发者可以搞定复杂业务——“嘿嘿,大家把软件设计想的也太简单了吧!”。
低代码这么好的概念,被上面这样一分析,怎么搞得跟“鸡肋”一样。这时候可能有人会说,低代码哪有这么不堪,低代码就让业务人员或者初级开发者去用来做简单的那部分业务,复杂的业务让资深的开发人员去原生开发好了。这样还是蛮好的啊,低代码可以大幅提升效率,降低成本,这总是事实吧,这样不行吗?
就像上面这幅图,我想很多用了低代码开发平台的客户在迫不得已的情况下就是这么干的,还真不是不行。但是只要对企业信息化有点基础认知的,一眼就能看出来其中的关键问题,这不又成了“孤岛”了吗?
三、企业需要什么样的低代码开发平台?
首先我们要回答几个问题:
1、我们还要不要低代码?
答:要。这个是必须的!
2、低代码是给谁用的?
答:是给开发人员用的。
3、有了低代码开发还需要专业开发吗?
答:要。低代码有其局限性,必须要结合专业代码,才能适应所有业务场景,特别是复杂业务场景。
低代码在发展了这么几年之后,业界也在不断地思考和总结,上面我所说的这些问题其实很多业界的专业厂商和专家都发表过类似的观点和文章:
《关于 LowCode&ProCode 混合研发的思考》——阿里
《低代码平台边界探索:多技术栈支持及高低代码混合开发》——华为
《亦敌亦友:LowCode 与 ProCode 混合使用怎样实现?》——中兴
说明大家对低代码开发平台目前存在的问题是有共识的,都在积极探索如何让低代码 LowCode 和专业代码 ProCode 相结合,也都分别提出了各自的解决方案,有用专业代码做组件的、有低代码和专业代码混合研发的、也有将低代码模块降级成专业代码后进行二开的。
这些解决思路中都有一个共性,即低代码开发和专业开发是各自独立的。低代码就是低代码,专业代码就是专业代码,用专业代码来弥补那些低代码无法完成的工作,所以都可称为低代码和专业代码的“混合”开发。
在一个项目团队中分为两拨人,一拨人技术水平不需要很高,熟练地掌握低代码开发工具;另一拨人是开发人员,用熟悉的专业工具写着专业代码,弥补低代码不足的部分。这两拨人用着完全不同的工具,不同的技术栈,只是用一些技术手段来让两者的产物可以“混合”在一起,低代码和专业代码完全是两张皮。
所以,我认为这种“混合”并没有从本质上解决“低代码开发平台”的定位问题,这样“混合”的低代码开发平台最终的结果还是:业务人员不会用、开发人员不爱用。
似乎所有低代码厂商从产品设计目标上就已经定位:“低代码”就不是给开发人员设计的。
在前一个段落中已经分析了低代码开发平台的产品定位问题,这里再补充两点:
1、低代码开发平台在企业应用中失败的原因
低代码平台在企业应用中之所以失败,主要可以归结为以下两个方面:
(1)现代企业(尤其是大中型企业)的数字化系统,是统一规划的,具有复杂技术架构的、集成的、严格受控的、高度专业的系统。
(2)因为大中型企业的数字化系统复杂度高,必须要由专业开发人员和专业开发团队进行设计和开发。
2、低代码开发平台必须要跨过的坑
对于专业开发人员和企业级应用而言,有两个”一票否决“的关键要求,一般的低代码平台,都是”栽“在这两条上:
(1)必须是白盒系统
无论是应用的开发还是故障排查,开发人员或运维人员都需要对系统进行深入的诊断、分析、跟踪、调试、优化等。无论是对开发者还是企业,都必须确保业务系统的代码透明和受控,能看到业务系统的每一行源码。
(2)必须具备开发工具的全能力
一个业务应用系统,往往有 70~80%的工作可以用低代码高效完成,但剩余的 20~30%的关键工作和需求,属于专业开发工具的能力范畴。所以,必须具备专业开发工具的全能力,才能完成产品的顺利开发和圆满交付。
基于以上的分析我们很容易得出,真正大中型企业所需要的是为专业开发人员和开发团队所设计的低代码开发平台,而这样的低代码开发平台我们称之为“专业低代码开发平台”。
四、什么是专业低代码开发平台
专业低代码开发平台是面向专业开发人员和开发团队的,一方面具备低代码的模型和可视化设计能力,可以大幅提升开发效率;另一方面让开发人员在低代码设计的同时,可以随时进行专业原生代码开发。
在专业低代码开发平台中,低代码和专业代码的关系如下:
(1)低代码和专业代码是有机融合的,是一体的,不是割裂的;
(2)低代码的模型是建立在专业代码之上的,模型输出的就是专业代码;
(3)在低代码设计过程中可以随时进行专业代码开发,而且是可逆可持续迭代的。
对于专业低代码开发平台,无论是低代码开发,还是专业代码开发,虽然所使用的开发工具可能不同,低代码开发使用可视化的模式设计工具,专业代码开发使用专业的 IDE 编程工具。但是都是同一个应用工程,生成的是统一的专业框架和专业代码。
在使用专业低代码开发平台的开发团队中,初级开发者和高级开发者可以基于统一的开发环境和工具进行紧密的分工协作。初级开发者虽然可能更多的是使用低代码开发工具,但是初级开发者毕竟也是开发人员,也还是会写专业代码的;而高级开发者由于拥有丰富的软件设计和编程经验,借助低代码开发工具会让高级开发者如虎添翼,效率倍增,进入全新的编程境界。
更为关键的是在一个开发团队中,初级开发者和高级开发者的交付物是统一的,有统一的版本管理和分支管理。同时,借助专业的 DevOps 工具,应用统一构建、测试、调试、发布、部署、运行。
而最终产生的应用,虽然是低代码结合专业代码开发的,但是由于低代码模型会编译输出专业代码,所以最终交付的应用本质上就是专业代码编译构建出来的专业应用。
只有这样的“专业低代码开发平台”才是真正为企业的专业开发人员和开发团队所设计的生产力工具,即保留了低代码快速开发的特性,又让开发人员可以自由的发挥专业能力。
举一个不完全恰当的类比:一套高端厨具给了一个非专业的厨师做出来的菜品,一定没有专业厨师随便拿把菜刀和炒瓢做出来的菜品味道好;但是专业厨师就不需要有高端的厨具吗?当然不是!(不知道读到这里,你是不是已经 GET 到我想表达的意思,但差不多就是这样的。)
五、专业低代码与无代码、低代码和专业代码的区别
专业低代码开发平台通过低代码与专业代码的有机融合,既保证了开发效率,又保证了开发深度。但也因如此而具有一定的技术门槛,上手相对较难,需要有一定的技术背景,不适用于业务人员。
专业低代码与无代码、低代码和专业代码的主要区别如下:
没有最完美的方案,只有最适合的方案。专业低代码开发平台就是为大中型企业的专业开发团队量身打造的,用于企业数字化转型的生产力工具。
六、后记
低代码开发平台,这两年得到业界的普遍重视。低代码开发的先进理念和巨大价值,对于企业和开发者,都是无容置疑的,但是,我们更应该正视低代码开发工具在应用中遭遇的关键问题,探寻其症结所在,并给出解决方案,促进低代码开发被普遍推广和成功应用。
本文作者是北京起步科技公司的牛刀产品架构核心团队,起步科技是国内快速开发工具的老牌厂商,长期致力于为客户提供专业的企业应用开发平台。起步科技的牛刀专业低代码 PaaS 平台,立足于将低代码、专业代码和云原生技术架构技术有机结合,专门针对大中型企业数字化转型中的技术痛点,为客户打造自主可控、可持续发展的数字化底座支撑平台。
本文是对低代码开发平台如何适应大中型企业数字化转型的思考,也是牛刀产品自身的产品定位。望起抛砖引玉之效果,与同业的专业厂商和专家大咖一起共勉,共同探讨和推进低代码开发平台的技术发展。
为了更好地交流专业低代码方面的内容,我们建立了相关的微信群,群内可以讨论专业低代码相关的内容,我们会不定期分享专业低代码领域的相关内容,期待您的加入,可私信我们,或浏览起步科技官方网站也有入群二维码。
后续我们还会就“专业低代码开发平台”这个细分领域推出:《专业低代码产品选型参考》、《牛刀:一个典型的专业低代码 PaaS 平台解析》等系列文章,望大家持续关注,不吝赐教。
参考文章
《“行业毒瘤”低代码》
《如何用低代码搞垮一个公司》
《低代码,不要以比“中台”还快的速度臭大街》
《帮手还是鸡肋?低代码的未来悬而未决》
《低代码开发可不低,用户仍需要与 IT 技术部门联手》
《关于 LowCode&ProCode 混合研发的思考》
《低代码平台边界探索:多技术栈支持及高低代码混合开发》
《亦敌亦友:LowCode 与 ProCode 混合使用怎样实现?》
版权声明: 本文为 InfoQ 作者【牛刀专业低代码】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac0366fcc7b935506d127b46b】。文章转载请联系作者。
评论