当前位置: 首页 > news >正文

聊聊「低代码」的实践之路

区块链、低代码、元宇宙、AI智能;


01


先来说说背景

这个概念由来已久,但是在国内兴起,是最近几年;

低代码即「Low-Code」;

指提供可视化开发环境,可以用来创建和管理软件应用;

简单的说;

就是可以通过各种组件的拖拽,实现页面的创建,交互流程和逻辑,以及数据层面的管理,更加高效的实现需求;

早先在数据公司时;

见识过低代码的应用,也参与过部分研发,比如元数据平台,BI分析等;

不过,当时还是以数据管理的工具来定义项目,并非是低代码;

从「2020年底」开始;

实际上,那个时间节点,低代码平台的应用已经形成趋势了;

现在的公司,将「低代码」平台的使用「规划」到「业务体系」中;

后来看,这是一个非常正确的决策

在当时的讨论会议上,大Boss给的理念;

非核心业务全面集成到低代码平台中,将核心业务的边缘流程,以实践的方式迁出小部分到低代码平台中

并且给了理由,是基于「行业趋势」和「业务周期」的整体考虑,才做出的决策;

其实,所谓的降本增效,也会遵循上述的规律;

不过遭到技术部的「稍微」反对;

主管还当场给了理由,说明为何不支持这样的决策;

但是最终的讨论结果,出自部门老大的建议;

不动核心业务,先将「边缘业务」迁入,根据「效果」再决策后续规划;

当然大Boss最终认同这个结论;

以实践三年后的今天来看,人和人的「差距」确实挺大的;

组织内「Boss」层面的决策正确,「部门」层面的执行节奏,「员工」层面的后知后觉;

有感觉到明显的认知「差距」;


02


聊聊最初的疑惑

客观来说;

在研发领域内,大部分玩家对新事物都有一定的「排斥」情绪;

新事物意味「打破习惯」和诸多「不确定」因素;

主观来说;

个人虽然也有排斥新事物的心理,但是很少质疑有趋势性的事物,当低代码应用成为流行趋势时,个人选择跟随就好;

技术部为何下意识的反对低代码应用?

从最近三年的实践和采坑经验来说,以下问题可能都会成为「否定」的因素;

问题1】平台选择;

这里重点考虑两个维度:普遍性和业务特性;

如果只是常规的业务数字化转型,建议优先从大的生态选择,比如「某微」或「某钉」,相对而言会更便捷;

如果有行业定制化的需求,则需要有针对性调研,比如财务系统,人事管理等;

问题2】成本困扰;

思考一个问题:

简单业务需求从整体协作去考虑,涉及的时间成本、人力成本、以及产品技术的维护成本;

计算成本之后,和低代码平台的费用做对比;

客观的「数字」最有说服力;

这里依旧是降本增效的策略:更低的时间,更高的效率,更少的成本,更多的回报;

问题3】业务适用性;

低代码应用刚火起来不久,并没有发展到各行各业都有成熟合适的解决方案;

所以针对低代码平台的使用;

最大的争议点就是,没有找到符合业务特性的平台,但是管理层急于追求数字化和降本;

这种情况下;

如果盲目引入到业务体系中,后期难免会成为烫手的山芋;

所以充分的调研,以及对市场上各种案例的参考,从而客观的分析公司当前的业务阶段,是否有必要引入低代码应用;

问题4】复杂后的维护性;

涉及到一个决策问题,低代码应用到底谁来维护?

业务人员还是研发角色?

从实践经验看;

建议是由业务方将需求对接到研发团队,个人所在的组织中,是一个产品加一个研发,一起负责低代码平台的迭代;

值得注意的是;

低代码应用具有一定的使用门槛,在使用的时候需要遵循普遍的开发原则和规范,以此保证持续可维护性;


03


简单聊聊原理

在说低代码的实践之前,先来分析一下基础性的原理;

如果是普遍的共性业务

常规就是页面的渲染和展示,数据层面的增删改查,计算层面的加减乘除,当然还要考虑模型整体的驱动和交互逻辑;

如果是行业特色的业务

则需要低代码平台中进行深度定制化的功能,提供其特定的解决方案;

技术角度进行原理的简单分析;

在低代码系统中,十分考验前后端的整体「封装」能力;

前端,页面中各种组件和工具的管理,交互时各种动态计算,页面整体的数据填充;

后端,提供整体的模型驱动能力,封装不同场景下的公共的交互接口,从而实现各个模块的流程和逻辑;

数据,比较常规的手段有两种;

【1】进行纵向的表结构设计,数据存储层面使用键值对的方式,构建搜索查询的逻辑比较复杂;

【2】数据采用JSON的格式,在数据体量大的情况下,要考虑查询效率问题;

【3】数据还要提供基础的分析和导入导出能力,以及API层面或者数据通道的搬运能力;

实际上低代码应用的现状,还会提供各种应用和生态的集成能力;

追求功能的全面性;

可以参考「某微」或「某钉」的低代码平台的集成能力;


04


组织内实践案例

明白低代码的基础原理之后,再来聊聊近「3年」的实践;

首先要明确一个「认知」;

如果只是从研发角度「纵向」看;

业务可能就是产品矩阵中所涉及的各种事务流程,以及参与流程管理和协作的各个角色;

角度没有问题,但是有点孤立;

但是,「横向」的从组织的整体来看;

即便抛开产品层面,还存在诸多的协作事项,业务流程的管理;

这些普遍不会被集成到产品矩阵中;

但是同样值得「信息化」和「数字化」管理,从而打造「标准化」流程;

在引入低代码平台之后,会形成如下的应用体系;

在工作中,如果涉及多部门间的「横向」交集;

那么会接触到很多第三方应用,而非单纯的研发部门搭建的产品体系;

有的应用极具行业的特色,有的应用倾向共性业务的管理,有的应用倾向私域客群的维护;

不同平台的共通点,都是可以提供定制化的低代码能力;

最为关键的是;

这些平台都提供「对外」的「交互」能力,可以是第三方应用之间的交互,也可以是与内部的产品体系交互;

在这种应用体系内;

组织在实践近一年之后,各种核心的业务流程,都全面的信息化和数字化管理,并且从应用层面打通了不同业务的交互路径;

最后,经过对比论证,业务流的「效率」得到极大的提升;


05


实践带来的反思

与低代码平台联系最密切的一个概念,就是「数字化」;

在数据公司时;

见识到数据层面可以挖掘的价值,智能化的分析决策流程,但是缺乏应用层面的数字化实践;

现在的组织中;

强烈的追求业务数字化管理,并且有幸见识到了完整的实践过程,才最终形成比较清晰的认知;

不得不承认,这是一个普通玩家,「后知后觉」的反思;

反思低代码应用;

各厂商基于自身所在的行业,以及技术和产品的实践经验,将其封装在复杂的低代码平台中;

从而提供,各种「相对简单」的业务流模型搭建;

这样可以支撑各种业务场景的数字化管理,并且低代码搭建的产品,本身具备很强的灵活可变能力,都有助于效率的提升;

在业务完成数字化之后,自然可以提升各个场景的统筹效率;

对于当下最热门的「AI领域」来说,其依赖「数字化」的基础,进而推进流程和决策的「智能化」管理;

反思技术的发展;

以前总觉得,所谓的信息化、数字化、智能化「遥不可及」;

但是区区几年的时间,就已经普及到各行各业;

成为当下最大的热点;

所以,面对新兴事物的时候,快速理解和衡量其价值,确实会给认知层面带来巨大的差距;


06


最后聊几句问题

随着低代码应用的普及;

越来越多的业务人员具备「简单」的开发能力,必然会给部分研发人员的带来负面影响;

无疑;

加剧互联网的「内卷」趋势,本就卷得一塌糊涂的行业,现在更是雪上加霜;

然而趋势的形成,不会以个人意志为转移;

就像现在的「AI智能」一样,领先的公司不会顾及反对的声音一路狂奔,落后的公司一边喊着反对又一边疯狂追赶;

真正的趋势,本着不可逆跟随就好的心态。

相关文章:

聊聊「低代码」的实践之路

区块链、低代码、元宇宙、AI智能; 01 【先来说说背景】 这个概念由来已久,但是在国内兴起,是最近几年; 低代码即「Low-Code」; 指提供可视化开发环境,可以用来创建和管理软件应用; 简单的说…...

(一)服务发现组件 Eureka

1、Eureka 简介 Eureka 是Spring Cloud Netflix 微服务套件中的一部分, 它基于Netflix Eureka 做了二次封装, 主要负责完成微服务架构中的服务治理功能。我们只需通过简单引入依赖和注解配置就能让Spring Boot 构建的微服务应用轻松地与Eureka 服务治理…...

学会笔记本电脑录屏快捷键,轻松实现录屏!

案例:笔记本电脑录屏有快捷键吗? 【我每次打开笔记本电脑录屏都要耗费比较长的时间,这样会影响到我录屏的效率。在这里想问一下,有没有快速打开电脑录屏的方法?】 在日常的工作、学习、娱乐中,我们经常需…...

( “树” 之 Trie) 208. 实现 Trie (前缀树) ——【Leetcode每日一题】

知识点回顾 : Trie,又称前缀树或字典树,用于判断字符串是否存在或者是否具有某种字符串前缀。 ❓208. 实现 Trie (前缀树) 难度:中等 Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构&#xff…...

算法训练Day40:343. 整数拆分 96.不同的二叉搜索树

文章目录 整数拆分题解(动态规划)贪心 不同的二叉搜索树题解 整数拆分 CategoryDifficultyLikesDislikesContestSlugProblemIndexScorealgorithmsMedium (62.22%)11660--0 Tags 数学 | 动态规划 Companies 给定一个正整数 n ,将其拆分为…...

设计模式及代码

1、工厂方法模式(Factory Method Pattern): 定义一个用于创建对象的接口,让子类决定实例化哪一个类。应用场景:当一个类不知道它所必须创建的对象的类时;一个类希望由它的子类来指定它所创建的对象时。 抽…...

9.java程序员必知必会类库之加密库

前言 密码学在计算机领域源远流长,应用广泛。当前每时每刻,每一个连接到互联网的终端,手机,电脑,iPad都会和互联网有无数次的数据交互,如果这些数据都是明文传输那将是难以想象的。为了保护用户隐私&#…...

C技能树:for循环:九九乘法表

使用for循环&#xff0c;打印九九乘法表。下列四个选项中有一项无法实现该功能&#xff0c;请找出该错误选项。 #include <stdio.h> int main(int argc, char** argv) {int i 0;int j 0;(_____1_____)return 0; } int row 0; int col 0; for(i 0; i < 8…...

Win10老是蓝屏收集错误信息重启无效怎么办?

Win10老是蓝屏收集错误信息重启无效怎么办&#xff1f;有用户遇到了电脑开机蓝屏的情况&#xff0c;收集错误信息重启电脑之后&#xff0c;依然无法解决问题。那么这个问题要怎么去进行解决呢&#xff1f;接下来我们来看看以下具体的处理方法教学吧。 准备工作&#xff1a; 1、…...

Redis入门学习笔记【五】Redis在分布式环境下常见的应用场景

一、分布式锁 当多个进程不在同一个系统中&#xff0c;用分布式锁控制多个进程对资源的操作或者访问。 与之对应有线 程锁&#xff0c;进程锁。 分布式锁可以避免不同进程重复相同的工作&#xff0c;减少资源浪费。 同时分布式锁可以避免破坏数据正 确性的发生&#xff0c; …...

Python ZIpFile 解惑:GBK 编码与乱码现象

文章目录 参考描述铺垫乱码现象编码与解码编码解码 字符集Unicode 字符集UTF-8CP437Zip 文件与 CP437 编码 GB2312GB2012GBK 单字节编码与多字节编码 溯源通用标志位与语言编码标志ZipFile 所支持的两种编码方式GBK 编码与 Zip 应用乱码现象产生的原因 解决 参考 项目描述维基…...

【LeetCode】213. 打家劫舍 II

213. 打家劫舍 II&#xff08;中等&#xff09; 思路 这道题是 198.打家劫舍 的拓展版&#xff0c;区别在于&#xff1a;本题的房间是环形排列&#xff0c;而198.题中的房间是单排排列。 将房间环形排列&#xff0c;意味着第一间房间和最后一间房间不能同时盗窃&#xff0c;因…...

从初识RabbitMQ到安装了解

一、同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;但是你却不…...

MySQL(六)-字符串函数的使用解析

字符串函数的使用解析 1 计算字符串字符数的函数和字符串长的函数2 合并字符串函数 CONCAT(s1,s2,...)、CONCAT_WS(xs1,s2,...)3 替换字符串函数INSERT(s1,x,len,s2)4 字母大小写转换函数5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)6 填充字符串的函数 LPAD(s1,len,s2)…...

Zookeeper集群搭建

搭建Zookeeper集群 1.1 搭建要求 真实的集群是需要部署在不同的服务器上的&#xff0c;但是在我们测试时同时启动很多个虚拟机内存会吃不消&#xff0c;所以我们通常会搭建伪集群&#xff0c;也就是把所有的服务都搭建在一台虚拟机上&#xff0c;用端口进行区分。 我们这里要…...

【计算机视觉 | 目标检测】OVD:Open-Vocabulary Object Detection 论文工作总结(共八篇)

文章目录 一、2D open-vocabulary object detection的发展和研究现状二、基于大规模外部图像数据集2.1 OVR-CNN&#xff1a;Open-Vocabulary Object Detection Using Captions&#xff0c;CVPR 20212.2 Open Vocabulary Object Detection with Pseudo Bounding-Box Labels&…...

C++入门基础知识[博客园长期更新......]

0.博客园链接 博客的最新内容都在博客园当中&#xff0c;所有内容均为原创(博客园、CSDN同步更新)。 C知识点集合 1.命名空间 在往后的C编程中&#xff0c;将会存在大量的变量和函数&#xff0c;因为有大量的变量和函数&#xff0c;所以C的库会非常多。那么在C语言编程中&a…...

( “树” 之 BST) 501. 二叉搜索树中的众数 ——【Leetcode每日一题】

二叉查找树&#xff08;BST&#xff09;&#xff1a;根节点大于等于左子树所有节点&#xff0c;小于等于右子树所有节点。 二叉查找树中序遍历有序。 ❓501. 二叉搜索树中的众数 难度&#xff1a;简单 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root…...

openharmony内核中不一样的双向链表

不一样的双向链表 链表初识别遍历双向链表参考链接 链表初识别 最近看openharmony的内核源码时看到一个有意思的双向链表&#xff0c;结构如下 typedef struct LOS_DL_LIST{struct LOS_DL_LIST *pstPrev; //前驱节点struct LOS_DL_LIST *pstNext; //后继节点 }LOS_DL_LIST;不…...

大文件删除不在回收站里怎么找回

在日常办公中&#xff0c;总会有一些新的文件产生&#xff0c;和用完后的文件清理掉。有时候不小心误删文件也是常有的事。但如果大文件删除不在回收站里怎么找回呢?遇到的小伙伴们请不要别急&#xff0c;只要按照下面的方法做就行了。 正常情况下删除会进入到回收站中&#x…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...