引言
最近几年都在讨论什么呢?
云技术、中台、敏捷、大前端、低代码。
你会发现上面的几个技术,本质上实际上并不是面向开发者的,而是面向老板,或者说面向资本的。
因为可以多快好省,所以才得到吹捧。
不论我们是否愿意,一切都会向着更快、成本更低的方向发展。打不过就加入,搞清楚背后的原理。
low code 和 no code 的概念就像公司内部 架构部门干的 脚手架之类的 + RN 的 ignite 这种代码模版 + 可视化的拖拽组件(有点梦回 dreamweaver) = 手动开发了 80%的 预设 layout 的项目前端代码。剩下 20%再写代码修修改改。
像这样,减少了前端 dev 的需求量…
前期大量重复的工作量 转移到了一些非技术,比如设计身上(开发的最终目的就是不再需要开发)
像这种 low code 适用于 埃森哲 IBM 这种, toB 卖解决方案, 如 SAAS 项目、企业信息管理系统(MIS)、内部办公系统(OA)、企业资源计划系统(ERP)、客户关系管理系统(CRM)等。或者这种”人人都是产品经理开发”的微软 PowerApps 和 wix 还有个用户定制简单 h5 的易企秀, 还有个 list10 Best Low-Code Development Platforms In 2021
比如一个花店 餐馆 想买个订单 顾客管理的系统,基本上 layout 大差不差,在相似 80%的基础上商家应该会想要点个性化,那就是剩下的 20%了
纯代码开发就像使用 photoshop,低代码类似美图秀秀,零代码就是美颜相机。
低代码 支撑 微服务
架构流程
工具-客户端基础设施上。它适合于 快速的 MVP 构建,并且生成的代码还应该方便修改。
后端应该包括:
- 大量可用地现有服务。身份验证、安全性、推送能力、地图等等
- 快速构建出后端服务。比如内部有 Serverless 或者 FaaS 方案
- 方便与第三方服务集成
- 灵活性。支持多语言等
前端作为 api 消费者,不可避免要采用装饰器模式,封装后端 API 成统一的方式:比如使用 BFF,对接契约如 swagger,查询语言如 GraphQL
模型定义上 需要一个 DSL(Domain special language),比如用 json,映射 UI 对组件
原型设计上 比如一个登录业务,需要考虑的点包括:1. 成功登录。2. 取消登录。3.登录失败。包括一些通用的逻辑处理如 1. 登录成功。保存 Token,并返回历史页面;2.登录失败。弹出一个自定义内容的提示框。
前端架构上
大致分为 3 块要维护:1. 模版 2. 数据的 CRUD 3. 函数;
按组件来分,又有几个例子:- 无限加载 list
- form
- card
- 富文本的展示
- 常见图标,已有很多成熟的库比如
echarts
,二次封装成 DSL 语言,mapping 上对应的逻辑代码块 - 跨设备的响应式布局。比如移动端使用无限加载 list,correspondingly 大尺寸桌面端使用 pagination
后端架构上 微服务颗粒度尽量小,api 规范化统一格式统一权限管理,大量 api 服务,快速集成第三方。
推荐的工具库列举:
拖拽式 Web 建造工具:https://grapesjs.com/
基于 Flow 的编程工具:https://noflojs.org/
DSL 布局生成器:https://github.com/ijzerenhein/autolayout.js/
可视化数据流编辑器:https://github.com/Gregwar/blocks.js
基于 React 的内容生成器:https://github.com/vigetlabs/colonel-kurtz
https://houbb.github.io/2021/03/09/low-code-01-overview
https://www.techug.com/post/codeless-programming.html