首页 > 其他分享 >从业务角度出发来构建低代码应用

从业务角度出发来构建低代码应用

时间:2022-12-27 18:01:22浏览次数:64  
标签:模型 组织 代码 表单 DSL 构建 数据 出发

低代码确实会少写代码,其概念也不同于复制修改的模板技术,不同于开箱即用的全站配置,不同于趋近于零代码的图形化编程。如果低代码是可以普遍推广的,那么就应该是普遍被业务人员所接受的。那么站在业务人员的视角,构建低代码应用的思路到底是怎样的呢?

业务背景

业务人员应熟悉并使用

  • 协同办公:包括组织结构、岗位职责、消息通知,复杂的包括电子邮件、VPN、文档、机器人助手等
  • 数据信息:包括数据表单、数据库,复杂的包括数据规范/标准,数据交换接口等
  • 业务流程:包括各种申请、审批要求,复杂的涉及多版本流程、伙伴流程(如供应链流程)等
  • 专业应用:包括数据模型、分析算法,复杂的包括专业软件、AI计算等

其中系统办公和业务流程是很多组织的共有部分,数据信息和专业应用则各有不同。

应用建设

建设思路

(1)共有部分建设 要开发低代码应用,就需要有一个覆盖组织、数据和流程的应用基座。 成品选型:成品选型包括钉钉、飞书、企业微信,其中使用体验较好的听说是飞书。 自建选型:如果要重新构建,也有诸多选择,后续章节列出。有些可以直接集成使用,有些需要做一些二次开发。

(2)专业部分建设 专业部分的大型软件按下不提,剩余部分通过第三方服务或者自建服务实现。 其中第三方服务主要涉及数据交换,自建服务实施领域工程。

自建选型

前端及用户可见部分

  • 身份认证

  • 消息流

    • goeasy 企业级Websocket和IM即时通讯
    • MobileIMSDK 专为移动端开发的原创IM通信层框架
  • 文档

    • notesnook An end-to-end encrypted note taking alternative to Evernote.
    • mrdoc 自托管、私有部署的在线文档管理系统和知识库
  • 流程

    • liteflow 轻量,快速,稳定可编排的组件式规则引擎
    • activiti Open Source Business Automation
  • 表单设计

  • 图形分析

后端存储、计算和第三方服务

  • 数据库服务
  • 文件服务
  • 自有函数式 API
  • 第三方 API 服务
  • 短信服务
  • 手机消息推送

基本上云服务商都提供了。

低代码与模型

领域特定语言 DSL

DSLs implemented via an independent interpreter or compiler are known as External Domain Specific Languages. Well known examples include LaTeX or AWK. A separate category known as Embedded (or Internal) Domain Specific Languages are typically implemented within a host language as a library and tend to be limited to the syntax of the host language, though this depends on host language capabilities.

DSL 根据实现一般分为内部(Embedded / Internal)和独立(External)两种。 内部 DSL 依托于某种语言运行,需要学习或者使用某种编程语言。 独立 DSL 不依托于其他编程语言,有独立的编译器。 不管实现方式如何,其首要的关注点领域模型。

领域模型 Domain-Model

组织结构

常见的组织结构

  • 功能型组织结构(functional structure)(适合专业型/固定业务类型组织)
  • 多层功能型组织结构(multi-divisional structure)
  • 矩阵型组织结构(matrix structure)
  • 区域型组织结构(gergraphic structrue)(大型组织)
  • 产品型组织结构 (product team structure)(产品团队)

常见的访问控制

  • 基于角色的权限控制(RBAC,Role-Based Access Control)
  • 自主访问控制(DAC,Discretionary Access Control)
  • 强制访问控制(MAC,Mandatory Access Control)
  • 基于属性的权限验证(ABAC,Attribute-Based Access Control)

组织机构和访问控制是密切结合的。 对于复杂组织,需要考虑用户-组织-部门-岗位-角色-权限六种要素。 成品的办公底座,通常会选择一种方式来实现。对于小微型团队来说,显得过于复杂。对于大型公司来说,又显得不足。

信息流模型

  • 表单模型
    • 数据项:数据项是数据对象的组成元素,名称可能不同,但常见类型基本一致,可以约定后描述。数据项之间存在计算、约束规则。
      • 示例表示:不需要专业知识,只需要写出示例,常例、特殊例子,由系统判定
      • 类型表示:需要熟悉约定的数据类型,指定即可,配置更加精确
    • 数据对象(类):数据对象对照业务实体,由数据项组成。数据对象之间存在关联关系。
      • 名称表示:符合常规习惯或者约定,表达唯一语义
    • 数据表单:日常业务中常见的数据接口,通常由一个或以上的数据对象组成。
      • 名称表示:符合组织的数据规范或者一致习惯
      • 痕迹表示:包含表单操作时间、人员的痕迹
  • 流程模型:流程引擎是使用 DSL 较早且滥用 DSL 较多的,自动流程和审批流程使用较多。

信息模型具有一定的适应性,同时也需要匹配组织规模。 对于小型组织或者小规模的业务来说,数据表单为主的模型即可覆盖。 对于大型组织或者复杂的业务来说,聘用专业的IT人员,会使用数据集为主的模型。

专业模型

  • 管理模型:
    • 人员:员工招聘、入职、调动、离职、培训、奖惩等过程
    • 物资/设备:采购、出入库、使用、维修、报废等过程
    • 财务:预算、合同、资金、发票相关过程
    • 研发:调研、分析、设计、生产、检验、试用过程
  • 业务模型:对于业务数据进行预处理、计算和分析,满足生产、研判的需要,通常需要专业领域的计算服务或者跨学科的基础服务支持,比如科学计算等。

管理模型在大多数企业中均存在,但更加深度的模型则各有千秋。但不论如何,大致都可以归到数学模型中来。

小结

如果我们将低代码理解为用少量代码构建应用,而不是通过图形化、融媒体替代构建应用,那么低代码或许最接近的就是(DSL,domain-specific languages),首当其冲的研究对象是领域模型。将领域模型搞清楚,通过简洁清晰的表示来表达并构建应用,这不仅是低代码要做的事情,也是未来AI构建应用的方向。后续章节将继续探讨领域模型与应用之间的低代码之路。

标签:模型,组织,代码,表单,DSL,构建,数据,出发
From: https://blog.51cto.com/u_13556371/5973108

相关文章

  • 网页特殊符号HTML代码大全
    ´´©©>>µµ®®&&°°¡¡  »»¦¦÷÷¿¿¬¬§§......
  • net中web在线预览Office文档 一句代码搞定
    Web项目中如果想实现Office文档预览,通用的方法是客户端需要先把文件上传到服务端,服务端再转成pdf文件,然后提供个url预览地址。这里面用的技术点包括上传文件、文件转Pdf等......
  • net中基于lodap组件实现web打印 代码简单、部署轻松
    实现Web场景下的打印功能,推荐Lodap组件。虽然国产,但功能一点不输国外的组件。提供的示例也很多,这里就抛砖引玉下传送门net中基于lodap组件实现web打印代码简单、部署轻......
  • 构建 Docker 镜像的 N 个小技巧
    构建镜像的几个小技巧构建上下文执行 ​​dockerbuild​​ 命令时,当前的工作目录被称为构建上下文。默认情况下,Dockerfile就位于该路径下。也可以通过 ​​-f​​ 参......
  • 关于iOS常用的26中公共方法,可copy的代码
    1.获取磁盘总空间大小//磁盘总空间+(CGFloat)diskOfAllSizeMBytes{CGFloatsize=0.0;NSError*error;NSDictionary*dic=[[NSFileManagerdefaultManager]attribu......
  • 使用 Spring 构建 REST 服务
    REST已迅速成为在Web上构建Web服务的事实标准,因为它们易于构建和使用。关于REST如何适应微服务领域,还有更大的讨论,但是在本教程中,让我们只看一下构建RESTful服务。......
  • 2021-03-31 H5页面点击图片自动全屏代码
    2021-03-31H5页面点击图片自动全屏代码js代码如上<scripttype="text/javascript">$(function(){$(".layui-tab-contentdivimg")......
  • 通过使用阿里云容器镜像服务构建k8s下载不到的镜像
    前因:因为要搭建ingress-nginx,根据官方提供的yaml文档,里面有2处用的到的镜像是需要从registry.k8s.io下载的,虚拟机无法访问到该地址,因为我们这里使用阿里云的容器镜像服务来......
  • 使用 VS 代码构建指南
    本指南将引导你使用VSCode生成入门指南之一。您将构建的内容您将选择一个Spring指南并将其导入VSCode中。然后,您可以阅读指南,处理代码并运行项目。你需要什么约15分......
  • 第一行代码1
    Android系统架构1、Linux内核层这一层为Android设备的各种硬件提供了底层的各种驱动,我们在编程时一般涉及不到。2、系统运行库层这一层为Android区别于其他设......