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

标签: | 发表时间:2023-02-27 07:48 | 作者:
出处:https://tw93.fun

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

Categories:  Technology2023-01-02

随便扯扯

可能大家谈到低代码想到更多的是低代码搭建页面的平台,内部不少也是此种,其实对于偏逻辑编排、服务 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,刚开源不久,整体而言做的比较精致,很推荐一玩,可以去研究研究。

最后

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

相关 [代码 产品 tw93] 推荐:

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

- -
可能大家谈到低代码想到更多的是低代码搭建页面的平台,内部不少也是此种,其实对于偏逻辑编排、服务 BaaS 能力的偏可视化方式其实也算低代码,旨在「. 通过少写代码,用更便捷的方式来实现原本需写代码的工作」. 说到低代码,喜欢的人特别喜欢,不喜欢的人很不喜欢,此外也有“假装”去喜欢的,也有喜欢得不明不白的,我现在对于低代码是有点儿喜欢的那种,不过只限于「.

产品

- - 人月神话的BLOG
最近一直在思考产品规划和产品设计研发的事情,原来谈的比较多的都是关于咨询和实施方面的内容,而对于软件和信息化行业来说,真正可持续的盈利模式仍然是有核心竞争力的产品,能够在垂直细分领域具备有定价权解决实际业务核心问题的产品. 有时候我们在考虑类似ERP类综合管理软件产品化的困难,但是实际在某个垂直细分领域,进行核心产品开发并实现产品化是完全可行的思路.

代码重构

- - ITeye博客
随着程序的演化,我们有必要重新思考早先的决策,并重写部分代码. 代码需要演化;它不是静态的事物. 重写、重做和重新架构代码合起来,称为重构.    当你遇到绊脚石  ---  代码不在合适,你注意到有两样东西其实应该合并或是其他任何对你来说是"错误"的东西  -------- . 如果代码具备以下特征,你都应该考虑重构代码:.

产品五问

- xiangqian - 阮一峰的网络日志
开发一个产品的时候,应该问自己五个问题:.   2、他们用这个产品来解决什么问题.   3、这个问题对他们而言有多重要.   4、我们的方法是否足够简单方便.   5、他们要付出的代价与所得是否匹配. 当我们对市场进展不够满意时,检视这5个问题比检视广告更有效. (上面这段话是白鸦在新浪微博里转发的,太重要太正确了.

产品三俗

- - 所有文章 - UCD大社区
有三种流行的产品要素“动态流、瀑布流、奖章”,我称之为产品三俗,容易因其流行而被滥用. PM选择它们有可能是因为“时髦”“标配”“别人都在用”,这很糟糕. 恰好动态流和奖章我都折腾过,多多少少吃过一点亏,总结如下. 动态流给产品带来的好处很多,比如以用户为节点来实现近乎于完美的信息分发网络. 但在采用这个设计之前,首先要理解,在用户层面上其本质是“订阅”,而用户接受动态流的根本原因是,订阅的方式提高了他获取优质内容的效率.

产品经理

- - 人月神话的BLOG
再谈下怎样能够算得上一个合格的产品经理,一个人不是说你能够有产品构思,能够画点原型,能够做团队和项目管理就是产品经理. 苏杰原来有本书叫《人人都是产品经理》,看了后大家可能会觉得做一个产品经理是挺容易的一件事情,但是自互联网提供和设置了大量的产品经理岗位后,产品经理这个词基本就烂大街了. 我们如何来界定一个产品经理,如果简单点来讲可以理解为 根据自己长期的项目和运营实践,通过自己的敏捷洞悉能力和分析能力,能够将当前的市场需求或潜在的市场需求转化为具体的产品需求,并能够核心的定义产品功能模型和价值输出,同时能够通过项目和团队管理的能力,凝聚一个小组形成一个真正的团队,将自己的产品构思付诸于最终产品实现的人.

代码小比较

- Tim - 斯巴达第二季
判断上百万个4k的buffer是否为全0,我最先想到的办法是:zero_buffer = malloc(4096);. /* 循环百万次读取buffer */.         /* 全0 */. 由于好奇,看看shell工具cp的代码,它的解决办法是:. /* 循环百万次读取buffer */.         /* 全0 */.

两行 JavaScript 代码

- MessyCS - Dreamer's Blog
最近看到了两行 JavaScript 代码,很受启发. 在 JavaScript 中,我们可以获取HTML元素的属性值,例如 element.id. 但是,因为 for 和 class 是 JavaScript 中的关键字,所以在 JavaScript 中这两个属性名称分别用 htmlFor 和 className 代替,于是在封装的时候需要先对这两个属性进行特殊判断.

Netty代码分析

- LightingMan - 淘宝JAVA中间件团队博客
Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序[官方定义],整体来看其包含了以下内容:1.提供了丰富的协议编解码支持,2.实现自有的buffer系统,减少复制所带来的消耗,3.整套channel的实现,4.基于事件的过程流转以及完整的网络事件响应与扩展,5.丰富的example.

python代码调试

- - 阿里古古
【转自: http://blog.csdn.net/luckeryin/article/details/4477233】. 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序. 例如,有模拟税收计算的程序:. debug_demo函数计算4500的入账所需的税收. 在需要插入断点的地方,加入红色部分代码:如果_DEBUG值为True,则在该处开始调试(加入_DEBUG的原因是为了方便打开/关闭调试).