背景
最近发现老婆每天都要捣鼓一个 excel
表格,并将表格发到群中,询问后才知道只是为了记录每天的事物变化。我想这接收方每次都要下载表格再打开看,太麻烦了,直接做个 web
表单,支持简单的增删改查就好了。
当我着手去做这件事的时候,才发现这么简单的一个功能,还需要去搭建后台服务,构建前端表格。虽然都是很简单的活,但感觉做起来毫无意义浪费时间,为了支持这种简单的需求。兜兜转转发现 低代码平台 好像挺适合的,顾找了几个试试,还是挺不错的。
什么是低代码平台
低代码平台是一种开发工具或环境,它们旨在简化应用程序的开发过程,减少编码量,提高开发效率,同时降低对传统编程知识的依赖。通过低代码平台,开发人员可以使用图形化界面和拖拽功能,而不需要手写大量代码,从而更快地构建应用程序。
低代码平台的优缺点
优点
-
快速开发:低代码平台允许开发人员使用可视化组件来构建应用程序,而不需要从头开始编写代码。这可以大大缩短开发周期,使得应用程序可以更快地交付。
-
降低技术门槛:低代码平台减少了对传统编程技能的需求,使得更多非专业开发人员也能参与应用程序的开发。这有助于减轻技术团队的负担,使业务人员也能更容易地参与到应用程序开发中。
-
可视化开发:低代码平台通常提供直观的可视化界面,允许用户通过拖拽和配置组件的方式来构建应用程序,而不需要手写代码。这对于那些不熟悉编程的人来说是一种很大的优势。
-
灵活性:尽管是低代码平台,但它们通常仍然提供一定程度的灵活性和自定义选项,以满足不同应用程序的需求。
-
适用于快速原型和中小规模项目:低代码平台在快速原型开发和中小规模项目中表现出色,因为这些项目通常不需要复杂的定制开发。
-
支持跨平台开发:有些低代码平台支持跨平台开发,使得开发人员可以一次构建应用程序,并在多个设备或操作系统上运行。
缺点
-
复杂度有限:对于非常复杂的项目和高度定制化的需求,低代码平台可能无法满足所有要求。在这种情况下,传统的编程方法可能更为适用。
-
性能问题:一些低代码平台可能会对应用程序的性能产生一定程度的影响,特别是对于需要高度优化和资源管理的应用程序。
-
可维护性:虽然低代码平台加速了开发过程,但有时可能会牺牲代码的结构和可维护性。在长期维护的角度考虑,这可能需要更多的注意。
有哪些开源的低代码平台
由于时间精力有限,只找了几个 star
数量比较高的试了下。
以下数据来源时间:2023/8/4。
appsmith
GitHub地址(star:28.5k)
您可以构建任何东西,从简单的CRUD应用程序、管理面板、仪表板到自定义业务应用程序和复杂的多步骤工作流。支持多种数据源以及 api
调用。
我目前就是用的这个来构建表格的,挺好用的。
buildbase
GitHub地址(star:18.9k)
用于在几分钟内创建内部工具、工作流和管理面板的低代码平台。支持PostgreSQL、MySQL、MSSQL、MongoDB、Rest API、Docker、K8s等。
这个界面我挺喜欢的。
amis
GitHub地址(star:14.5k)
前端低代码框架,通过 JSON 配置就能生成各种后台页面,极大减少开发成本,甚至可以不需要了解前端。
百度的东西,对国人会友好点。
lowcode-engine
GitHub地址(star:12k)
一套面向扩展设计的企业级低代码技术体系。
阿里的,比较适合企业场景。
yao
GitHub地址(star:6.3k)
YAO 是一款开源应用引擎,使用 Golang 编写,以一个命令行工具的形式存在, 下载即用。适合用于开发业务系统、网站/APP API 接口、管理后台、自建低代码平台等。
低代码平台的一些感想
实际体验了几款,如果说只是像我开头说的,建个表格做增删改查,感觉现在的低代码平台都挺成熟的(各种响应式布局,自定义设计等等),拖拖拽拽就能生成网页,找自己喜欢的用就行了。
其实对于程序员来说,如果是单纯的做 web
,目前的前后端框架都是很成熟的(例如我所熟悉的 vue element
go gin
),做个应用出来也挺快的。
想要直接通过低代码平台来完成也不是不行,但是低代码平台想要做复杂的应用,前期也是需要花时间去了解其使用的,也有一定的入门门槛。最主要的是不知道有没有坑 =-=,如果有坑了,官方不修复,就得自己去看源码,不如自己撸一套合适了。
低代码平台相对来说还是可以借鉴参考其实现方式的。例如在工作中,已经确定了开发框架,并构建了开发规范,开发新项目或者新功能时,其实框架结构代码就可以自动生成,自己写个小工具生成代码可以节省不少工作时间(gozero
等),最终都是为了效率提升。
总结
总的来说,低代码平台在适合的场景下可以显著提高开发效率和降低开发成本,对于快速原型、中小规模项目以及业务人员参与开发的情况非常有用。但对于复杂的、高性能要求以及高度定制化的项目,传统的编程方法可能更为适用。
参考
- Github-low-code-platform
- 推荐20个开源的前端低代码项目