一.low-code 是什么?

A low-code development platform (LCDP) is software that provides a development environment used to create application software through graphical user interfaces and configuration instead of traditional hand-coded computer programming. A low-code model enables developers of varied experience levels to create applications using a visual user interface in combination with model-driven logic.

通过 GUI、配置化的方式代替传统的手写代码编程,让经验背景不同的开发者都能在低代码开发平台上,基于可视化的 UI 和模型驱动的逻辑来创建应用程序

利用低代码平台创建整个 App,或者只在一些特定场景需要人工编码,减少了所需的人工代码量,一方面能够提高业务交付速度,另一方面也能让广大非专业开发者参与应用开发,降低了开发门槛和人力成本

技术上,实现低代码平台的关键要素是模型驱动设计、代码自动生成和可视化编程,通过这些手段来隐藏下层的代码细节

low-code 与 no-code

最 low 程度的 low-code 就是 no-code,也就是说,最大区别在于 no-code 无需编码:

No-code development platforms are similar to low-code development platforms but require no coding at all.

具体的,主要差异在于:

  • 平台用户:任何业务人员都能使用无代码平台,而低代码平台只面向开发者(尽管专业要求不那么高)

  • 核心设计:无代码平台倾向于采用声明式的模型驱动机制,让用户通过拖拽或简单的表达式来操纵完成应用设计,而低代码平台更倾向于通过人工编码来指定应用程序的核心结构

  • 用户界面:无代码平台为了简化应用设计,一般只支持内置的 UI 库,而低代码平台可能会提供更灵活的 UI 选项,但代价是需要额外编码,使用上的复杂性有所增加

二.与 20 年前的 Dreamweaver 有什么区别?

听起来,似乎与网页三剑客时代的 Dreamweaver 没什么区别:

Dreamweaver

与现代的前端 low-code 开发平台相比,单从表面上看,可视化地自动生成一些代码确实没有太大区别,内在的实质性差异在于:

  • 目标场景不同:Dreamweaver 更多地聚焦前端开发场景,而在 low-code 开发平台中,前端只是完整应用程序的一部分,服务端数据、路由、逻辑流程等都需要考虑在内

  • 可视化操作粒度不同:现代 low-code 平台通常有组件、区块、页面、模板等多级复用抽象,Dreamweaver 只面向 HTML 原生标签

  • 工程链路完备程度不同:Dreamweaver 仅覆盖到开发、预览、部署(FTP 上传)环节,而现代 low-code 平台大多涵盖了完整的生命周期,包括发布前的调试、测试,发布后的监控运维等各个环节

随着前端工程体系的一路演进,现代的 low-code 平台充分考虑了模块复用、生态接壤、前后端联动、工程管理等重要因素,在成熟度和开发效率方面相比 Dreamweaver 都有了质的飞跃

三.前端为什么需要 low-code?

近几年 low-code 理念在前端领域逐渐流行起来,主要有这些原因:

  • 被资源化的前端开发者:工作量大,但技术要求大多不高,生产效率成为了必须要解决的问题

  • 开放的前端技术体系:low-code 类代码生成工具很容易与前端技术体系结合起来

  • 趋于成熟的前端工程化体系:成熟稳定的前提下,才会转而追求变革式的生产效率突破

被资源化的前端开发者

面对大量低技术含量的需求,前端开发者就变成了极易替代的资源(就像低值易耗资产一样),前端人力进而成为产品需求迭代的瓶颈

此时,最好的解决办法是通过工具化、自动化的方式提高生产效率,突破前端资源瓶颈,自然就有了 low-code 方向的探索和实践,诸如 jQuery 时代的表单生成器、移动时代的 H5 页面制作工具

开放的前端技术体系

与移动 Native 客户端、服务端等技术相比,前端技术体系最为开放(甚至所有源码都是公开的),体现在:

  • 第三方模块引入成本极低:无论布局容器、样式主题、逻辑模块、甚至整站,一行标签直接引进来就能用,甚至能够随时动态引入

  • 拥有基于 Web 标准的开放生态:整个前端生态都建立在统一的标准层之上,任何一点创新都很容易累积起来,也总能站在巨人的肩膀上进一步创新

因此,low-code 平台得以站在巨人肩上前行,在组件库、构建工具、甚至可视化设计、代码自动生成的基础上进一步探索。另一方面,前端 low-code 产物都能应用到现有的任何前端应用程序中,无论生成的是 React/Vue 组件、jQuery 表单,还是SPA(Single Page App)、MPA(Multiple Page App)

趋于成熟的前端工程化体系

既不在十几年前,也不在更远的将来,而是现在,为什么?

最重要的一点,low-code 平台的发展是在前端工程化体系趋于成熟的背景之下。毕竟只有温饱问题都解决得差不多了,才能转而追求更高的生产效率

从技术演进的角度来看,前端 low-code 探索与前端工程化的发展历程息息相关:

前端工程化历经了这样几个阶段:

  • CLI 工具:脚手架、构建工具、调试服务等等

  • GUI 客户端:GUI 化的 CLI 工具,除交互方式外区别不大

  • 定制化端 IDE:基于 IDE 扩展脚手架、构建、调试、发布、监控等工程链路能力

  • 云 IDE:基于 Web IDE 扩展一系列工程链路能力,进入云研发时代

黯羽轻扬,公众号:前端向后什么才是定制化 IDE 的核心价值?

在 CLI/GUI 工具时代,编码层面的效率提升主要体现在通过脚手架自动生成模板代码,减少了样板代码的编写,让开发者码得更少

在接下来的端/云 IDE 时代,API 提示、自动补全、代码片段(Snippets)等实用功能也通通集成进来了,让开发者码得飞快

IDE 时代之后,编码层面的效率提升已经达到极致,更进一步的生产效率提升需要变革式的突破。于是,迎来了 low-code 时代,让非专业开发者也能“码”得又好又快

从前端工程化的角度来看,low-code 是工程效率提升的重要方向(也是必经之路),不难发现其中的 low-code 演进痕迹:

  • 模型驱动设计:从直接操作 DOM 到数据驱动视图,提升代码可预测性

  • 代码自动生成:从模板到代码片段到搭建,不断减少人工代码量

  • 可视化编程:从组件拼装到拖拽生成,减少低效的重复工作

P.S.实际上,low-code 平台的发展不局限于前端领域,移动 Native 客户端、服务端也有众多 low-code 探索,例如Xcode SwiftUI:

VS Server Explorer:

以及阿里云逻辑编排:

并且,据研究机构 Forrester 估计,低代码开发平台有着极其广阔的市场,可细分为数据库、请求处理、移动端、流程和通用低代码平台

Segments in the market include database, request handling, mobile, process and general purpose low-code platforms.

(摘自Low-code development platform)

四.前端领域的 low-code 探索

审视传统的前端工作流:

业务需求 -> 设计稿 -> 应用/页面/组件开发(还原设计) -> 业务逻辑代码 -> 构建 -> 发布

具体的,还原设计分为 3 种方式:

  • 开发单一组件:视觉效果还原以及模块功能开发

  • 基于组件开发页面:组件拼装、组件间交互以及页面整体逻辑串联

  • 基于页面开发应用:路由配置

其中许多环节都能通过代码生成工具提高效率:

  • 设计稿 -> 组件代码:即自动化设计还原,例如imgcook

  • 组件代码 -> 设计素材:反向转换,丰富设计素材

  • 组件 -> 页面:通过可视化搭建简化组件拼装,自动生成页面代码

  • 页面 -> 应用:可视化配置生成 SPA 或 MPA

  • 业务需求 -> 业务逻辑代码:通过可视化地编辑条件、绑定数据、指定数据流向等方式生成样板化的业务逻辑代码

在设计还原自动化(以及反向转换)的基础上,UI 素材与前端组件之间的界限几乎不复存在了,UI 素材与前端组件能够互通(UI 素材即前端组件,前端组件即 UI 素材),不仅提升了双方的生产效率,还大幅降低了协作成本

五.low-code 模式下新的可能性

  • 可视化研发模式:复杂度转移到工具中,专业性要求降低

  • low-code 与智能化结合:素材/组件智能批量生成、结合端智能、个性化推荐等技术,让用户根本停不下来

  • low-code 打入专业开发工具:在面向专业开发者的 IDE 中提供部分可视化辅助工具,如支付宝小程序 IDE

  • 前后端一体的 low-code 方案:在端云一体化开发的基础上更进一步,自动生成、部署相应的BFF/SFF代码

像云计算产品将专业的运维工作转移到了云供应商一样,low-code 模式将专业的组件开发工作、甚至 BFF 接口开发工作都转移到了可视化研发工具侧,把专业的前端技术以普惠的方式赋能给了更多的非专业开发者,同时可视化辅助工具与专业 IDE 相结合,也让专业的开发者更加高效

另一方面,前端生产力和生产效率提上来、专业性要求降下去之后,之前受限于开发成本而无法实现的事情都可以开始探索了,比如面向海量细分用户群体的个性化 UI(所谓千人千面)、自媒体时代的个人建站(再小的个体也可以有自己的平台)、高时效性的百变运营(而不只是发条push消息)……

参考资料

  • Low-code development platform

  • Iceworks: 从 GUI 开发工具到集成研发工作台

  • What is low code?

联系我

欢迎关注「前端瓶子君」,回复「交流」加入前端交流群!

欢迎关注「前端瓶子君」,回复「算法」自动加入,从0到1构建完整的数据结构与算法体系!

在这里(算法群),你可以每天学习一道大厂算法编程题(阿里、腾讯、百度、字节等等)或 leetcode,瓶子君都会在第二天解答哟!

另外,每周还有手写源码题,瓶子君也会解答哟!

》》面试官也在看的算法资料《《

low-code?与20年前的Dreamweaver有什么区别?相关推荐

  1. 20年前和现在-为什么程序员越来越累

    内卷 万物都可内卷.20年前很缺IT人员,只有会写ASP,JSP,PHP就能入行,如果你掌握EJB,那就是非常不得了了.工作到25岁就能当项目经理,28岁就能成为副总也是常态.就没有看到过30岁的程序 ...

  2. SAP云平台上的Low Code Development(低代码开发)解决方案

    Jerry之前曾经陆续写过一些文章,介绍SAP各种开发工具和开发平台: 那些年我用过的SAP IDE SAP智能机器人流程自动化解决方案 如何使用SAP Intelligent Robotic Pro ...

  3. 考古20年前的国产CPU:方舟一号和龙芯一号

    20年前,准确地说是2001年7月和2002年9月,嵌入式CPU"方舟一号"和通用CPU"龙芯一号"相继发布,分别在嵌入式和通用CPU领域结束了我国无芯历史.方 ...

  4. 20 年前毁誉参半的网游《传奇》,背后是怎样的故事?

    ‍‍ ‍ 作者 | 玄空 来源 | 程序员小灰(ID:chengxuyuanxiaohui) 80后90后的朋友,一定都多少知道一款名为<传奇>的网络游戏,在20年前曾经风靡全国,毁誉参半 ...

  5. 20年前的程序员什么样?从版主到架构大牛的成长之路

    栏目导语:20年前,人们不会想到,衣食住行在手机屏幕上动动手指就可以解决:银行和社区都可以用生物特征进行加密:川流不息的车流中,自动驾驶成为了可能:民生业务架设在云端,互联网的速度则深植在5G基站.而 ...

  6. 什么是Low Code ? 居然能威胁到专业程序员?

    周六晚上10点半,张大胖在微信上给我发了一个震惊的表情:欣哥,你知道吗?我发现一个低代码平台,我们这些专业程序员可能要下岗!人人都是程序员的时代到来了! 我心头一紧:什么是低代码?代码还有高低之分? ...

  7. 华科一篇 20 年前硕士论文,「神预言」深圳赛格大厦晃动?导师回应

    5 月 18 日下午,深圳赛格大厦突然发生晃动,随后,华中科技大学一篇 20 年前的硕士论文<深圳赛格广场建设项目评析>在网上走红. >>>> 该论文指出,当年作为 ...

  8. 20 年前,微软怎样改变了我们鼠标的使用方式?| 极客头条

    作者 | Andrew Liszewski 译者 | ScottJiang 责编 | 沭七 出品 | CSDN(ID:CSDNnews) 二十年前,也就是 1999 年 4 月,微软推出了 Intel ...

  9. 20年前的吴恩达,藏在一个数据集里

    乾明 岳排槐 发自 凹非寺 量子位 出品 | 公众号 QbitAI 快看看这是谁?! 如果你真没认出来,那我们公布答案: 青涩の安德鲁. 今天这张照片火了.连正主吴恩达都在推特上转发了这张黑白照片.吴 ...

最新文章

  1. 菠萝派php示例,菠萝派 - 美食杰 - 美食,菜谱 - 中国最全的家常菜谱美食网
  2. malloc与calloc的区别
  3. 40岁了,还要跟小年青一样埋头敲代码吗?
  4. finalizer_Java Finalizer和Java文件输入/输出流
  5. silverlight 上下标
  6. python中int用法,Python中int()函数的用法浅析
  7. 逐月对比的交叉表处理
  8. SQL 时间截按月分组查询
  9. [渝粤教育] 中国地质大学 管理信息系统 复习题
  10. 2018-3-18CCF小球碰撞问题
  11. java对word、Excel、PPT、PDF文件加密
  12. PHP打印对象 用[]可以 用.不可以 不知所以然
  13. PHP 正则表达式preg_match
  14. 夜深模拟器连接和调试
  15. 维基解密网站总编辑身世被解密
  16. 市面上的IT培训机构的水与火,作为内部人给你最真实的建议
  17. NLP基础之专家系统介绍
  18. iOS App的转让/迁移和接收
  19. IW会话参数、请求信息、及其响应信息
  20. 社交媒体的神操作:如何在互联网上删去一段历史?

热门文章

  1. 刀片式服务器与虚拟机,为什么人们在开发虚拟主机时更喜欢刀片服务器?
  2. Cirium报告显示:航空客运量过去21年的增长在2020年消失殆尽
  3. 一年的总结(09-10)
  4. 0维,1维,2维,3维............
  5. Qt实践3: 图片浏览器
  6. LoadRunner11 实现token的解析与认证
  7. OpenGL初探-Win10+VS2017+freeglut+glew+gltools开发环境搭建
  8. asp.net 客户端msgbox用法
  9. unittest + HTMLTestRunner
  10. Nokia5110 LCD