概览
相比于雇佣开发人员专门为企业开发庞大的业务系统,很多企业为了降低成本或者提高响应速度,更倾向于由业务人员开发可用的业务系统,并借此解决一些简单的问题。
这些问题可能是短期内出现或者业务场景比较简单,不值得为此专门组织开发人员进行开发,但这些业务场景又往往是场景多变的,难以使用通用的软件解决。
为此我们开发了松果应用,可以帮助没有强大软件开发经验的人员,通过配置快速搭建出解决问题的应用程序。
理念
市场上有很多面向终端用户的编程软件或平台,他们往往是在定制软件开发的过程中孵化出来的, 因此常常在某些领域实用性强,但在面对变化的业务场景或者稍微复杂一些的逻辑的时候就变得难以使用。
为此我们希望通过简化应用程序开发流程的方法,帮助业务人员搭建适合自己的应用,而不是使用将已有的软件功能进行排列组合的方式实现。
在遇到复杂的业务场景时,使用简化后的开发工具虽然可以解决问题,但往往效率低下,专业的事交给专业的人处理才是正确的选择。
我们的方案是由专业开发人员对复杂的问题进行抽象,创建通用的软件,并封装成简单易用的工具交由业务人员使用,而不是直接由专业开发人员代替业务人员直接开发解决问题的软件。
抽象
我们将软件开发的过程抽象成三个简单易懂的步骤,分别是创建表单、搭建逻辑、设计流程。
首先需要对业务中的核心概念进行抽象,设计数据模型对这些概念进行描述,梳理出这些概念之间的关系; 然后再对业务中的关键步骤进行分析,梳理出解决问题的思路和方法,并搭建出运算逻辑执行解决问题的过程; 最后我们需要将解决问题的步骤串联起来,并通过排列组合的方法应对不同情况的业务场景。
经过抽象后,我们将软件开发的过程抽象为以下过程:
- 创建表单:对业务中的核心概念进行抽象,使用数据模型描述核心概念和概念之间的关系,并设计表单;
- 搭建逻辑:梳理核心问题的解决思路,搭建运算逻辑实现核心问题的解决算法;
- 设计流程:将业务中的步骤进行组合,结合业务逻辑和数据实现各种场景的业务解决方案。
拓展性
因为业务人员没有丰富的软件开发支持,往往只能解决简单的问题。市场上的很多低代码方案要么解决的都是通用软件已经解决的问题,要么难以解决复杂的问题。
最终造成的结果就是,业务人员觉得开发软件难度太大,不是自己能够胜任的,期望将开发工作转交给开发人员。然而开发人员因为架构受限,不得不使用简单的工具解决复杂的问题,造成效率低下的结果。
为此我们需要划分适当的分界线,业务人员只需要使用简单的工具解决简单的问题,当遇到难以解决的问题时,求助专业的开发人员。
开发人员则只需要开发通用的工具,并将工具交由业务人员使用,然后解决具体的问题。
基本概念
数据模型
使用软件解决现实世界问题的前提是对现实世界进行抽象,使用数据对业务进行描述,抽象的好坏影响我们使用软件解决业务问题的效率和质量。
数据是描述世界的语言,通常我们在描述世界的时候根据不同的特点对事务进行分类,数据描述的就是用来对这些事物进行分类的特点。
我们使用数据模型定义一个概念,然后数据实例描述具体的事物,就好像我们设计一个表格用来记录一种业务信息,然后在表格里记录的一行是某次的记录。
收集表单
在现实工作中,我们经常会填写各种各样的表格和问卷,这是我们提供数据常用的方式,要借助计算机推动业务进行,第一步也是给计算机提供需要的数据,表单就是为计算机提供数据的接口。
表单可以具有多种多样的形式,以满足收集不同种类数据的需求,在对业务中的概念进行抽象的过程中,我们已经设计了各种各样的数据模型,表单则关联对应的数据模型,以适配收集的需要,另外我们还需要对表单的格式进行控制,以方便填写者阅读。
数据视图
数据视图可以方便使用者查看数据,数据视图是收集表单中数据的映射,将一个或多个表单收集的数据进行关联,映射为不可编辑的视图。有时我们需要在两个过程中分别收集数据,但却需要在查看时同时分析两份数据,我们就可以使用数据视图根据两份数据的关系,直接查看组合好的数据;另外,有时我们需要在为阅读者提供数据的时候,隐藏其中的一部分信息,以保证隐私的数据不会泄露,也可以借助数据视图过滤掉掉数据中的一部分内容。
业务逻辑
在已经有了数据的基础后,业务逻辑其实就是描述数据如何变换,对应就是现实世界中业务的变化,业务逻辑包含条件判断和过程执行等。
业务逻辑可以使用流程图描述,根据条件判断下一步的动作,执行过程将输入的数据转换为输出的数据,业务逻辑也可以嵌套,将复杂的问题分解成一个个简单的问题,然后依次执行。
业务流程
只是用数据模型和业务逻辑已经可以推动业务进行了,但是这样往往需要编写大量的业务逻辑应对各种各样的场景。业务通常是不断变化的,所以我们应该将不变的部分固定下来,然后通过流程排列组合这些逻辑,根据业务的变化调整流程,尽可能多的复用已经开发好的逻辑。