为什么说低代码是内部系统开发的未来趋势?

简介: 如果开发内部系统是用来提高我们的生产力,那么浪费大量开发人员的生产力来实现它是否事与愿违?

开发人员的大量时间花在构建内部系统上

据国外的一份研究报告显示,开发人员 30% 的时间用来构建内部系统。随着公司规模越大,这个问题会愈发严重,你可以想象一家拥有 5000+ 员工的公司,开发人员花费近 45% 的时间在内部系统开发上吗?
9bd7b331-c3d7-4b10-9056-fc9f9190c1da.png

图1:来自动视暴雪员工技术分享(https://youtu.be/xCu73WVg8Ps),拳头产品的背后离不开多个内部系统的协同支持

download.png

图2:企业规模与构建内部系统所投入时间关系

如果开发内部系统是用来提高我们的生产力,那么浪费大量开发人员的生产力来实现它是否事与愿违?

多数开发人员停留在 「从头构建内部系统」 阶段

650 名开发者/技术leader中,约 2/3 的人仍在从头开始开发一个自定义应用(build from scratch)。同时,大家选择的编程语言主要是 JavaScript、HTML/CSS、SQL、TypeScript 和 Python,选择的框架集中在 React、Express、jQuery、Angular 和 VUE.js(jQuery 能在更新换代如此迅速的互联网时代依旧受欢迎,应该是很多老公司仍在开发和维护遗留系统的「功劳」)。

目前,低代码采用者仍为少数,对于这些用户来说,这是一个正确并且愿意继续采用的选择;但是对于剩下的大多数呢,伴随着一种心理上的「傲慢与偏见」,很多开发者对尝试低代码犹豫不决,他们更相信他们所面临的业务问题只能通过自己写下的一行行代码才能解决。

download (1).png

图3:内部系统开发技术选型

低代码的本质是在更高的抽象层次上开发

但纵观编程语言的发展,无论是从机器语言到汇编,还是从 COBOL/FORTRAN/C 到面向对象高级语言,都是在朝着更高的抽象层次发展。更高的抽象化,既包括开发者便于识别、易于阅读、更符合自然思维习惯,也意味着让人在使用这门语言时,能够更有效率地实现功能,达成业务目标。

当你在使用 React 开发一个 Web 应用时,那么相较于写 JavaScript 代码,你已经站在「巨人的肩膀」上了 —— 用传统的 JavaScript 想实现相同的结果,需要更多更繁琐的代码。试问,一遍又一遍地复制粘贴相同的 HTML,还是迭代数组稍稍修改一下就呈现出相同结果,如果是你你会如何选择?

WechatIMG9.jpeg

图4:纯 JavaScript 与 React 实现一个长度为 3 的 (ul /) 对比,如果长度为 50 呢?

又试想一个场景:如果你的团队需要为公司的网站实现一个新的支付系统,这个系统能够提供像支付宝和微信支付一样强大的服务吗?况且开发与迭代像这样复杂又庞大的程序,需要大量的时间、金钱和人力资源,等等;既然如此,我们何不将这份工作代理到支付宝或者微信等其它三方支付平台,让它们帮我们完成这件事呢?

天下武功,唯快不破,让研发能专注于业务逻辑,将艰难、枯燥的工作交给框架/平台来解决,这何乐而不为?

显然,我们都在致力于减少编写的代码量、提高开发效率、更加专注于业务逻辑而不是与底层技术细节缠斗。应运而生的低代码便是时代变化的产物。

拒绝当 CRUD Boy

「内部系统」的主要目的是企业内部信息管理,包括 BI 数据看板、Admin后台、数据录入系统、客服系统,等等。
download (2).png

图5:程序员开发的部分内部应用类型

这些系统往往业务逻辑复杂,研发们需要考虑数据库的 CRUD 操作、UI 界面的搭建、交互的串联,此外还有一大堆成员管理、权限、审计日志,等等。在大多研发人员选择「一切从头开始开发」的现状下,他们所投入大量的时间精力可能都不是在解决真正的业务问题,而是在重复性的造轮子以及大量粘合代码、模板代码中。
049fc86e-513d-491c-a727-563f31162f1a.png

图6:开发者都不甘心只做 CRUD Boy

相比枯燥重复的工作,相信大多数人更想去解决有趣的事情(建模并解决实际业务问题)。重复性 CRUD 已经走向末路,低代码应用开发时代已经到来。

写在最后

作为开发人员,很多人希望对我们开发和维护的东西拥有所有权,当他们被分配一项使用低代码平台拖放(drag & drop)加少量代码就可以完成的任务时,他们或许会觉得自己不再是一名「真正的」程序员。类似的问题像是网上经常会有人讨论使用可视化编辑器 WordPress 的人是否是一名「真正的」程序员,使用 Shopify 快速搭建电商网站的人是否是一名「真正的」程序员…… 这种情况数不胜数,但我们对这类问题的答案很简单:是的。

我选择低代码,与此同时我坚信自己是一名「真正的」开发者,因为正如在「低代码的本质是在更高的抽象层次上开发」这一章中提到的,如果没有站在「巨人的肩膀」上,我很难独立从头开始敲代码。NASA 的玛格丽特·汉密尔顿,一位伟大的软件开发先驱,她所写的代码量用纸质形式呈现足足有一人高。可如今我们有多少人能做到这样呢?这难道就意味着我们不是「真正的」开发者了吗?我不这么认为。
b82245ee-2b4b-43d5-824f-c50dade3a2b5.png

图7:玛格丽特·汉密尔顿,程序员版本的「著作等身」,图源:https://news.mit.edu/2016/scene-at-mit-margaret-hamilton-apollo-code-0817

此外有一种现象叫「宜家效应」,是指消费者对于自己投入劳动、情感而创造的物品,产生高估的价值判断偏差的现象;这解释了为什么即使有更好、更简单的替代方案,很多研发仍会选择从自己的敲下的一行行代码中获得很多成就感。因此,越来越多的低代码平台,如码匠、海外的 Appsmith、Retool、Budibase 等,也开始注意到平台的可编程性、可扩展性与灵活性,并不断摸索最佳实践,力图为程序员提供更多的发挥空间,让他们享受「宜家效应」所带来的快乐。以码匠为例,我们在保留了低代码高度抽象化特性的同时,提倡「到处可写 JavaScript」:「{{ }}」 中的语句都会被执行为 JavaScript 代码并在沙箱(Sandbox)中执行;我们也支持模块化(Module)编程,你实现的代码块可以快速为团队其他成员复用……等等。

500f64cf-383f-42df-9e03-819373ba74d5.png

图8:码匠 「{{ }}」中的语句会在 JavaScript 沙箱(Sandbox)中执行

e4ab3b1c-901f-4e8c-ab76-fbae5890a5af.png

图9:码匠几乎可以在任何地方通过编写 JavaScript 解决实际业务问题

阅读到这里,如果还有人问我如何看待低代码,我可能会这样来反问 Ta:倘若有五个开发人员,你是愿意让他们五个从头开始,全职开发与迭代一个内部系统,还是选择一个低代码工具,让其中一位去开发它,其余四位来开发公司的实际产品呢?

相关文章
|
7月前
|
数据可视化 安全 搜索推荐
探析低代码开发平台的核心能力
探析低代码开发平台的核心能力
108 0
|
5天前
|
存储 数据采集 物联网
低代码与云服务开发相结合:重塑现代软件开发模式
随着数字化转型的深入推进,越来越多的企业开始将业务迁移到云端,以实现更高的灵活性、可靠性和成本效益。云服务已经成为企业数字化战略的重要组成部分。与此同时,低代码开发作为一种新兴的编程模式,也逐渐受到企业的关注。那么,当云服务遇到低代码开发,又会碰撞出怎样的火花呢?
15 4
|
7月前
|
SQL 缓存 数据可视化
如何设计一个低代码平台?
如何设计一个低代码平台?
436 0
|
10月前
|
安全 数据可视化 测试技术
【低代码开发】:探索应用开发的未来趋势
【低代码开发】:探索应用开发的未来趋势
|
11月前
|
人工智能 安全 搜索推荐
如果你在选型低代码平台,可以从这5个角度去分析抉择
如果你在选型低代码平台,可以从这5个角度去分析抉择
115 0
|
11月前
|
自然语言处理 数据可视化 安全
业务开发“银弹” ——低代码开发平台
业务开发“银弹” ——低代码开发平台
163 0
|
存储 前端开发 JavaScript
基于 LowCodeEngine 的低代码组件体系的建设和实践
基于 LowCodeEngine 的低代码组件体系的建设和实践
840 0
基于 LowCodeEngine 的低代码组件体系的建设和实践
|
NoSQL 关系型数据库 API
内部系统开发原来可以这么爽!5款低代码平台推荐
这里码匠为您推荐 5 款海外目前流行的内部系统低代码平台并进行评测,为您在企业低代码平台的选择上助一臂之力。
1360 0
内部系统开发原来可以这么爽!5款低代码平台推荐
|
存储 SQL JSON
一种关于低代码平台(LCDP)建设实践与设计思路
作者在负责菜鸟商业中心CRM系统开发过程中发现有一个痛点:业务线很多,每个业务线对同一个页面都有个性化布局和不同的字段需求,而他所在的团队就3个人,那么在资源有限的情况下该如何支撑呢?本文就降本的情况下,和大家分享下作者是如何低成本构建产品能力去支撑多条业务线、多租户的。
一种关于低代码平台(LCDP)建设实践与设计思路
|
前端开发 数据可视化 小程序
低代码技术在研发团队的应用模式探讨
低代码技术在研发团队的应用模式探讨
386 0
低代码技术在研发团队的应用模式探讨