范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

无代码编程

  中台之后,便是无代码编程。
  规模化的组织,经常要面临这样的挑战:每个应用的基础设施是相同的,部分的代码也是相同的,甚至于它们可能只是数据模型不同而已。结果却导致了,他/她们要一次又一次地重新编写一个应用。
  对于一个新的应用而言,它需要对接大量的三方(非自己团队)服务。服务之间的不断变化 ,导致了对应的使用方也需要发生变化。不断变化的业务,导致了前台的设计不断变化。为了应对快速谈的的前台服务,后台便诞生了中台,以提供快速的响应能力。而随着中台进一步沉淀,从某种形式上趋于稳定,而前台仍然需要快速地响应能力。
  于是乎,作为一个前端开发人员,我们不断提炼和复用代码,想着的模式在上一篇文章 《代码复用到低代码(上):提升开发效率的 7~8 种方式》 中提到了:
  脚手架
  组件库
  模式库
  模板和模板应用
  对应的,我们还创建了一系列的 CLI、工具集、编程器插件以及设计系统,以完成整个系统的快速开发。然而,我们还缺少一套有效的工具,来统一化的管理这些工具。
  换句话来说,就是:我们需要一个前端的中台,它便是无代码/低代码编程。
  什么是无代码编程?
  无代码/低代码是一种创建应用的方法,它可以让开发人员使用最少的编码知识,来快速开发应用程序。它可以在图形界面中,使用可视化建模的方式,来组装和配置应用程序。开发人员可以直接跳过所有的基础架构,只关注于使用代码来实现业务逻辑。
  当然,从开发人员的角度来看,降低代码量,可能是:
  框架本身处理了复杂性。毕竟 "复杂度同力一样不会消失,也不会凭空产生,它总是从一个物体转移到另一个物体或一种形式转为另一种形式。"
  代码生成减少了工作量。大量的复制、粘贴需要更多的时间。
  流程
  只是凭借这个概念,我们是无法理解无代码编程的。于是,我画了一张图来展示相应的架构和流程:
  低代码编程流
  依照我的观点来看,我将无代码编程分为了两部分:
  用于构建 UI 的编辑器——一种在线的拖拽式 UI 设计和页面构建工具
  用于编写业务逻辑的流编辑器——通过流编程的方式来编写业务代码(多数是对于数据的处理)
  UI 编程器。为了设计出我们的 UI 构建器,我们需要准备好一系列的基础设施:
  UI 编程器。用于拖拽式设计 UI。
  空白脚手架。一个带有完整的应用生命周期的项目,但是它是一个空白的项目——用于我们在构建 UI 的过程中,随时随地的添加组件和代码。
  设计系统。我们需要一个完整的组件库,大量的页面模板,以及一定数量的模板应用,减少相应的开发工具量。
  代码片段集。它将设计系统中的组件库进一步实例化成代码段,在完成编辑后通过 CLI 来动态编辑代码。
  DSL(领域特定语言,可选)。中间生成物,用于隔离框架与设计。
  流编程器。随后,为了在
  流编程器。用于拖拽式、输入编写业务代码。
  后端服务。如果不能提供现成的后端服务,则需要拥有一个标准的 API 规范,以及相应的 mock server。
  模式库。包含相应的业务处理代码,如通用的登录、数据获取、UI 交互等。
  DSL(领域特定语言,可选)。同上
  当然了,我们还需要能实时预览构建出来的应用。随后,我们执行了构建,而后构建出了一个半成品应用。开发人员只需要在它的基础上开发应用即可。而在开发人员开发的过程中,我们可以设计一系列的工具,来帮助开发人员更快速地构建应用。
  编辑器插件。包含设计系统、模式库等的自动完成代码,以及组织内部常用的代码库。
  调试工具。对于混合类型的应用而言,我们还需要一个开发工具来快速构建应用。
  从上述的流程上来看,无代码编程还具有以下的特点:
  拖放式界面。又或者是可视化模型——基于节点和箭头
  基于视觉的设计。
  可扩展的设计。如对于插件、插件商店,社区等一系列的支持。
  跨平台功能。支持 PC Web 应用开发,支持移动应用构架等。
  强大的部署后。即平台包含着整个应用的生命周期。
  拥有丰富的集成支持。可以随意的找到需要的组件,以及对应的后台服务。
  配置化。它也意味着大量的自定义配置。
  自制的领域特定语言(可选)。用于构建时优化。
  优缺点
  相应的,它具有以下的一些特点:
  高效。不用多说,节省时间和开发成本。
  有限的 Bug,安全性。
  低成本。其所需的预算非常有限。
  易用(取决于设计)。
  开发速度更快。
  开发过程中的 AI 。
  维护成本低。
  对应的相应的缺点有:
  仍然需要编程技能。
  受限的自定义能力。
  可扩展性成了新的问题。
  集成受限。
  就当前而言,低代码开发平台通常分为两大类:
  对于外部:制作简单的产品,如网络移动应用程序
  对于内部:为您的团队或企业创建业务应用程序
  诸如只使用 CRUD、表单、验证、简单聚合、分页等简易的服务。最常见的例子就是表单构建了,诸如金数据这样的应用,便是可以直接通过拖拽元素来生成,相应的开源实现有 jQuery Form Builder。对于开发人员来说,我们只需要定义好数据模型,再通过拖拽来决定元素的位置即可。从这种角度来看,只要能使用 Serverless 构建的应用和服务,都可以直接使用低代码开发模式。
  开发流程对比
  从我们的理解来看,传统应用的开发流程是:
  分析、设计、确认、规划需求
  设计系统架构
  搭建前后端项目。选择技术栈、从零开始搭建或者从脚手架中创建。
  搭建持续集成。
  创建线框图和高保真原型。
  设计数据模型,定义前后端契约,即 API URI、方法、字段等。
  前后端实现业务逻辑。
  前端实现 UI 页面。
  集成第三方后端服务。
  功能需求测试(DEV、QA、ST、UAT)
  跨功能需求测试(安全性、性能等)
  部署到生产环境。
  而,低代码开发流程:
  分析、设计、确认、规划需求
  选择需要的第三方 API
  在可视 IDE 中绘制应用程序的工作流程、数据模型和用户界面。
  连接 API——通常使用服务、函数发现。
  编写业务逻辑(可选)。手动代码添加到前端或者自定义自动生成的 SQL 查询。
  用户验收测试。
  部署到生产环境。
  从步骤上来看,无代码编程少了几个步骤。这些步骤都因为大量丰富的内部系统集成,而变得非常简单。
  适用场景
  就当前而言,无代码编程实际上是一种高度的场景预设的模式。因此,它存在一定的适用场景:
  模型驱动开发。
  快速 UI 构建。
  极简的业务功能。使用这样的工具,也意味着,我们对于交互和可
  IT 资源受限。在资源受限的情况下,能快速开发出符合业务需求的应用最重要。
  而从流程上来看,对于一部分的应用来说,我们并不能实现无代码编程——存在一些业务上的不同之处。因此,多数场景之下,只是实现了低代码编程。
  若是想真实的无代码编程,则需要一些更特定的场景:
  设计表格(输入数据)
  创建报告(组织数据)
  常规调度和自动化过程(操纵数据)
  更多的场景正在探索中。
  无代码编程的挑战
  无代码编程,除了需要准备好上述的一系列基础设施,还不可避免地会遇到一系列挑战。
  谁来写这部分代码?
  客户端的基础设施准备。
  服务端的服务平台搭建。
  统一用户体验设计。设计出一系列能便利组合的组件,及对应的模板页面。与此同时,它们还能适应于不同的风格,即有多样性的主题支持。
  DevOps 流水线设计。低代码编程,依赖于一系列的自动化工具,以实现构建、调试、部署以及维护,同时还包含应用的测试。
  领域语言设计。
  自动化测试。如果我们的前端代码是自动生成的,那么我们还需要对它们进行测试吗?这是一个好问题,而如果代码是自动生成的,那么测试也应该是自动生成的。毕竟要在平台上,编写大量的自动化测试,以保证平台的质量。
  其中,有一些部分略微复杂一些,我们大概可以探索一下。
  谁来写这部分代码?
  在我们创建这样一个平台和工具时,我们要考虑的第一个问题是,我们这个工具是为谁写的?
  没有编程经验的人。如业务人员,他/她们对于业务系统有着非常丰富的经验。这也意味着,我们
  有编程知识,但是没有经验的人。
  有一定经验的开发人员。
  有丰富经验的开发人员。对于专业的人来说,自动化就意味着缺少灵活度。甚至与自己编写相比,他/她们要花费更多的时间来修复生成的代码。
  显然,对于相当有经验的开发人员而言,这个工具并不一定是他/她们所需要的。
  客户端基础设施
  从我的理解来看,它适合于 快速的 MVP 构建,并且生成的代码还应该方便修改,而不是诸如早期的 DreamWeaver 或者 FrontPage 这样的工具。
  而与此同时,由于面向的开发人员水平不同,我们所需要做的工具也不同:
  支持云构建和调试。
  GUI 编程应用。
  代码生成。
  设计系统体系构建。组件库搭建,模板应用创建等。
  …
  更难的是,容易让开发人员能接受代码生成。
  服务端
  对于一个低代码平台而言,它对应的后端应该:
  大量可用地现有服务。身份验证、安全性、推送能力、地图等等
  快速构建出后端服务。若是有内部 Serverless 或者 FaaS 方案,可以说是再好不过了。
  方便与第三方服务集成。
  灵活性。支持多语言等。
  统一的后端服务 API,对于后端服务来说,我们需要一个通用的范式。所有的 API 应该按照这样的范式来设计。不过,作为一个 API 的消费方,我们可能没有这么大的权力,但是我们可以采用装饰器模式,即封装第三方 API 成统一的方式。为此,我们采用的方式,仍然是:
  契约。诸如 Swagger UI,它可以直接创建一个简易可用的服务。
  BFF。即我们一一去按我们的需要,去封装这些第三方应用。
  查询语言。与自己编写 BFF 相比,更简单的方式是采用:GraphQL这样的后端查询语言,便捷性更高、模式更加灵活。
  在开发前的设计期里,我们需要首先设计出对应的领域模型。
  领域语言设计
  低代码环境使用(图形)建模语言来指定整个系统、产品的行为。它意味着:
  将数据结构、领域模式应用到程序的各个层级中。
  将业务规则、决策融入到应用中(层级)。
  这也就意味着,我们需要设计一个模型语言。而它对于我们而言,实际上是领域特定语言(DSL)。如下是一个简单的 DSL 示例,用于描述使用到的组件:
  {
  "style": "",
  "id": 2,
  "blocks": [
  {
  "content": {
  "content": "content",
  "title": "hello"
  },
  "type": "card"
  }
  ]
  }
  除此,我们还需要设计对应的布局 DSL,诸如于:
  H:[circle1(circle1.height)] // set aspect-ratio for circle1
  HV:[circle2..5(circle1)] // use same width/height for other circles
  H:|[circle1]-[circle2]-[circle3]-[circle4]-[circle5]|
  V:|~[circle1..5]~| // center all circles vertically
  最后,我们还需要将流代码,转换为真实的项目代码。三种类型的 DSL 结合下来,都不是一个轻松的工具。
  原型设计
  写好现有的组件,通用型接口。如常见的登录接口,。对于使用登录接口的业务来说,它们只关心三部分的内容:
  成功登录。
  取消登录。
  登录失败。对于客户端而言,可以视为取消登录。对于服务端来说,则可能是密码错误、用户名不存在、账号被锁定等。
  对应于以上情景,又有一些通用的逻辑处理:
  登录成功。保存 Token,并返回历史页面。
  登录失败。弹出一个自定义内容的提示框。
  这些代码是相似的。
  前端原型
  在一些简单的前端应用里:
  模板。只是在使用这些模板,再为这些模板设置相应的属性,绑定对应的值。
  数据。其过程都只是在各种保存变量的值,并 CRUD 这些变量的路上。为此,我们需要一个数据处理的管道架构设计,用于处理这些值。
  函数。事实上,我们的所有函数都只是一些管理函数,只用于处理这些对应的逻辑。
  这些常见的功能都可以做成一些组件,它们对于某些应用来说,代码相应的重复。
  无限加载页面。只需要绑定上 API,再控制一下元素的显示与隐藏即可。
  表单。定义好字段即类型,对应的前后台逻辑都有了。除此,我们还需要为它们自定义好常见的规则,如正则表达式。而一旦表单之间有联动,那么这个组件的设计就更加麻烦了。
  卡片式元素。
  表单和表格展示。
  常见图表。事实上,已经有一系列的图表工具了,我们只是在它们在基础上,进行了二次封装而已——使得它们可以变成领域语言的形式。
  高级的响应式布局。与每个应用独立开发布局不同的是,低代码平台需要提供一套强大的自定义、响应式布局设计——即要满足移动端的通用模式,还要满足桌面版的通用模式。如对于大量数据来说,桌面端使用的是 Pagination,移动端使用的是无限滚动。
  后端原型
  事实上,对于后端来说,低成本平台意味着,代码生成及服务生成。而服务本身是有限的,既然是业务上发生了一些变化,后端服务也可能并不会发生变化。
  它也意味着:
  微服务化。每个后端服务要尽可能的小。
  API 规范化。即采用统一的 API 格式,接受统一的权限管理
  大量的 API 服务。
  快速集成第三方服务方案。集成第三方服务是开发应用不可避免的情况。为了应对这个问题,我们需要做准备好对应的创建服务逻辑,传入第三方服务所需要的参数,便可以直接生成我们的转发服务。
  那么,问题来了,既然如此,我们是否能提供一个定制的工具呢?让每个人可以创建自己的组件流?
  答案,显然是可以的。
  概念证明
  于是乎,在我最近设计的 PoC (概念证明)里,采用的是 Anguar 框架。相应的基本思想如下:
  使用 Material Design 作为组件库,使用 CDK 的 Drag 来实现拖拽功能。每个拖拽的组件,称为 element(元素),由 ElementDispatcher 由根据数据生成对应的组件。可拖拽的部分由两部分组成:布局+元素。
  UI 构建完后,生成对应的 DSL,目前采用的是 JSON。毕竟数据结构是最简单的领域特定语言。
  借由 Angular Schematics 解析这部分的 DSL,来生成相应的项目代码。
  其它
  相关开源项目:
  拖拽式 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://www.process.st/low-code/
  https://medium.com/@stefan.dreverman/decisions-to-take-for-your-low-code-architecture-c0768b606f
  https://medium.com/@stefan.dreverman/analyzing-coinmarketcap-data-with-neo4j-4930ba0068e1
  https://www.outsystems.com/blog/what-is-low-code.html
  https://medium.com/@stefan.dreverman/starting-a-low-code-application-architecture-13170fcd6fc7
  https://www.quora.com/What-is-low-code

设计模式13建造者模式建造者模式将一个复杂的对象构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的为什么说富豪有一百种方法和普通人拉开差距?大家好,我是老李。今天和大家聊聊富豪如何保住自己的财富。前段时间,我看到一篇很有趣的文章,是关于顶级富豪的那些花式避税的招数。虽然那篇文章主要针对的是美国的超级富豪,但它山之石可以麻雀虽小五脏俱全零跑T03首先,我们按照常规套路来了解下这款零跑T03。零跑T03的外观采用了呆萌可爱的设计风格。大量的圆形元素有望获得更多女性消费者的青睐,特别是在细节方面,零跑T03采用了新能源汽车常有如何从互联网新手成长为专家型社群营销?我们生活在互联网时代电商微商自媒体等渠道打破常规的销售方式,更是推动了女性在职业中的地位。互联网年代又称粉丝经济,商家重点圈起粉丝,属于自己客户人群,方式多样化。小蚱蜢下面给大家介用户增长怎样分析用户分层及对应策略?互联网营销中的用户增长,用户分析极为重要,在营销中用户分析一单分析错或者没有解决用户需求,那么后面中的阶段都会是一个危险的信号。就好比扣子一单扣错后,后面不管怎么顺畅,结果都是有误吴奇隆10。5亿聘礼将赴港上市,刘诗诗太幸福?大家好,我是老李。近日,许久没作品出现的吴奇隆和刘诗诗因公司拟上市的新闻上热搜,有媒体人更是将该公司称为刘诗诗结婚的10。5亿聘礼,这是怎么回事?7月20日,由吴奇隆创立的稻草熊影婚前财产变成夫妻共同财产的4种方式!大家好,我是老李。女孩子都想嫁给有钱人,然而嫁给有钱人,她们就能够变成有钱人了吗?当青春不在,容华老去,当有更年轻更美丽的女孩取代她们的位置,她们不得不离开的时候,她们能够成为有钱95后毕业负债10万,年轻人为什么存不下来钱?大家好,我是老李。在开始今天的话题之前,我之前看了一段视频年轻人人均欠款七八万,她刚毕业欠款10万!很多时候,我们不禁要问超前消费,精致穷伴随80后90后成为消费市场主力,这月买下万达断臂求生,三连卖回血70亿现金流大家好,我是老李。疫情席卷全球,股市也随之暴跌,许多行业都面临着严峻挑战,餐饮业首当其冲。全球最大的咖啡连锁店星巴克(Starbucks)关闭了数百家门店。旅游业也同样惨不忍睹,由社群裂变掌握6个技巧提升裂变模式!作者小蚱蜢简介8年互联网营销实战经验,乐于为大家分享实战经验。寻找互联网营销同行交流经验提升自我!一提供价值裂变的本质是给用户提供优质的价值,只有价值才能让用户拉新人进行再次裂变。新入场的越级搅局者解析零跑C11零跑C11目前有三款配置车型可以选择,豪华版尊享版和性能版,豪华版和尊享版采用后置永磁同步点击,大功率200kW,峰值扭矩360Nm。尊享版续航里程达到610公里,豪华版作为入门版
iOS15。0版本已推送,推荐升级今天凌晨一点半左右,iOS15。0版本推送了,个人体验一段时间后,个人建议可以升级。推荐理由如下一安兔兔跑分结果供参考下图是iOS15。0安兔兔的三次跑分结果,一次46万多,两次5iPhone13更环保了,但你买到二手机的概率更大?刚发布不久的iPhone13系列,在环保上又前进了一步包装盒去掉了塑料膜。买过电子产品的人都知道,包装盒外的那层塑料膜是一层屏障,也是不少用户对产品全新未拆封概念的心理象征。最近,2021年二手手机推荐到2021年,芯片升级幅度越来越大,放眼望去,18年的骁龙845旗舰处理器到现在已经与现在的中端处理器持平了。不过,一些老手机,在屏幕无线充电以及nfc蓝牙体验上,还是要优于现在的更紧凑的三星GalaxyS22系列与iPhone13的尺寸比较IceUniverse发布了两张图片,将三星GalaxyS22与其其他兄弟姐妹以及其前身和目前的iPhone13进行比较。剧透一下这是一款紧凑的智能手机。迄今为止的传言表明,Gal如何才能把农村土特产产品做好?传播民族文化,认真履职尽责,保证农村土特产品质,维护消费者的合法权益,让世界充满爱,让世人感受品读土特产的享受,杜绝造假以次充优的违法行为,确保购买回头宣传祈祷所有的卖点,最后都回怎么买到适合的手机随着手机功能的日益增多,手机在人们生活中的地位越来越高了,手机的多样化也让不同的人群对不同的手机有着不同的要求。下面我们来盘一盘那些不同人群适合使用的手机。商务人士一般都是需要电池iPhone终于要换脸了?打孔屏的iPhone14你期待吗?明明iPhone13还在购物车里预约抢购,哪曾想现在有关iPhone14的爆料都已铺天盖地。要说爆料就爆嘛,咱图一乐就完事了,可上来就直接爆猛料,这诱惑谁顶得住啊!近期,苹果爆料大荣耀笔记本销量V型反弹,9月26日继续发力全场景生态最近,荣耀在笔记本电脑领域的多个举动引起了很多人的关注。首先,据荣耀内部信透露,荣耀笔记本4个月时间市场份额从1。4的低谷回升至7月的6。6,成为2021年上半年全行业增速最快品牌两款折叠屏iPhone新机亮相,iPhone12首当其冲沦为百元机遭疯抢据BusinessKorea报道,援引业内消息人士的话说,苹果有望在2023年推出首款折叠智能手机,从2016年开始申请相关专利,目前正在研发上下两种折叠智能手机。折叠屏和屏幕左右海康威视现状分析公司简介(摘抄自官网)海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商,业务聚焦于智能物联网大数据服务和智慧业务,构建开放合作生态,为公共服务领域用户企事业用户和中小企魅族18s新机重磅曝光,魅族18低至百元,任性堪比爱疯此前,魅族宣布将于9月22日举办魅族秋季新品发布会。届时将推出魅族18s18sPro18X三款新品。近日,一些博主还展示了这些新品的更多细节。值得一提的是,由于魅族新机的曝光,导致