前言
为什么要写这本书
3年前我在就职的公司开发了一个低代码平台,并将其投入生产,该平台投产后在公司内部获得了大量好评。近些年,国内的大厂如腾讯和阿里巴巴等都推出了自己的低代码产品,规模小一些的互联网企业也在开发低代码平台以求提高App的开发效率。Web技术发展到目前这个阶段,程序员开发一个能用的低代码平台已经不是难事,但开发一个好用的低代码平台却相当困难。在这里,我希望把自己关于低代码平台的思考和经验分享出来,给想要了解低代码平台或者正在设计低代码平台的读者提供一些思路和参考。
3年前我开发的低代码平台虽然能创建出App,但存在如下5个问题:
1)创建的App不能独立于低代码平台运行。
2)低代码App的JSON Schema不能独立于低代码平台存在。
3)低代码App没有区分编辑态和运行态,只引入了一个只读状态去判断页面上的组件能否拖曳、删除或编辑属性。
4)当处于编辑态时,低代码App没有纯净的运行环境。
5)不存在组件市场,低代码设计器能使用的组件全部写在项目内。
本书介绍的低代码平台解决了上述5个问题。读者通过本书将了解到下面4个方面的内容:
1)JSON Schema保存到Git仓库中,它不影响线上运行的低代码App,只用于低代码App各版本的预览和重新编辑。
2)线上运行的低代码App与JSON Schema脱钩,即便低代码平台停止服务,线上的低代码App也能正常运行。
3)低代码App在编辑态时,设计器和渲染器位于不同的Frame,此时低代码App有纯净的运行环境,这涉及跨Frame拖曳组件。
4)开发脚手架,并将其用于开发、调试和上传低代码组件,这使得设计器能使用丰富的组件去开发低代码App,同时让低代码组件和低代码平台解耦。
读者对象
❑ 有React、Node.js和数据库基础,想开发低代码平台的读者;
❑ 想全面了解低代码平台组成及原理的读者;
❑ 对开发低代码平台感兴趣的读者。
如何阅读本书
本书分为4篇。
❑ 基础篇(第1章)介绍学习本书必备的理论知识,涉及的知识点有React Ref API、React Hooks、React Context API、MobX和MongoDB等。要想在本地运行本书介绍的低代码平台,需要在自己的计算机上安装MongoDB。
❑ 需求分析篇(第2章和第3章)介绍业务场景的需求和开发低代码平台的需求。
❑ 实战篇(第4~8章)是本书的重点部分,介绍如何开发低代码平台,提供了大量的代码示例,涉及的内容有低代码架构策略、低代码组件、设计器、渲染器和代码生成器等。
❑ 基础设施篇(第9章)重点介绍如何使用GitLab CI/CD构建持续部署的Pipeline、如何搭建npm私有库、如何搭建LDAP账号管理系统等。
如果你是一名经验丰富的软件工程师并且对低代码已有较多了解,建议从第4章开始阅读;如果你对低代码了解得不多,那么请从第1章开始学习。
本书提供的开源项目的源码位于https://github.com/react-low-code,建议读者将涉及的开源项目复制到自己的计算机上,这样可以边学习本书边调试,从而更好地理解本书的内容。
勘误和支持
由于我的水平有限,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。你可以将书中的错误发布到本书开源项目的issue页面中。如果你遇到其他问题,也可以访问issue页面并留言,我将尽量在线上为读者提供满意的解答。书中的全部源文件可以从https://github.com/react-low-code下载。如果你有更多的宝贵意见,欢迎发送邮件至1395294694@qq.com,也可以我运营的公众号“前端知识小站”(账号:heyu-web)与我联系或加入读者群。
致谢
感谢我的爱人在过去一年多的时间里始终支持我写作,他的鼓励和帮助使我顺利完成全部书稿。