low-code特点:

1. 一个创造软件的开发环境,类似vs-code;

2. 通过可视化拖拽和参数配置高效开发。

1. 背景

1.1 目标

需求的交付质量和交付效率一直是中后台项目开发中非常关注的指标。

1.2 发展

各个团队也在不断探索更多的方式。

(1)开发通用业务组件。将各个特定业务场景进行封装;

(2)开发通用性组件。设定规则,通过配置化完成页面构建和逻辑处理,form-render就是如此的组件;

(3)页面配置化。对于业务比较成熟后,对于业务组件提炼已经到达一个非常高的程度(形成物料级别),我们在开发页面的时候会发现,实际开发就是将各个业务组件进行组合,于是会出现页面的配置化;

(4)页面可视化。继续发展,配置仍然需要代码开发上线,这些配置是不是可以通过可视化完成,然后存入数据库,这个时候就形成了我们low-code代码平台的基础版本。

(5)可视化平台完善。监控,埋点,页面管理,物料管理,上线流程这些功能的支持,将会形成一个完善的可视化搭建平台。此时基本是程序员可以用。

(6)产品可用。产品可搭建是一个比较高的要求,需要物料设计更简单,平台使用更简单。基本上只针对比较简单或者通用的页面支持。此时就会形成no-code平台

2. 对开发有什么帮助

2.1 提升开发效率

开发中,即便再小的需求也会存在不少的code,即便的复制的代码也会存在一些边界值的修改,这些往往是耗费时间的。在low-code平台,将不会看到任何代码,我们能看到的仅仅是一些我们需要修改的参数,我们的关注点也可以聚焦到这些参数上。此时,我们需要关注的是页面的整体逻辑和物料的参数配置。

2.2 提升交付质量

“多做多错,少做少错”是一个生活常识,通过low-code平台,我们做的事儿更少了,我们主要是物料拖拽以及属性配置,不用再去关注边界条件,基本上只要物料不出问题,我们交付的页面也不会出问题。同时也能减少测试的工作量。

3. low-code关键组成

3.1 拖拽功能

拖拽功能可以是对用户非常友好的一种方式,同时也是比较方便的方式。实现中比较常用的库是react-dnd。

3.2 页面渲染

一般页面结构通过json schema进行描述,low-code平台需要根据schema配置完成页面渲染,所以需要提供一个渲染器。

3.3 物料协议

对于任何一个low-code平台都有自己物料的协议,只有满足协议才能接入平台。

3.4 物料属性配置

物料都有一些变量需要配置,比如一个表格,需要配置请求的url信息,需要配置每个列的列名和绑定字段。所以需要一个物料的属性配置面板,一般这个面板的配置信息配置在物料中。

3.5 事件编排

物料之间可能也会存在一些互动,比如,点击按钮,出现一个弹框。这个都需要进行事件编排,在各个事件中触发配置事件。

附上一个个人开发的小案例:

预览

代码地址

low-code的更多相关文章

  1. 基于低代码平台(Low Code Platform)开发中小企业信息化项目

    前言:中小企业信息化需求强烈,对于开发中小企业信息化项目的软件工作和程序员来说,如何根据中小企业的特点,快速理解其信息化项目的需求并及时交付项目,是一个值得关注和研讨的话题. 最近几年来,随着全球经济 ...

  2. 后Low Code时代:聚焦和突破

    很多人都不想被贴上标签,我曾经也一样.觉得青春不能被定义,人也不能被分类.但随着学习和工作的变迁,慢慢开始发现标签也是一种名片效应. 比如一个做汽车销售的朋友,他就对BMW的车型非常熟悉,可以说是懂车 ...

  3. JavaScript modularity with RequireJS (from spaghetti code to ravioli code)

    http://netmvc.blogspot.com/2012/11/javascript-modularity-with-requirejs.html Today I would like to d ...

  4. 初试 Matlab 之去除水印

    这几天很痛苦地去学习了下用 Matlab 来处理图像,其实那些算法我觉得还不算很难理解,可是 Matlab 这种反人类的语法(可能对于我来说是这样吧,毕竟熟悉了 C++ / Java 的语法一时间很难 ...

  5. The Brain as a Universal Learning Machine

    The Brain as a Universal Learning Machine This article presents an emerging architectural hypothesis ...

  6. 伪Base16的构思和实现

    最近看见了一个迅雷地址,发现将其转换为普通链接的工具后,发现所谓专用地址地址就是原地址前加一个表示迅雷的前缀,后进行Base64编码.查阅Base64编码过程后,突发奇想:能否做一个Base16算法? ...

  7. 优化Webpack构建性能的几点建议

    Webpack 作为目前最流行的前端构建工具之一,在 vue/react 等 Framework 的生态圈中都占据重要地位.在开发现代 Web 应用的过程中,Webpack 和我们的开发过程和发布过程 ...

  8. C# Note37: Writing unit tests with use of mocking

    前言 What's mocking and its benefits Mocking is an integral part of unit testing. Although you can run ...

  9. BizDevOps — the true value proposition of workflow engines

    转自:https://blog.bernd-ruecker.com/bizdevops-the-true-value-proposition-of-workflow-engines-f342509ba ...

  10. 萌新程序媛的首个作品,基于NoSQL的内容管理及低码开发平台

    尽管入行有一段时间了,但之前还从来没想过要开发一款完整的软件产品.这个我跟朋友开发的第一款软件,希望大家帮我们多宣传推广.首个版本肯定有很多的不足,大家也给我们多提意见,还有很多规划中的功能要在之后的 ...

随机推荐

  1. Ubuntu14.4配置vnc

    一.安装Xrdp Windows远程桌面使用的是RDP协议,所以ubuntu上就要先安装Xrdp,在ubuntu软件中心搜索xrdp安装. 安装xrdp的同时会自动安装vnc4server,xbase ...

  2. 学Go语言能找到实习吗,年前聊聊Go和Java

    前言 快过年了,来公司的人越来越少,估计明天都没什么人了,白泽也要收拾收拾回老家过年了.今天就随便写写零碎的事,所以行文当中难免思路跳跃,请大家一笑了之. 每次冷不丁收到公司给发的礼品袋,心头总是莫名 ...

  3. 用socket写一个简单的服务器

    import socketsk=socket.socket()sk.bind(("127.0.0.1",7001))sk.listen()def login(url): with ...

  4. ARC-124 部分题解

    E 直接统计原式不好做,注意到首先我们应该知道怎样的 \(x\) 序列是合法的,那么不妨首先来统计一下合法的 \(x\) 序列数量. 令 \(b_i\) 为 \(i\) 向右给的球数,那么有(\(i ...

  5. htc 简单的移动效果

    转载请注明来源:https://www.cnblogs.com/hookjc/ 1.创建 HTC 文件的架构.一个标准的 HTC 文件含有一个 SCRIPT 块和一对可选的 COMPONENT 标记. ...

  6. 解析视频真实地址播放 By HL

    手思3.0启动,从手思1.0版的iOS2个人,到现在的N个人,如今又回来做手思了. 重新做自然就要比之前的更好,更强大,而视频播放页的效果相当的不乐观. 公司用的是优酷的视频连接,只能用webview ...

  7. Solution -「多校联训」自动机

    \(\mathcal{Description}\)   Link.   有一个状态集为 \(V\) 的自动机,状态接收 (, ) 和 _(空格) 三种字符,分别编号为 \(0,1,2\),状态 \(u ...

  8. 图计算 on nLive:Nebula 的图计算实践

    本文首发于 Nebula Graph Community 公众号 在 #图计算 on nLive# 直播活动中,来自 Nebula 研发团队的 nebula-plato 维护者郝彤和 nebula-a ...

  9. etcdserver: mvcc: database space exceeded

    文章目录 查看节点状态 获取旧版本号 压缩旧版本 清理碎片 再次查看节点状态 清楚告警 k8s的apiserver组件重启失败,通过journalctl -xeu kube-apiserver命令查看 ...

  10. CentOS7 部署黑客帝国代码雨

    1024程序猿的节日,搞一个黑客帝国画面玩玩 [root@localhost ~]# yum -y install ncurses-devel [root@localhost ~]# yum -y i ...