lowcode

lowcode


powered by meeting-minutes-bot

(后续均用 lowcode 指代 lowcode 及 nocode)

我所认知的 lowcode 多见于企业内部和少儿编程,适用于业务逻辑为核心,且需要不时进行小改动的地方。

用现成 lowcode 平台做 xx 管理系统已经有很成熟的商业应用交付方案(我在v2看到过一位停车场管理软件公司唯一负责开发的老哥因为公司转用 lowcode 平台之后太闲而辞职了),可以说它消灭了一大批机械化 CRUD 编码的工作。

lowcode 经常被人诟病封闭,性能差,不够灵活,也被人说不给开发者活路,我部分赞同这些观点,同时也觉得是因为没看到其发展方向才会这么说,所以我先来说说我的见解,方便后续大家展开讨论:

第一,lowcode 不仅仅是表单拖拽,它可以是 workflow 引擎,也可以是 BPM 引擎,还可以是 RPA 引擎,之前也在群里分享过我对 BPM,serverless 组合发展,规范并简化后端开发的想法,其最终应用结果就是 lowcode 平台。

第二,prisma 这种 ORM 引擎算不算 lowcode?自动实现 migration,自动支持 graphql 显然节省了很多重复编码的过程,这种从 higher level 思考需求的方式我觉得就是 lowcode 在做的,因此 prisma 在我看来可能不算一个平台,但也算是 lowcode 的基础设施了。

第三,企业内部对 lowcode 的需求其实非常大,尤其是涉及审批和财务方面,即使有金蝶这样专门做 ERP 开发和定制的企业,内部需求很多时候还是会有调整,不可能什么都找人定制,很多时候就是绕个弯将就用用。SAP 和 Salesforce 都有相关的解决方案,核心也是 workflow 引擎支撑的 lowcode 平台,至于具体怎么做的,就需要业内人士给大家解答了。

总结来说无非三点,lowcode 形式多变,可以和 serverless 放在一起;很多地方都有 lowcode 思想;lowcode 市场很大,但不一定是 toC 领域。做好第一点,封闭和不灵活一说也就不攻自破了,认识到第二点就不会对 lowcode 那么反感了,知道第三点就不会担心 lowcode 有没有未来了。

prisma - https://github.com/prisma/prisma



我很期待能有一个 lowcode 测试平台,用可视化 BPM 工具编写单元测试和集成测试,生成可以 commit 的测试 spec,cicd 里面用命令行工具执行spec 就好了,这样 devops 和 QA 才更容易相互理解,沟通成本无限降低



用友 BIP,金蝶 EBC,SAP BTP 都是 lowcode 平台,Salesforce 其本身就是在提高各种 lowcode 服务,BIP 和 BTP 我都看到了明确的云原生和微服务字样,因为对 SAP 有特殊的好感 (之前了解到的是德国 SAP 一周到班三天左右,带薪年假一个月以上),所以主要去了解了 BTP。

抛开它各种商业相关的宣传术语,可以总结为:

1. 深度集成 SAP S/4HANA - 是自家产品的发展和延续
2. 主要用于数据分析
3. 可使用开源项目 kyma 在 kubernetes 平台上以 serverless,container 等方式集成非 SAP 服务

kyma 是基于 gardener 构建的多种服务的集成包,可以类比 k3s 打包了 flannel 等一系列服务方便运行。

kyma: https://github.com/kyma-project/kyma
gardener: https://github.com/gardener/gardener
kyma 开发示例: https://github.com/SAP-samples/kyma-runtime-extension-samples


国内有不少 lowcode 服务,对于行业发展情况我这个外行没什么发言权,发一篇从业者的采访

https://mp.weixin.qq.com/s/YZMj2BvWoZOWyZkUj8Wc2Q


其他相关资源链接

https://github.com/taowen/awesome-lowcode


lowcode 全栈构建方案

https://v2ex.com/t/778749

用到了 https://github.com/amplication/amplication


前几天刚出的 nocode 平台,主打用电子表格直接展示数据库,也支持自定义页面和编程扩展,暂时还没有实时协作功能。

https://github.com/nocodb/nocodb

在我看来可扩展性不是那么高,而且推 nocode 平台的本意不就是要减少电子表格的使用吗 😅

我昨天也找到了这个项目,但是还没想到有什么场景用到

腾讯文档协作也挺好用,或者内部用的话可以玩confluence,协作能力也很强

可能主要还是面向办公 OA 吧

不过它们的痛点就是可编程能力几乎没有,比如我做了一个表格记录了我家里的食品药品属性,包括保质期,但是可编程能力弱,就意味着我不能顺手做一个“准备到保质期就提醒我吃掉或者换一批”的需求

这个表格项目如果扩展性ok的话,那么做起来很快

但是这样时间相关的需求要么是有延迟队列支撑要么跑 cronjob,好像也没有什么好的解决办法,让平台自己去支持可能不太现实

部署到云函数那里,随手就能配一个定时器

那好像就不需要平台支持了,只需要平台提供分享接口,自己去解格式就行了 😂

平台自己支持定时器的玩法,node-red就有,但是它没有解决好部署了多个实例的情况,要自己写点小判断

应该是产品侧重点不一样吧,用 nodered 定时去检查好像效果也一样

所以工具类做好自身闭环就够了,做多了就画蛇添足

👍 这么看来可能 nocodb 的定位确实尴尬

看后续特性了,说不定能当个无头cms建个表,就想我现在用amplication那样

我现在用amplication还有点爽,如果支持的数据类型再多一点就好了

我可能就 MongoDB 或者 foundationdb 一把梭了,只要有基本的 ACID 支持我觉得就可以接受

但是对接这类数据库的 lowcode 平台好像不多 😅

主要是因为建表和修改麻烦才会考虑,不过现在有 prisma 会好很多

踩坑amplication第三周了,用amis做页面也很熟练了,然后回过头猛然发现无头cms价值真的很大,现在也看出来无头cms的字段建模设计能力了

https://github.com/directus/directus
https://github.com/strapi/strapi

这2个都很不错,现在让我重新搞的话可能会在这2个选一个出来,毕竟建模好之后,就可以录数据了,花时间在折腾录入数据的页面上其实很没有价值

我还是期待前端 lowcode 框架可以出个基于 meta programming 的解决方案,控件出来都是代码,不搞配置那些虚的

拯救稀巴烂的内部系统,我觉得可以用无头cms发挥价值.

无头cms本质是提供一个rbac,然后给你建模(自身有几张表来存元数据),然后调整一下编辑和展示的表单格式,这样方便不同角色登录系统然后对不同的表进行crud操作

那么完全可以用无头cms去接管稀巴烂的内部系统数据库,这样瞬间就有了一个标准化restful的接口,如果有特定的业务逻辑就转移到无头cms的扩展点那里.

像我这边就有大量内部系统,表关系很简单,但是前端页面是后端开发随便做的,连前后端分离都不是,交互非常反人类,如果用无头cms接管过去,瞬间就牛逼了起来

现在 elm 大有前端 haskell 的势头,我同事说用起来感觉还不错,就是不知道什么时候能像 haskell 一样靠 meta programming 丰富自己的生态

其实我还是更看好 svelte 的理念,用纯 html,纯 js/ts 编写,做 lowcode 平台就用文档数据库把自动生成的源码存一套(我甚至觉得可以直接存在 git 仓库新分支提 pr,只要不和核心组件存一个文件夹产生冲突就行),在线编辑的时候靠后端在线编译部署,提供不同 api 路径做预览,确认无误后直接热替换,下次部署的时候可以把生成的源码一起编译部署

总结一下

前端要做
1. 控件代码生成

后端要做
1. 源码存取且与核心源码合并
2. 源码编译
3. 部署预览和热更新

看起来好像除了代码生成那里需要精心设计,其实并没有什么难以克服的地方?

用 svelte 来做的好处是纯 html 编写你甚至可以实时预览

像amplication生成的代码,都是有一个base文件夹,放大量生成的代码,然后几个继承的文件,自定义逻辑就放继承的文件里

amplication理念是base文件夹的东西随便覆盖,但是这个代码生成的粒度还有点粗,比如有一些关联关系的crud你不想让它生成,但是它也在base里面,你用amplication调整了表结构之后又要覆盖一遍

我觉得directus比amplication做得更好,毕竟眼不见为净,你所有建完表的接口已经自动生成好了,而不是用生成代码的逻辑

万一哪天有钱专门做内部系统优化了呢😂

rbac 我觉得可以通过统一的 oidc 支撑,授权服务器配置分组和权限,其他服务解里面的授权信息就好了

每个服务独立做 rbac 其实有点吃力不讨好

把鉴权丢去网关是最好的

设计一个网关,支持应用、功能模块、路由等鉴权需要的要素注册上去,配置什么角色可以方便什么应用的功能模块,这些模块背后的url是什么。这样网关只需要解出http的用户信息就能直接完成鉴权了。

envoy + wasm

再 + ory 全家桶


Report Page