什么是比较好的低代码产品

Categories: Thought

随便扯扯

可能大家谈到低代码想到更多的是低代码搭建页面的平台,内部不少也是此种,其实对于偏逻辑编排、服务 BaaS 能力的偏可视化方式其实也算低代码,旨在「通过少写代码,用更便捷的方式来实现原本需写代码的工作」。

说到低代码,喜欢的人特别喜欢,不喜欢的人很不喜欢,此外也有“假装”去喜欢的,也有喜欢得不明不白的,我现在对于低代码是有点儿喜欢的那种,不过只限于「在特定领域,实现需求的速度比熟练工程师写代码要快的场景」,这种场景下用起来真心会比较爽,可能也用得不爽的时候,但是这种不爽远小于他带来的效益减去原本敲代码的投入,也很值得将这类产品做到好用爱用。

其实低代码产品是比较难做成的,特别是大而全的那种,由于考虑因素过多,导致步调很慢,也很难做到很易用,导致一边投入很大,一边又急切上线落地使用,从而出现平台方觉得投入很苦,使用方觉得不太好用还需吃狗粮的矛盾,往往需经过忍耐很长时间才可「守得云开见月明」,不过很多都在没有见月明的时候就奄奄一息了。反而专门领域的比如说表单、表格、图表低代码搭建活的很不错。还有一些 BaaS 类单领域的活得也还可以,我个人更偏向「易用的可很轻快解决对应领域问题低代码产品方案」。

此外还有一个误区,有人会认为低代码是给所有工程师都可以使用的,其实我认为不太对,低代码最开始出现的初衷是为了解决「让不是程序员的人使用视图、组件、模板和表单等方式快速在不写代码情况下构建应用」,这里我们可以引申一下,低代码更适合两类场景,一类是「让不是这个领域的人也可以很快的写这个领域的应用」,第二类是「在特定领域通过抽象协议模型通过低代码的方式来快速实现产品」。

这里不多扯低代码的优缺点和喜好了,关于低代码产品内部已经有不少,也都比较熟,这里就不多加说明了,刚好最近在思考团队下一步的提效方式,我们来看看业界开源的低代码产品,说不定会有一些输入

一体化的低代码平台

一体化也即从后端到前端的实现全部给包括了,说实话,我认为这种是最难做的,特别在大公司里面,假如各司其职,同时多个团队协作的话比较难做起来,因为各方的标准协议、数据库模型结构均很难一致,但是假如前端、后端均在一个团队,有一整套统一的模型协议,还是有可能做成的,比如说如下这两个产品。

Appsmith

Appsmith 是一个用于构建内部应用的低代码开源框架,一个印度的创业公司弄的,很适合做企业后台管理系统,常用的 CRUD、Dashboards、数据报表啥的不在话下,Appsmith 有一种 Retool “开源版”的感觉。

在使用上和常规的开发套路很像,第一步画 UI 界面,第二步连接到数据源,第三步将数据源和 UI 界面串起来,第四步部署,只不过将原有编码过程变成了可视化过程。

此外还提供了大量的模板可供使用,包括 Project、Management Support、Human Resources、Sales、Marketing、Finance 等方向,有些思路对于不少低代码方向有一定参照作用。

Budibase

Budibase 官方宣称是一个你会喜欢使用的低代码平台,通过简单易用的方式来提高构建一个应用的速度。和 Appsmith 相比,是另外一种实现方式,此外 Budibase 有内置数据库、外部数据源、设计图形用户界面和自动化部分,在创建 UI 界面的使用使用的是偏设计的方式,整体而言会更加美观一点。

ToolJet

此外 ToolJet 也是一个不错的低代码框架,同样支持接入多种数据源,偏拖拽的方式实现前端的界面,包括对于 mobile 端的一些支持,此外使用的是 JS 比较友好。

除去上面外,nocobaseilla-builderrefine 这三款也可以去调研调研。

BaaS 领域的低代码

BaaS (Backend as a Service) 这个概念我是从 2019 年开始弄 Serverless 的时候开始了解到的,当时想着要是有很多好用的 BaaS 能力,那写 FaaS 函数会不知道有多爽。

对于想快速实现一个产品而言,使用 BaaS,开发人员可以专注于前端开发,而无需花费大量时间和精力来构建和维护后端基础设施,这使得开发人员能够快速构建应用程序,更快地将其推向市场。不过这一块当前在国内其实弄得没有国外那么好用和精致,国外有几个还不错的。

Supabase

Supabase 是一个开源工具的组合,使用企业级的开源产品构建 Firebase 的功能。Firebase 是谷歌旗下的一家 BaaS 云服务公司,可以让开发者通过 Firebase 的框架就可以简单地开发一个 App,无需服务器以及基础设施。了解了他是啥,就大概知晓 Supabase 是什么了。

主要功能是提供了数据库托管、身份验证和授权、自动生成 API、函数服务、文件存储等易用能力,相当于这些代码的实现使用者都不需要写了,只需去调用即可,此外提供了 JS/C#/Flutter/Go/Java/Python/Swift/Rust 等客户端库来供使用,更多可见文档

Appwrite

除去 Supabase,Appwrite 也是一个很有名的完整后端服务能力,可以当做他的竞品,功能差不多,通过视觉化界面极简了从零编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。基于 Docker 的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。

提供对应的软件服务,如账户、用户、团队、数据库、存储、云函数、多语言、头像等通用能力,并搭配对应客户端或服务端的开发套件,使用微服务架构方式让其更好扩展。

此外在数据库领域还有一个叫做 SurrealDB 的端到端的云原生数据库,适用于 Web、移动端、无服务器、后端和传统应用程序,通过简化数据库和 API 调用来减少现代应用程序的开发时间,消除对大多数服务器端组件的需求。

Headless CMS

敲代码快 10 年的后端同学应该对 Discuz、DedeCMS、WordPress 这种当时很火的框架很熟悉,还记得大学时期经常用 DedeCMS 去接商业项目,很快很爽。现在这一类偏后端解决方案进一步发展,变得更加简单、美观、好用了,这里简单介绍一下 Strapi 类的无头 CMS,简单而言就是只提供数据的内容管理系统,不关注 UI,内容优先。

Strapi

Strapi 是开源的无头 CMS,使用 JavaScript,很灵活完全可定制,支持不少插件,可以很快的生成一条 REST API 服务,整体使用起来对于前端同学来言还是比较熟悉的,可以一试。

Cube

Cube 是一个用于构建数据应用程序的 Headless 商业智能框架,使用任何来源的数据,将其组织成一致的指标,并将其用于每个数据应用程序。

此外除去 Strapi 、Cube 这两个比较有名的 Headless CMS,你还可以试试 payloadwebiny-js 这两个。

流程编排

看起来不少公司都有自己的服务编排的平台,对于大一点的厂,可能每一个 BU 都有一个,不过整体而言都很难做到好用,同时很难讲明白「服务编排比写代码要快要方便」这个点,大多数前期很热闹,中期很平稳,后期很难玩下去,任重而道远,不过很期待正在做的同学能够到达「守得云开见月明」,把这一块能力探得更深一点。

不过在一些特定工作流领域,有做得不错的,比如说 Automate 和 n8n 这两个工具,对于流程编排的建设可以参考一波。

Automa

Automa 是一个浏览器自动化工作流的浏览器扩展,使用连接块的方式来很方便的编排你的常用操作,有自动填充表单、截图、取数据、定时触发、操作浏览器、Web 交互等能力,可以将你重复的操作很好的交给这个工具,好比快捷指令。

他做得比较好的点是很易于使用,同时提供了不少开箱即用的能力,让人很快速就完成自己的需求。

n8n

n8n 是一个可扩展的工作流自动化工具,看了看对于做流程性的节点编排,逻辑控制还是很不错的,此外支持基于代码自部署。

其他奇特的

除去上面常用的低代码能力,还有三个很神器的,其实不少人常用的 Notion 笔记本身也是一个低代码工具,与之对应的开源实现叫 AppFlowy,还有一种通过编写配置 DSL Json 的方式来构建各个部分的功能的开源产品叫做 YAO,最后还有一种是 Airtable 模式的开源方式 NocoDB。

AppFlowy

如上所说,其实弄低代码的同学,很有必要去玩玩 Notion,已经被大量人玩出了花,此外可以试试这个开源的 AppFlowy,基于此,可以来看如何控制数据到界面的这个展示过程。

YAO

YAO 是一款开源应用引擎,使用 Golang 编写,以一个命令行工具的形式存在, 下载即用。适合用于开发业务系统、网站/APP API 接口、管理后台、自建低代码平台等。YAO 采用 flow-based 的编程模式,通过编写 YAO DSL (JSON 格式逻辑描述) 或使用 JavaScript 编写处理器,实现各种功能。

去年第一次见到 YAO 的时候,就被他的创新思路给吸引了,此外他自带的界面能力设计很不错,整体安装体验很顺畅,对于他的产品实现对于想做协议驱动的同学应该有不少借鉴作用。比如说下面这个系统居然是用 JSON 配置给写出来的,包括 UI 的展示。

NocoDB

NocoDB 是 Airtable 的一个开源替代品。Airtable 是啥呢?Airtable 是一个电子表格-数据库混合体,它具有数据库的功能,但实际上是电子表格,还可以把 文字、图片、链接、文档等各种资料整合在一起。反向来看 Notion 的大思路差不多,不过这个是重协作的使用场景。

NocoDB 的作用就是将 MySQL、PostgreSQL、SQL Server、SQLite 或 MariaDB 转换为智能电子表格,使用场景可以参考下面 gif,还是挺有想象空间的。

此外还有一个类 Airtable 领域的新起之秀叫做 ApiTable ,刚开源不久,整体而言做的比较精致,很推荐一玩,可以去研究研究。

最后

只能低代码说这一块是很卷了,不过找到了对应的场景,同时可以真正解决问题,比原本敲代码要快,那基本上是可以找到一个很好的发展空间。此外文章中有不少是个人自以为的东西,假如发现有不对的,欢迎指出。

Read More

工程师如何明白的做事情

【2022-12-09】最近给团队同学的一个分享,作为工程师而言如何明白的做事情。