程序编写方法、设备和介质与流程

文档序号:29809614发布日期:2022-04-27 02:47阅读:192来源:国知局
程序编写方法、设备和介质与流程

1.本发明涉及计算机技术领域,尤其是涉及程序编写方法、设备和介质。


背景技术:

2.人工写代码的成本高,逻辑漏洞多,周期长。代码文本中在编写判断循环逻辑的时候,需要用到if else,do while,switch等专业代码逻辑,虽然这些对于程序员来说很简单,但是也是需要学习成本的。
3.如果使用saas类产品来编写程序,功能只能在计划之中的或者是之前限制好的规则里进行选择,这无法满足多变的需求。其次这类产品,一般都是基于某个行业,某个业务,业务的耦合性也很差。
4.如果使用无代码、低代码类产品来编写程序,依旧需要用户有一定的代码基础,和代码思维,对用户要求也挺高,其次产品的处理速度和效率都比较差。
5.对于无代码类产品而言,虽然可通过拖拽实现程序功能,但是程序功能的底层逻辑都是提前封装好的,换句话说就是用户只能在已经设计好的功能里打转,不能实现这个范围之外的功能,这同样极大限制了用户的创新性。


技术实现要素:

6.基于此,有必要针对上述问题,提供程序编写方法、设备和介质。
7.一种程序编写方法,所述方法包括:
8.获取目标程序对应的原型文件;其中,所述原型文件为描述程序功能需求的字符串,所述字符串包含不同维度的原型信息,所述不同维度的原型信息包括运行环境信息、组件信息、前端逻辑信息、云逻辑信息和参数信息;
9.获取原始代码规范和原始转化规则,根据所述原型文件对所述原始代码规范进行筛选,以得到目标代码规范和目标转化规则;其中,所述目标代码规范和所述目标转化规则适配于所述原型文件;
10.根据所述目标代码规范和所述目标转化规则将所述原型文件转换为完整代码;对所述完整代码进行封装,以得到所述目标程序对应的可执行工程文件。
11.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述程序编写方法的步骤。
12.一种终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述程序编写方法的步骤。
13.上述程序编写方法、设备和介质,从设计层面设计包含程序功能的原型文件,再配合原型文件的转化算法,可是实现程序的快速编写。因此用户也不用记忆代码的格式,以及代码单词的特定意义和用法等。此外,还可以实现多平台适配,换句话说,就是可以打破不同程序系统之间的生态壁垒,一次设计可以适配到所有平台。
附图说明
14.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.其中:
16.图1为一个实施例中获取原型文件的流程示意图;
17.图2为一个实施例中原型文件编辑界面的示意图;
18.图3为一个实施例中显示窗口、属性设置窗口和样式控制窗口的示意图;
19.图4为一个实施例中在样式控制窗口将若干个组件进行关联的示意图;
20.图5为一个实施例中事件窗口的示意图;
21.图6为一个实施例中将事件窗口内逻辑组件的逻辑元素与样式控制窗口内的控制变量进行关联的示意图;
22.图7为一个实施例中在服务器窗口内创建云逻辑的示意图;
23.图8为一个实施例中将云逻辑和用户的功能事件进行关联的示意图;
24.图9为一个实施例中程序编写方法的流程示意图。
具体实施方式
25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.代替人工编写代码,以及现有的无代码、低代码类产品编写程序的方式,本实施例中,通过创建原型文件的方式来是实现用户的程序功能需求,该过程中无需人为编写代码,只需执行简单的拖拉拽动作即可。并且每个功能需求对应的底层逻辑和数据都可以灵活调整,不存在任何限制。如图1所示,图1为一个实施例中获取原型文件的流程示意图,步骤包括:
27.步骤102、显示原型文件编辑界面。
28.如图2所示,该显示原型文件编辑界面包括显示窗口、属性设置窗口、样式控制窗口、事件窗口和服务器窗口。其中,显示窗口、属性设置窗口和样式控制窗口构成用户终端的前端显示界面,可对多个页面的显示内容进行编辑。在事件窗口内可对多个功能事件(例如用于存储文件的事件、用于修改文件格式的事件)进行编辑,在服务器窗口内可对多个云逻辑进行编辑。本实施例中,将前端显示界面和逻辑分开来设计,可以实现业务逻辑和显示界面设计的独立。
29.在显示窗口内,可添加至少一个组件。其中,组件的类型包括逻辑组件和数据组件,此外,还包括文字组件、图片组件等组件。每个组件由元素构成,而元素包括图片,文本,视频,形状(如矩形)、输入框等不同形式。
30.如图3所示,在显示窗口内,由组件元素管理器管理组件与组件、元素与元素及组件与元素之间的各种关系,并进行展示。在编辑页面时,可以从组件元素管理器中通过拖拽
拉扯的操作方式来添加组件,也可以是通过复制粘贴之前已经设计好的组件来添加组件。
31.步骤104:当未接收到组件添加的指令,且未接收到选中组件的指令,且未接收到选中元素的指令时,在属性设置窗口内对显示窗口的显示窗口样式进行设置;当接收到选中组件的指令,或接收到选中元素的指令时,在属性设置窗口内对选中的组件或选中的元素对应的组件的组件样式进行设置。
32.其中,如图3所示,组件样式和窗口显示样式包括状态、简介、颜色、位置、特殊样式和内容等不同角度。具体的来说,状态包括常态、点击时、移入等;简介包括名称、所属、备注等;颜色包括背景颜色、字体颜色等;位置包括位置关系、关系具体值等;特殊样式包括圆角、描边等;内容包括图片来源、显示文字等。
33.当其中一个组件被选中时,便可以对组件样式进行设置;当组件未被创建,且未选择任何一个组件或元素时,此时可以对显示窗口样式进行设置。
34.步骤106:在样式控制窗口内,当接收到样式控制指令时,添加数据模块,并响应于样式控制指令通过连线将若干个组件进行关联。
35.其中,关联的组件基于数据模块统一修改组件样式。
36.如图4所示,可以在样式控制窗口里添加数据模块,然后通过连线把若干个组件关联起来,比如所有组件的背景通过连接到同一个数据模块,这样就可以基于数据模块实现所有组件背景的统一修改和编辑。
37.数据模块内赋予的参数信息包括数据介绍、数据初始值和数据范围。具体的来说,一、数据介绍包括文本数据,对象,数组等不同类型数据的细节。二、数据初始信息是数据的初始设置值。三、数据范围是数据的可取值范围。这是让数据的变化可控,特别是在数据处理和数据运算的过程中,基于数据范围可以检测逻辑部分中的逻辑漏洞。
38.步骤108:在事件窗口内,当接收到事件创建指令时,响应于事件创建指令创建多个空白事件,在每个空白事件内将多个添加的逻辑组件依次进行连接,并为多个添加的数据组件赋予参数信息,以得到多个包含用户功能逻辑的功能事件。
39.其中,用户功能逻辑为用户终端所执行的逻辑,用于实现目标用户的程序功能需求,例如修改文档内容、更改文档颜色等,可以直接控制前端显示界面的变化。事件窗口内赋予的参数信息同样包括数据介绍、数据初始值和数据范围。
40.本步骤中,可创建多个空白事件。如图5所示,在其中的一个空白事件内,允许从浮窗里通过拖拉拽的方式添加各种逻辑组件,然后由箭头把各个逻辑元素连接起来以形成流程图,这样就可以得到基本的功能逻辑。当然,也可以是鱼骨图、树状图或其他形式来表达功能逻辑,在此不做具体限定。进一步的,从浮窗里通过拖拉拽的方式添加各种数据组件,并为各个数据组件赋予参数信息,也就是赋予数据介绍、数据初始值和数据范围。最后再通过连线和拖拉拽的形式,将逻辑组件中需要填充的数据和整体架构中的数据组件进行关联绑定,就能得到完整用户功能逻辑的功能事件。
41.可见,本实施例中用流程图等方式来表述程序的逻辑,这样就可以直观的展示判断循环逻辑,实现逻辑实体化。并且由于是用组件和模块的形式编辑程序,也不用像代码那么实时注意代码书写格式以及代码书写的完整性。而且变量、逻辑、组件等是独立且完整的,最终均是以字符串的形式存储,本实施例在编写程序功能时也不会受上下代码环境影响,此外功能的迁移非常方便,任何个体局部的迁移都无需配置环境。迁移之后的内容,作
为初始状态,用户修改之后作为第二状态,同时用户也可以手动添加多个状态,用于不同情况的使用。
42.步骤110:当接收到事件关联指令时,响应于事件关联指令通过添加事件模块或对若干事件窗口进行连线,以将多个功能事件进行关联,并将事件窗口内的逻辑组件和数据组件与样式控制窗口内数据模块通过连线进行关联。
43.其中,事件模块包含已关联的功能事件的关联事件信息,携带数据信息和返回数据信息。
44.具体的,对于步骤108创建的多个功能事件而言,两两之间可以是触发事件与响应事件的关系,从而形成特定复杂的功能。本实施例中,通过将两个功能事件的组件进行连线,即可完成功能事件的关联。
45.进一步的,如图6所示,通过将事件窗口内逻辑组件的逻辑元素与样式控制窗口内的控制变量进行连接,还可以实现前端的组件和背后的逻辑关联。例如,当基于功能事件的逻辑对数据进行处理并得到数据结果后,需要将得到的数据结果在前端显示。通过逻辑组件的逻辑元素与样式控制窗口内的控制变量的关联,便可以实现前端内容的变化和控制。
46.现有的低代码无代码,还是文本代码,都不能局部功能一边演示一边编辑程序功能。本实施例通过将事件窗口内的逻辑组件和数据组件与样式控制窗口内数据模块进行关联,可以实现任何小范围的演示调整。
47.步骤112:在服务器窗口内,当接收到云逻辑创建指令时,响应于云逻辑创建指令基于用户的程序功能需求将多个添加的逻辑组件依次进行连接,并为多个添加的数据组件赋予参数信息,以得到云逻辑,将云逻辑的数据信息根据预设的存储规则存储到对应的数据库,并将云逻辑和用户的功能事件进行关联。
48.其中,云逻辑为放置于服务器的逻辑,包含用户终端所执行的逻辑。云逻辑无法直接与前端显示界面进行关联,但可以与用户的功能事件进行关联。
49.本实施例中,参见图7,基于用户的程序功能需求,反复的执行类似步骤108的内容,以得到云逻辑。同时云逻辑要比第五步步骤多一个数据存储的内容,指的是数据根据预设的存储规则将云逻辑存储到数据库里,不仅仅可以是在数据缓存里,也可以默认是现有的数据库位置。
50.参见图8,将云逻辑和用户的功能事件进行关联后,功能事件和云逻辑之间便可以进行数据传递和反馈。具体的,在功能事件中有一类访问组件,可以直接连线到云逻辑以实现数据的传递,云逻辑则通过一个反馈组件实现,云端对前端产生的访问结果;前端事件的访问组件里有一个获取数据组件(获取到的是伪数据),而就是数据传递的结果。例如,基于功能事件实现充值会员的功能,云逻辑反馈充值成功与否的结果和响应的会员功能。
51.进一步的,本实施例中还可以通过身份标识(identity document,id),将原型文件编辑界面中各个窗口的若干个组件进行关联。其中,通过身份标识关联的组件允许统一修改组件样式。这样任何设计都可以同步,不需要人来手动多次点添加、调整。例如,修改一个变量名只需要修改一处,那么其他地方的内容也是同步调整,从而解决人在写代码中,不能轻易修改内容的问题。又例如,在代码中如果要调整归属关系,也很麻烦。但是有了唯一id的作为指引,那么归属关系就可以随意调整修改。通过id还可记录同一组件的多个状态(多状态),从而查看历史编写的组件样式,也可以作为不用业务的不同版本,可以随时更换
和调整。
52.步骤114:输出原型文件编辑界面在显示窗口、属性设置窗口、样式控制窗口、事件窗口和服务器窗口的编辑过程中形成的原型信息,以得到原型文件。
53.原型信息包括运行环境信息、组件信息、前端逻辑信息、云逻辑信息和参数信息等信息。其中,原型信息中的组件信息包括在显示窗口、属性设置窗口和样式控制窗口形成的信息,原型信息中的前端逻辑信息包括在事件窗口形成的信息,原型信息中的云逻辑信息包括在服务器窗口形成的信息。
54.此外,原型信息中的参数信息包括样式控制窗口内创建的数据,称之为控制器数据;也包括事件窗口内创建的数据,称之为事件数据;还包括服务器窗口内创建的数据,称之为云数据。该控制器数据实际相当于一个控制开关。该事件数据实质就是一个普通的数据,一般都是以缓存形式存储,都贯穿相应的环境,实现相应的数据内容传递和记录。一般事件数据都是包含控制器数据的,所以用户一般都是需要先在这个内容里创建好数据然后复用到控制器栏里,这样就形成很好的关联效果。云数据同事件数据类似,不过还包括数据存储信息(也即与存储云逻辑相关的信息)。本实施例中,控制器数据、事件数据和云数据之间允许相互传递和替换的。
55.输出原型文件编辑界面在各个窗口的编辑过程中形成的原型信息,便得到原型文件。该原型文件的数据结构为字符串。
56.上述获取原型文件的过程中,仅通过拖拉拽、连线、箭头等直观形式进行操作,这样就不会出现内容缺失和以及信息编辑错误。同时用流程图等方式来表述程序的逻辑,直观的展示判断循环逻辑,实现逻辑实体化。并且由于是用组件和模块的形式编辑程序,也不用像不用像代码那么实时注意代码书写格式以及代码书写的完整性。而且变量、逻辑、组件等是独立且完整的,最终均是以字符串的形式存储,本实施例在编写程序功能时也不会受上下代码环境影响,此外功能的迁移非常方便,任何个体局部的迁移都无需配置环境。迁移之后的内容,作为初始状态,用户修改之后作为第二状态,同时用户也可以手动添加多个状态,用于不同情况的使用。本实施例通还过将事件窗口内的逻辑组件和数据组件与样式控制窗口内数据模块进行关联,可以实现任何小范围的演示调整。
57.如图9所示,图9为一个实施例中程序编写方法的流程示意图,本实施例中程序编写方法提供的步骤包括:
58.步骤902,获取目标程序对应的原型文件。
59.基于上述步骤102-104,便能得到目标程序对应的原型文件,此处不再赘述。该原型文件包括运行环境信息、组件信息、前端逻辑信息、云逻辑信息和参数信息等不同维度的原型信息。
60.进一步的,对原型文件进行初步的分析,根据得到的分析结果对原型文件的编译运行环境进行初始化,从而完成后续转换代码的准备工作。
61.步骤904,获取原始代码规范和原始转化规则,根据原型文件对原始代码规范进行筛选,以得到目标代码规范和目标转化规则。
62.具体的来说,代码规范用于对组件信息、前端逻辑信息、云逻辑信息进行转换,包括:规范介绍、运行环境规范、原型功能的对应代码规范、原型功能的代码格式规范和功能代码的放置位置规范。
63.a、规范介绍,包括各种规范的简介(名称)和详细介绍,用于记录不同代码规范的细节和注意事项。规范介绍在程序代码的编译过程中,主要是为了介绍各种代码规范,以便于下次查询和修改。如果程序的运行平台或者系统有变化,那么就可以根据规范介绍里已有的内容,去有理有据的修改特定的代码规范,保证修改后的代码规范之后不会出现错误。
64.b、运行环境规范,包括不同代码规范的有效运行环境,也是代码规范使用的前提条件。例如基于特定代码规范转换后的代码允许在js文件下正常运行,但并不允许在json文件下使用。可以理解的是,代码只有在合适的环境下才能实现意料之内的功能设计,可控的实现原型里所描述的功能。
65.c、原型功能的对应代码规范,包括不同原型功能对应的填充式内容。该原型功能为原型文件所能实现的其中一个功能;而填充式内容为预先创建的代码框架,其可实现的功能与原型功能匹配。
66.d、原型功能的代码格式规范,包括填充式内容中的参数格式规范。此处的规范决定了最终导出的代码内容的格式。一般情况下填充式内容中会有一些内容需要相应的参数去替换,例如if判断语句中的判断条件需要根据实际需求做相应调整,这样才能满足用户的个性化需求,以及一些意料之外的创意和创新。
67.e、功能代码的放置位置规范,包括不同片段代码的目标放置位置。基于上述c、d项转换后的代码可能会有很多段,需要把每段代码放置到不同文件里相应的位置上,并作相应的适配,才能实现代码正常有效的触发和运行。这里的目标放置位置的表述方式主要有两种:一个是绝对的放置位置,体现为把程序的开始位置作为起点,一直到代码描述位置的对应位置关系。这在修改全局配置信息时,还有在执行某个逻辑需要添加一个全局变量时,都是采用该绝对的放置位置。另一个是相对的放置位置,体现为把当前处理代码位置为起点,然后到直到代码描述位置的对应位置关系。这在修改当前正在转化代码的页面配置信息,还有在执行某个逻辑需要添加一个页面变量时,都是采用该相对的放置位置。
68.而转化规则用于对原型文件的参数信息进行转换,包括:参数介绍、参数对应的实际意义和参数内容。
69.a、参数介绍,包括不同类型参数的简介(名称)和详细介绍,用于记录不同参数的细节和注意事项。同规范介绍的作用相同,就不再赘述。
70.b、参数对应的实际意义,包括原型文件中不同参数对应的代码含义。比如原型文件中的参数10,在其中一个平台中对应“大”的含义,而在另一个平台对应“字体加粗”的含义。
71.c、参数内容,包括不同参数的实际转换结果。是当满足参数对应的某一种实际意义时,返回的结果内容。因此可以理解为“参数对应的实际意义”是参数的转换判断条件,以确定原型文件中的参数转换为哪一类的代码参数;而“参数内容”是参数的转换结果。
72.综上,可以将代码规范理解为架构,而转化规则就是填充的砖块。基于这两个部分的内容便可以对原型文件进行转换。
73.本实施例中,首先获取原始代码和原始转化规则。但是该原始代码和原始转化规则是一个通用的内容,其中很多内容在此处的转换过程中是无效的,因此还需进一步基于原型文件去做筛选,以得到适配的目标代码规范和目标转化规则。
74.在一个具体实施例中,需要做三次筛选。在第一次筛选时,根据运行环境信息和运
行环境规范对原始代码规范和原始转化规则进行筛选,以得到符合运行环境信息的第一代码规范和第一转化规则。其中,原始代码规范由若干存在父子级关系和并列关系的代码规范组成,原始转化规则由若干存在父子级关系和并列关系的转化规则成。在第二次筛选时,根据原型功能对第一代码规范和第一转化规则进行筛选,以得到能实现原型功能的第二代码规范和第二转化规则。在第三次筛选时,根据填充式内容,及原型文件中的参数和转化规则中的参数相关项对第二代码规范和第二转化规则进行筛选,以得到能进行转换的目标代码规范和目标转化规则。
75.步骤906,根据目标代码规范和目标转化规则将原型文件转换为完整代码;对完整代码进行封装,以得到目标程序对应的可执行工程文件。
76.具体的,首先,根据原型文件的原型信息、目标代码规范中的c、原型功能的对应代码规和d、原型功能的代码格式规范,匹配不同原型功能的填充式内容和参数格式;
77.再根据目标转化规则中的b、参数对应的实际意义将原型信息中的参数转化为对应的多个代码参数,以填入填充式内容中。再根据目标代码规范,将多个填入了代码参数的填充式内容进行组合,以得到多个片段代码。具体的,该多个片段代码包括一个主体片段代码和若干个辅助片段代码,其中主体片段代码基于目标代码规范中父级的代码规范确定主片段代码位置。辅助片段代码基于目标代码规范中e、功能代码的放置位置规范确定目标放置位置,而目标放置位置位于主片段代码位置之内。
78.最后选择在目标代码规范中,每条原型信息对应满足条件的且存在并列关系的其中一个代码规范执行,或选择在目标转化规则中,每条原型信息对应满足条件的且存在并列关系的其中一个转化规则执行,以根据目标放置位置将不同的辅助片段代码放置于主体片段中,从而得到完整代码。
79.进一步的,根据原型文件的结构,对完整代码进行封装,以转化为可以实现原型文件里的所描述功能的可执行工程文件。同时还可以将获得的可执行工程文件,按照运行平台的要求发布到指定运行平台上,那么就获得了在指定运行平台上实现原型文件所描述的目标程序。
80.上述程序编写方法,从设计层面设计包含程序功能的原型文件,再配合原型文件的转化算法,可是实现程序的快速编写。因此用户也不用记忆代码的格式,以及代码单词的特定意义和用法等。此外,还可以实现多平台适配,换句话说,就是可以打破不同程序系统之间的生态壁垒,一次设计可以适配到所有平台。
81.一种程序编写设备,包括存储器、处理器以及存储在该存储器中并可在该处理器上执行的计算机程序,该处理器执行该计算机程序时实现如下步骤:获取目标程序对应的原型文件;其中,原型文件为描述程序功能需求的字符串,字符串包含不同维度的原型信息,不同维度的原型信息包括运行环境信息、组件信息、前端逻辑信息、云逻辑信息和参数信息;获取原始代码规范和原始转化规则,根据原型文件对原始代码规范进行筛选,以得到目标代码规范和目标转化规则;其中,目标代码规范和目标转化规则适配于原型文件;根据目标代码规范和目标转化规则将原型文件转换为完整代码;对完整代码进行封装,以得到目标程序对应的可执行工程文件。
82.一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:获取目标程序对应的原型文件;其中,原型文件为描述
程序功能需求的字符串,字符串包含不同维度的原型信息,不同维度的原型信息包括运行环境信息、组件信息、前端逻辑信息、云逻辑信息和参数信息;获取原始代码规范和原始转化规则,根据原型文件对原始代码规范进行筛选,以得到目标代码规范和目标转化规则;其中,目标代码规范和目标转化规则适配于原型文件;根据目标代码规范和目标转化规则将原型文件转换为完整代码;对完整代码进行封装,以得到目标程序对应的可执行工程文件。
83.需要说明的是,上述程序编写方法、设备及计算机可读存储介质属于一个总的发明构思,程序编写方法、设备及计算机可读存储介质实施例中的内容可相互适用。
84.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
85.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
86.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1