CN114610286A - 开发文档的生成方法、装置、计算机设备及存储介质 - Google Patents
开发文档的生成方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114610286A CN114610286A CN202210278851.7A CN202210278851A CN114610286A CN 114610286 A CN114610286 A CN 114610286A CN 202210278851 A CN202210278851 A CN 202210278851A CN 114610286 A CN114610286 A CN 114610286A
- Authority
- CN
- China
- Prior art keywords
- document
- code
- development document
- development
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种开发文档的生成方法、装置、计算机设备及存储介质,涉及计算机技术领域,可解决目前在生成开发文档时,需要大量人工参与,存在工作量大、操作繁琐、工作效率低的技术问题。其中方法包括:确定待生成开发文档的目标框架项目,所述目标框架项目中包含预设的开发文档生成工具;生成针对所述目标框架项目的配置文件,所述配置文件包含开发文档的生成规则;基于所述开发文档生成工具以及所述配置文件生成所述目标框架项目的开发文档。本申请可通过开发文档生成工具以及配置文件提取所修改的代码差异化数据,并通过解析代码差异化数据,智能化生成语义化的开发设计文档。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及到一种开发文档的生成方法、装置、计算机设备及存储介质。
背景技术
在大公司施行的瀑布流式开发中,一个需求从提出到发布上线,包含以下几个步骤:意向文档产出、需求分析、排期、需求澄清、开发设计、编码、产出开发文档、移交代码到测试环境、冒烟测试、SIT测试、UAT测试、回归测试、发布上线、生成验证。其中,开发文档的编写,是非常重要的一环,它不但有利于开发者了解自己代码改动的地方、还有助于测试人员测试案例的编写和对于代码改动场景的彻底覆盖。但是,编写开发文档存在以下困难:
1、开发文档的编写是非常耗费时间的,开发者需要把开发完成后的代码,重新梳理一遍业务逻辑,并把相关的改动点(精确到页面名、字段、接口等等)都需要罗列出来。
2、对于多套不同框架代码实现相同功能需求的常见,还可能存在实现方式、改动点不尽相同。由于这些原因导致编写过于繁琐,开发者对于编写开发文档,常常抱着抗拒的心态,有时为了应付检查就随意敷衍了事、或者推迟撰写的情况。最终造成了测试案例编写滞后、测试场景缺失等问题,影响整体项目代码质量和上线时间。
3、不同的开发者对于开发文档的编写风格不一致,对于后期维护阅读的开发者来说,需要适应不同开发者的撰写风格,在后期功能逻辑的变更和添加,需要投入更多的时间进行梳理原逻辑代码。在紧急问题的处理上,无法快速定位到关键的内容,延长的修复时间。
发明内容
有鉴于此,本申请提供了一种开发文档的生成方法、装置、计算机设备及存储介质,可解决目前在生成开发文档时,需要大量人工参与,存在工作量大、操作繁琐、工作效率低的技术问题。
根据本申请的一个方面,提供了一种开发文档的生成方法,该方法包括:
确定待生成开发文档的目标框架项目,所述目标框架项目中包含预设的开发文档生成工具;
生成针对所述目标框架项目的配置文件,所述配置文件包含开发文档的生成规则;
基于所述开发文档生成工具以及所述配置文件生成所述目标框架项目的开发文档。
根据本申请的另一个方面,提供了一种开发文档的生成装置,该装置包括:
确定模块,用于确定待生成开发文档的目标框架项目,所述目标框架项目中包含预设的开发文档生成工具;
第一生成模块,用于生成针对所述目标框架项目的配置文件,所述配置文件包含开发文档的生成规则;
第二生成模块,用于基于所述开发文档生成工具以及所述配置文件生成所述目标框架项目的开发文档。
根据本申请的又一个方面,提供了一种非易失性可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述开发文档的生成方法。
根据本申请的再一个方面,提供了一种计算机设备,包括非易失性可读存储介质、处理器及存储在非易失性可读存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述开发文档的生成方法。
借由上述技术方案,本申请提供的一种开发文档的生成方法、装置、计算机设备及存储介质,与目前开发文档的生成方式相比,本申请可首先确定待生成开发文档的目标框架项目,并在目标框架项目中预先配置开发文档生成工具;之后可进一步生成针对目标框架项目的配置文件,配置文件包含开发文档的生成规则;最后基于开发文档生成工具以及配置文件生成目标框架项目的开发文档。本申请中的技术方案,可实现开发文档的自动化生成,不在需要担心额外投入过多的时间进行开发文档的编写操作,只需要在配置文件中,进行简单的设置,就可以生成开发文档,进而可简化文档生成工作量,提高工作效率。此外,对于各种需求变更带来的代码改动的调整,在开发完成后,重新生成开发文档即可,对于文档的调整可以做到非常灵活,可以将更多的时间专注于提升代码质量。开发文档是根据改动点生成描述内容的,故可避免人为编写开发文档过程中,因为遗漏、疏忽等原因,造成的改动点描述不全的情况,造成测试案例场景覆盖的缺失。且统一生成的开发文档风格统一,开发人员不再需要适应不同开发者撰写风格的不同,而带来的阅读上困难,在需要快速查阅定位问题的时候,可以做到高效快速。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本地申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种开发文档的生成方法的流程示意图;
图2示出了本申请实施例提供的另一种开发文档的生成方法的流程示意图;
图3示出了本申请实施例提供的一种开发文档的生成的实例示意图;
图4示出了本申请实施例提供的一种开发文档的生成装置的结构示意图;
图5示出了本申请实施例提供的另一种开发文档的生成装置的结构示意图。
具体实施方式
下文将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。
针对目前在生成开发文档时,需要大量人工参与,存在工作量大、操作繁琐、工作效率低的技术问题,本实施例提供了一种开发文档的生成方法,如图1所示,该方法包括:
101、确定待生成开发文档的目标框架项目,目标框架项目中包含预设的开发文档生成工具。
其中,目标框架项目为包含框架代码的任一前端框架项目,目前前端最常用的框架项目主要是vue和react,不同框架项目的实现过程是不一样的,在本实施例中,以采用vue框架为例,对本申请中的技术方案进行说明,但并不构成对本申请中技术方案的限定。开发文档生成工具是针对vue框架定制化编写的,可针对vue特殊的语法、事件等进行精准的识别,能够根据改动点生成语义化描述内容。
在具体的应用场景中,可首先需要检查目标框架项目中的package.json文件,判断是否包含开发文档生成工具,如果不包含,则会自动通过指令npm i vue3-create-design-document-D配置此开发文档生成工具。其中,每个目标框架项目的根目录下面,一般都有一个package.json文件,package.json文件定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据。其中,在通过指令npm i vue3-create-design-document-D配置此开发文档生成工具时,具体可通过系统底层的命令行工具,比如windows的cmd命令行工具,打开后,通过cd命令定位到项目根目录,并在当前项目根目录中进一步执行初始命令:npm i vue3-create-design-document-D,就可以将开发文档生成工具下载安装到该目标框架项目中。相应的,实施例步骤具体可以包括:检测目标框架项目中是否包含预设的开发文档生成工具;若否,则通过命令行工具定位目标框架项目的根目录,并在根目录下通过输入预设指令配置开发文档生成工具。
对于本申请的执行主体可为开发文档的生成装置,可配置在客户端侧或服务端侧,能够基于开发文档生成工具以及目标框架项目的配置文件生成目标框架项目的开发文档。
102、生成针对目标框架项目的配置文件,配置文件包含开发文档的生成规则。
其中,配置文件config.js是一个json格式的文件。是通过编写json格式的键值对形式的代码。配置文件配置内容可包括:(1)与当前代码分支进行比对的分支名称;(2)当前仓库git地址;(3)开发者提交代码所用的git平台账号名称、密码;(4)提交代码的时间范围;(5)自定义文档标题;(6)是否生成markdown格式,默认为输出markdown格式。
103、基于开发文档生成工具以及配置文件生成目标框架项目的开发文档。
对于本实施例,可通过在命令行(mac系统为终端),定位目标框架项目的根目录,执行命令构建命令,npm run design-document,执行过程中,可涉及到按照配置文件获取到所修改的代码差异化数据,将修改代码的差异化数据解析并生成语义化的开发设计文档。执行完成后,则会得到根据配置文件中相应条件生成的目标框架项目的开发文档。
通过本实施例中开发文档的生成方法,可首先确定待生成开发文档的目标框架项目,并在目标框架项目中预先配置开发文档生成工具;之后可进一步生成针对目标框架项目的配置文件,配置文件包含开发文档的生成规则;最后基于开发文档生成工具以及配置文件生成目标框架项目的开发文档。本申请中的技术方案,可实现开发文档的自动化生成,不在需要担心额外投入过多的时间进行开发文档的编写操作,只需要在配置文件中,进行简单的设置,就可以生成开发文档,进而可简化文档生成工作量,提高工作效率。此外,对于各种需求变更带来的代码改动的调整,在开发完成后,重新生成开发文档即可,对于文档的调整可以做到非常灵活,可以将更多的时间专注于提升代码质量。开发文档是根据改动点生成描述内容的,故可避免人为编写开发文档过程中,因为遗漏、疏忽等原因,造成的改动点描述不全的情况,造成测试案例场景覆盖的缺失。且统一生成的开发文档风格统一,开发人员不再需要适应不同开发者撰写风格的不同,而带来的阅读上困难,在需要快速查阅定位问题的时候,可以做到高效快速。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例中的具体实施过程,提供了另一种开发文档的生成方法,如图2所示,该方法包括:
201、确定待生成开发文档的目标框架项目,目标框架项目中包含预设的开发文档生成工具。
202、生成针对目标框架项目的配置文件,配置文件包含开发文档的生成规则。
203、利用开发文档生成工具和配置文件包含开发文档的生成规则,提取目标框架项目中所修改代码的差异化数据,并利用开发文档生成工具对差异化数据进行解析处理,生成语义化的开发文档。
对于本实施例,在利用开发文档生成工具和配置文件包含开发文档的生成规则,提取目标框架项目中所修改代码的差异化数据时,具体可包括:
(1)定位到目标框架项目的根目录后,在根目录新建一个空文件夹,用于存放对比分支项目文件。通过git clone命令,以及配置文件config.js所配置内容的第3个配置项中git平台账号名称、密码,下载到对应仓库的代码文件到空文件夹内。然后通过git branch命令,切换到配置文件config.js对应第1个配置项所配置的分支名称进行差异化对比的分支。
(2)获取目标框架项目当前所在的分支,通过git log指令获取到所有当前分支的提交记录,然后再通过配置文件config.js中,配置的第4个配置项(提交代码的时间范围),筛选出符合提交代码时间范围的提交记录。再通过配置文件config.js中,配置的第3个配置项配置的开发者使用提交的账号名称,过滤出制定开发者提交记录。
(3)循环遍历每一条开发者的提交记录,对于每一条提交记录,做如下处理:
(3.1)获取到当前提交记录提交的所有文件;
(3.2)对当前提交记录的所有文件进行循环遍历,对于单个文件,做如下处理:
(3.2.1)获取当前文件的文件名称,查找比对分支的文件夹中对应的文件;
(3.2.2)如果比对文件夹中没有此文件,说明是本次提交新增的。将本次提交记录的这个文件,进行打标为新增文件。
(3.2.3)如果比对文件夹中,包含同名文件,则需要通过git diff命令,得出差异化代码开始和结束的对应文件中代码行和列。将得到的结果进行记录,并同时对本次提交记录的这个文件,打标为修改文件。
(3.3)当3.1和3.2执行结束后,会得到指定开发者、指定时间段内,所有提交记录中,涉及所有新增、修改文件的差异化数据。
基于此,实施例步骤203具体可以包括:利用开发文档生成工具定位目标框架项目的项目根目录,并在项目根目录中根据配置文件,获取目标框架项目对应历史代码分支下的第一代码提交记录以及当前代码分支下的第二代码提交记录,历史代码分支的项目版本早于当前代码分支的项目版本;对比第一代码提交记录和第二代码提交记录,确定目标框架项目中所修改代码的差异化数据。
其中,在对比第一代码提交记录和第二代码提交记录,确定目标框架项目中所修改代码的差异化数据时,实施例步骤具体可以包括:根据第一代码提交记录确定历史代码分支提交的第一代码文件,根据第二代码提交记录确定当前代码分支提交的第二代码文件;获取第二代码文件中所包含的文件名称,并判断第一代码文件中是否包含文件名称;若是,则通过执行预设查询指令,确定同一文件名称下第一代码文件和第二代码文件的代码差异信息,并将存在代码差异信息的第二代码文件标记为修改文件,代码差异信息包括差异化代码开始和结束的代码位置;若否,则将第二代码文件标记为新增文件;将修改文件和/或新增文件确定为目标框架项目中所修改代码的差异化数据。
相应的,在利用开发文档生成工具对差异化数据进行解析处理,生成语义化的开发文档时,参照附图3所示的示例图,具体可包括:
(1)设置文档标题
通过获取配置文件config.js中配置的第5个配置项(自定义文档标题),获取到开发者自定义的文档标题,如果开发者没有配置,则会设置一个默认的标题:作者+当前时间+当前项目文件夹名称+开发设计文档。该标题给与markdown文档的一级标题格式,通过自动在标题文本前,加上“#”,即可以实现。
(2)设置作者和设计文稿产出时间
通过获取配置文件config.js中开发这个平台账号名称,作为开发设计文档作者,通过获取当前系统的时间,作为设计文稿的产出时间。
(3)对于每一条提交记录,都会对所有涉及的文件改动,进行代码层面的解析,并转译为语义化的描述内容。涉及以下内容:
(3.1)如果文件改动的内容中,涉及到template模板内的内容,则说明改动内容与页面的展示元素相关,即差异化数据的差异类型为展示元素改动,此时会存在以下几种情况:
(3.1.1)页面文案相关;检索改动的代码中,是否包含v-text,v-html指令的改动,以及页面元素结构中,使用了插值表达式{{}},如果涉及,则说明只是修改了页面展示的文案内容。对此,再通过去对比项目的文件夹中搜索对应文案,获取到改动前的文案。最终生成一条改动内容:页面文案展示修改,由XXX变更为XXX。
(3.1.2)页面样式相关;检索改动的代码中,是否包含:class、:style动态属性的改动,如果涉及,则说明修改涉及到了页面样式的改动。对此,再获取到涉及:class、:style动态属性的标签,取标签内的文本内容。最终生成一条改动内容:涉及页面XXX文本的样式改动。
(3.1.3)页面触发事件相关;检索改动的代码中,是否包含@click、@change、@input、@blur属性的改动,如果涉及,则说明修改涉及的页面触发事件的。对此,获取包含这些属性对应的标签内容,并根据属性对应的值,在setup函数内,查找到对应触发事件的方法,确认是否触发事件的方法也有做改动。如果有,在最终生成的改动描述文案中会多一句描述。最终会生成一条改动内容:页面XXX文本中(点击/改变/输入/失焦)事件修改;同时涉及其触发事件的修改。
(3.2)如果文件涉及的改动内容,涉及XXX.do/https:XXXX/ajax/fetch/axios相关的关键字,则说明改动是涉及接口改动的,即差异化数据的差异类型为接口改动,此时需要生成以下改动描述内容:
(3.2.1)在接口改动相关的代码块内,查找url关键字,获取到关键字值,即为接口地址,记录下来。
(3.2.2)在接口改动的相关代码内容,通过查找function或箭头函数关键字()=>{},来获取到对应的接口请求回调函数,查看回调函数内的逻辑是否有做相应的改动,如果有,则也记录下来。
最终,生成一条接口改动描述内容:涉及XXX接口改动,同时涉及其回调函数变更。
(4)当第三步完成后,对于每一条提交记录,进行相关改动文件、改动类型进行一个总的计数,然后在本次提交记录描述内容前面,插入一段概述,概述的内容模板如下:
概述:本次提交一共涉及的文件一共有N个文件,其中涉及页面元素一共修改X处、点击事件X个、修改/新增接口请求X个。
基于此,实施例步骤203具体可以包括:利用开发文档生成工具根据配置文件中配置的文档基本信息生成开发文档的基础文档,文档基本信息包括自定义文档标题、提交代码的平台账号名称以及当前系统的时间,基础文档包括开发文档的文档标题、文档作者以及开发文档的产出时间;获取差异化数据的差异类型,并利用开发文档生成工具根据差异类型生成差异化数据对应的差异化描述文档;整合基础文档和差异化描述文档,得到语义化的开发文档。
其中,差异化数据的差异类型包括:展示元素改动、接口改动;在并利用开发文档生成工具根据差异类型生成差异化数据对应的差异化描述文档时,实施例步骤具体可以包括:若差异化数据的差异类型为展示元素改动,则利用开发文档生成工具生成展示元素对应第一预设改动描述格式下的第一差异化描述文档;若差异化数据的差异类型为接口改动,则利用开发文档生成工具在接口改动相关的代码块内查取接口地址,在接口改动的相关代码内查取接口请求回调函数,确定接口请求回调函数内的逻辑改动内容,根据接口地址和/或逻辑改动内容生成第二预设改动描述格式下的第二差异化描述文档。
为了清楚说明本申请中的技术方案,在此结合上述实施例步骤203中的描述以及说明书附图3,对语义化的开发文档的生成过程进行示例性的说明。可首先利用开发文档生成工具根据配置文件中配置的文档基本信息生成开发文档的基础文档,包括开发文档的文档标题(如图3中的XXX需求开发设计文档)、文档作者(如图3中的小明)以及开发文档的产出时间(如图3中的生成文档时间:2021.09.09 12:15:45、提交时间:2021.09.01 10:15:45)。鉴于每一条提交记录,都可能会涉及到文件改动,故可进行代码层面的解析,并转译为语义化的描述内容,之后对于每一条提交记录,进行相关改动文件、改动类型进行一个总的计数,然后在本次提交记录描述内容前面,插入一段概述,如图3中生成的概述内容为:本次提交一共涉及的文件一共有3个文件(A.vue文件、B.vue文件、C.vue文件),其中涉及页面元素一共修改X处、点击事件X个、修改/新增接口请求X个。在概述之后,进一步分别展示各个文件对应改动点的差异化描述,例如:
A.vue文件
改动点1:页面文案展示修改,由XXX变更为XXX。
改动点2:涉及页面XXX文本的样式改动。
改动点3:页面XXX文本中(点击/改变/输入/失焦)事件修改;同时涉及其触发事件的修改。
改动点4:涉及XXX接口改动,同时涉及其回调函数变更。
B.vue文件
改动点1:……
改动点2:……
改动点3:……
C.vue文件
改动点1:……
改动点2:……
改动点3:……
借由上述开发文档的生成方法,可首先确定待生成开发文档的目标框架项目,并在目标框架项目中预先配置开发文档生成工具;之后可进一步生成针对目标框架项目的配置文件,配置文件包含开发文档的生成规则;最后基于开发文档生成工具以及配置文件生成目标框架项目的开发文档。本申请中的技术方案,可实现开发文档的自动化生成,不在需要担心额外投入过多的时间进行开发文档的编写操作,只需要在配置文件中,进行简单的设置,就可以生成开发文档,进而可简化文档生成工作量,提高工作效率。此外,对于各种需求变更带来的代码改动的调整,在开发完成后,重新生成开发文档即可,对于文档的调整可以做到非常灵活,可以将更多的时间专注于提升代码质量。开发文档是根据改动点生成描述内容的,故可避免人为编写开发文档过程中,因为遗漏、疏忽等原因,造成的改动点描述不全的情况,造成测试案例场景覆盖的缺失。且统一生成的开发文档风格统一,开发人员不再需要适应不同开发者撰写风格的不同,而带来的阅读上困难,在需要快速查阅定位问题的时候,可以做到高效快速。
进一步的,作为图1和图2所示方法的具体实现,本申请实施例提供了一种开发文档的生成装置,如图4所示,该装置包括:确定模块31、第一生成模块32、第二生成模块33;
确定模块31,可用于确定待生成开发文档的目标框架项目,目标框架项目中包含预设的开发文档生成工具;
第一生成模块32,可用于生成针对目标框架项目的配置文件,配置文件包含开发文档的生成规则;
第二生成模块33,可用于基于开发文档生成工具以及配置文件生成目标框架项目的开发文档。
在具体的应用场景中,在基于开发文档生成工具以及配置文件生成目标框架项目的开发文档时,如图5所示,第二生成模块33,具体可包括:提取单元331、处理单元332;
提取单元331,可用于利用开发文档生成工具和配置文件包含开发文档的生成规则,提取目标框架项目中所修改代码的差异化数据;
处理单元332,可用于利用开发文档生成工具对差异化数据进行解析处理,生成语义化的开发文档。
在具体的应用场景中,在利用开发文档生成工具和配置文件包含开发文档的生成规则,提取目标框架项目中所修改代码的差异化数据时,提取单元331,具体可用于利用开发文档生成工具定位目标框架项目的项目根目录,并在项目根目录中根据配置文件,获取目标框架项目对应历史代码分支下的第一代码提交记录以及当前代码分支下的第二代码提交记录,历史代码分支的项目版本早于当前代码分支的项目版本;对比第一代码提交记录和第二代码提交记录,确定目标框架项目中所修改代码的差异化数据。
在具体的应用场景中,在通过对比第一代码提交记录和第二代码提交记录,确定目标框架项目中所修改代码的差异化数据时,提取单元331,具体可用于根据第一代码提交记录确定历史代码分支提交的第一代码文件,根据第二代码提交记录确定当前代码分支提交的第二代码文件;获取第二代码文件中所包含的文件名称,并判断第一代码文件中是否包含文件名称;若是,则通过执行预设查询指令,确定同一文件名称下第一代码文件和第二代码文件的代码差异信息,并将存在代码差异信息的第二代码文件标记为修改文件,代码差异信息包括差异化代码开始和结束的代码位置;若否,则将第二代码文件标记为新增文件;将修改文件和/或新增文件确定为目标框架项目中所修改代码的差异化数据。
在具体的应用场景中,在利用开发文档生成工具对差异化数据进行解析处理,生成语义化的开发文档时,处理单元332,具体可用于:利用开发文档生成工具根据配置文件中配置的文档基本信息生成开发文档的基础文档,文档基本信息包括自定义文档标题、提交代码的平台账号名称以及当前系统的时间,基础文档包括开发文档的文档标题、文档作者以及开发文档的产出时间;获取差异化数据的差异类型,并利用开发文档生成工具根据差异类型生成差异化数据对应的差异化描述文档;整合基础文档和差异化描述文档,得到语义化的开发文档。
在具体的应用场景中,差异化数据的差异类型包括:展示元素改动、接口改动;在获取差异化数据的差异类型,并利用开发文档生成工具根据差异类型生成差异化数据对应的差异化描述文档时,处理单元332,具体可用于:若差异化数据的差异类型为展示元素改动,则利用开发文档生成工具生成展示元素对应第一预设改动描述格式下的第一差异化描述文档;若差异化数据的差异类型为接口改动,则利用开发文档生成工具在接口改动相关的代码块内查取接口地址,在接口改动的相关代码内查取接口请求回调函数,确定接口请求回调函数内的逻辑改动内容,根据接口地址和/或逻辑改动内容生成第二预设改动描述格式下的第二差异化描述文档。
在具体的应用场景中,为实现在目标框架项目中预先完成对开发文档生成工具的配置,如图5所示,该装置还包括:检测模块34、配置模块35;
检测模块34,可用于检测目标框架项目中是否包含预设的开发文档生成工具;
配置模块35,可用于若否,则通过命令行工具定位目标框架项目的根目录,并在根目录下通过输入预设指令配置开发文档生成工具。
需要说明的是,本实施例提供的一种开发文档的生成装置所涉及各功能单元的其他相应描述,可以参考图1至图2的对应描述,在此不再赘述。
基于上述如图1至图2所示方法,相应的,本实施例还提供了一种非易失性存储介质,其上存储有计算机可读指令,该可读指令被处理器执行时实现上述如图1至图2所示的开发文档的生成方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景的方法。
基于上述如图1至图2所示的方法和图4、图5所示的虚拟装置实施例,为了实现上述目的,本实施例还提供了一种计算机设备,该计算机设备包括存储介质和处理器;非易失性存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图2所示的开发文档的生成方法。
可选的,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
非易失性存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现非易失性存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。
通过应用本申请的技术方案,与目前现有技术相比,本申请可首先确定待生成开发文档的目标框架项目,并在目标框架项目中预先配置开发文档生成工具;之后可进一步生成针对目标框架项目的配置文件,配置文件包含开发文档的生成规则;最后基于开发文档生成工具以及配置文件生成目标框架项目的开发文档。本申请中的技术方案,可实现开发文档的自动化生成,不在需要担心额外投入过多的时间进行开发文档的编写操作,只需要在配置文件中,进行简单的设置,就可以生成开发文档,进而可简化文档生成工作量,提高工作效率。此外,对于各种需求变更带来的代码改动的调整,在开发完成后,重新生成开发文档即可,对于文档的调整可以做到非常灵活,可以将更多的时间专注于提升代码质量。开发文档是根据改动点生成描述内容的,故可避免人为编写开发文档过程中,因为遗漏、疏忽等原因,造成的改动点描述不全的情况,造成测试案例场景覆盖的缺失。且统一生成的开发文档风格统一,开发人员不再需要适应不同开发者撰写风格的不同,而带来的阅读上困难,在需要快速查阅定位问题的时候,可以做到高效快速。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种开发文档的生成方法,其特征在于,包括:
确定待生成开发文档的目标框架项目,所述目标框架项目中包含预设的开发文档生成工具;
生成针对所述目标框架项目的配置文件,所述配置文件包含开发文档的生成规则;
基于所述开发文档生成工具以及所述配置文件生成所述目标框架项目的开发文档。
2.根据权利要求1所述的方法,其特征在于,所述基于所述开发文档生成工具以及所述配置文件生成所述目标框架项目的开发文档,包括:
利用所述开发文档生成工具和所述配置文件包含开发文档的生成规则,提取所述目标框架项目中所修改代码的差异化数据,并利用所述开发文档生成工具对所述差异化数据进行解析处理,生成语义化的开发文档。
3.根据权利要求2所述的方法,其特征在于,所述利用所述开发文档生成工具和所述配置文件包含开发文档的生成规则,提取所述目标框架项目中所修改代码的差异化数据,其特征在于,包括:
利用所述开发文档生成工具定位所述目标框架项目的项目根目录,并在所述项目根目录中根据所述配置文件,获取所述目标框架项目对应历史代码分支下的第一代码提交记录以及当前代码分支下的第二代码提交记录,所述历史代码分支的项目版本早于所述当前代码分支的项目版本;
对比所述第一代码提交记录和所述第二代码提交记录,确定所述目标框架项目中所修改代码的差异化数据。
4.根据权利要求3所述的方法,其特征在于,所述对比所述第一代码提交记录和所述第二代码提交记录,确定所述目标框架项目中所修改代码的差异化数据,包括:
根据所述第一代码提交记录确定历史代码分支提交的第一代码文件,根据所述第二代码提交记录确定当前代码分支提交的第二代码文件;
获取所述第二代码文件中所包含的文件名称,并判断所述第一代码文件中是否包含所述文件名称;
若是,则通过执行预设查询指令,确定同一所述文件名称下所述第一代码文件和所述第二代码文件的代码差异信息,并将存在所述代码差异信息的第二代码文件标记为修改文件,所述代码差异信息包括差异化代码开始和结束的代码位置;
若否,则将所述第二代码文件标记为新增文件;
将所述修改文件和/或所述新增文件确定为所述目标框架项目中所修改代码的差异化数据。
5.根据权利要求2所述的方法,其特征在于,所述利用所述开发文档生成工具对所述差异化数据进行解析处理,生成语义化的开发文档,包括:
利用所述开发文档生成工具根据所述配置文件中配置的文档基本信息生成开发文档的基础文档,所述文档基本信息包括自定义文档标题、提交代码的平台账号名称以及当前系统的时间,所述基础文档包括所述开发文档的文档标题、文档作者以及所述开发文档的产出时间;
获取所述差异化数据的差异类型,并利用所述开发文档生成工具根据所述差异类型生成所述差异化数据对应的差异化描述文档;
整合所述基础文档和所述差异化描述文档,得到语义化的开发文档。
6.根据权利要求5所述的方法,其特征在于,所述差异化数据的差异类型包括:展示元素改动、接口改动;
所述获取所述差异化数据的差异类型,并利用所述开发文档生成工具根据所述差异类型生成所述差异化数据对应的差异化描述文档,包括:
若所述差异化数据的差异类型为展示元素改动,则利用所述开发文档生成工具生成展示元素对应第一预设改动描述格式下的第一差异化描述文档;
若所述差异化数据的差异类型为接口改动,则利用所述开发文档生成工具在接口改动相关的代码块内查取接口地址,在接口改动的相关代码内查取接口请求回调函数,确定所述接口请求回调函数内的逻辑改动内容,根据所述接口地址和/或所述逻辑改动内容生成第二预设改动描述格式下的第二差异化描述文档。
7.根据权利要求1所述的方法,其特征在于,在基于开发文档生成工具库以及所述配置文件生成所述目标框架项目的开发文档之前,还包括:
检测所述目标框架项目中是否包含预设的开发文档生成工具;
若否,则通过命令行工具定位所述目标框架项目的根目录,并在所述根目录下通过输入预设指令配置所述开发文档生成工具。
8.一种开发文档的生成装置,其特征在于,包括:
确定模块,用于确定待生成开发文档的目标框架项目,所述目标框架项目中包含预设的开发文档生成工具;
第一生成模块,用于生成针对所述目标框架项目的配置文件,所述配置文件包含开发文档的生成规则;
第二生成模块,用于基于所述开发文档生成工具以及所述配置文件生成所述目标框架项目的开发文档。
9.一种非易失性可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至7中任一项所述的发文档的生成方法。
10.一种计算机设备,包括非易失性可读存储介质、处理器及存储在非易失性可读存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述的发文档的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210278851.7A CN114610286A (zh) | 2022-03-21 | 2022-03-21 | 开发文档的生成方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210278851.7A CN114610286A (zh) | 2022-03-21 | 2022-03-21 | 开发文档的生成方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610286A true CN114610286A (zh) | 2022-06-10 |
Family
ID=81865668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210278851.7A Pending CN114610286A (zh) | 2022-03-21 | 2022-03-21 | 开发文档的生成方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610286A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115269444A (zh) * | 2022-09-30 | 2022-11-01 | 平安银行股份有限公司 | 代码静态检测方法、装置及服务器 |
CN117075900A (zh) * | 2023-08-21 | 2023-11-17 | 北京饼干科技有限公司 | 基于AI生成h5页面内容的方法及系统 |
CN117149140A (zh) * | 2023-09-14 | 2023-12-01 | 睿珀智能科技有限公司 | 一种用于编码的架构信息生成方法、装置及相关设备 |
-
2022
- 2022-03-21 CN CN202210278851.7A patent/CN114610286A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115269444A (zh) * | 2022-09-30 | 2022-11-01 | 平安银行股份有限公司 | 代码静态检测方法、装置及服务器 |
CN115269444B (zh) * | 2022-09-30 | 2023-02-03 | 平安银行股份有限公司 | 代码静态检测方法、装置及服务器 |
CN117075900A (zh) * | 2023-08-21 | 2023-11-17 | 北京饼干科技有限公司 | 基于AI生成h5页面内容的方法及系统 |
CN117075900B (zh) * | 2023-08-21 | 2024-05-14 | 北京饼干科技有限公司 | 基于AI生成h5页面内容的方法及系统 |
CN117149140A (zh) * | 2023-09-14 | 2023-12-01 | 睿珀智能科技有限公司 | 一种用于编码的架构信息生成方法、装置及相关设备 |
CN117149140B (zh) * | 2023-09-14 | 2024-03-12 | 睿珀智能科技有限公司 | 一种用于编码的架构信息生成方法、装置及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3433732B1 (en) | Converting visual diagrams into code | |
CN114610286A (zh) | 开发文档的生成方法、装置、计算机设备及存储介质 | |
CN111832236B (zh) | 一种芯片回归测试方法、系统、电子设备及存储介质 | |
WO2018010552A1 (zh) | 测试方法和装置 | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
CN109308254B (zh) | 一种测试方法、装置及测试设备 | |
US10120658B2 (en) | Method and system for realizing software development tasks | |
US11593342B2 (en) | Systems and methods for database orientation transformation | |
US20120266131A1 (en) | Automatic program generation device, method, and computer program | |
CN111367976A (zh) | 基于java反射机制的excel文件数据的导出方法及装置 | |
CN110990274B (zh) | 一种生成测试案例的数据处理方法、装置及系统 | |
US9940215B2 (en) | Automatic correlation accelerator | |
CN111144070B (zh) | 一种文档解析翻译方法和装置 | |
CN112817866A (zh) | 录制回放方法、装置、系统、计算机设备以及存储介质 | |
CN110806866A (zh) | 一种前端管理系统的生成方法及装置 | |
CN113051262B (zh) | 一种数据质检方法、装置、设备及存储介质 | |
CN112416417A (zh) | 一种代码量统计方法、装置、电子设备及存储介质 | |
CN115048083A (zh) | 组件的可视化方法、装置、存储介质及电子设备 | |
JP6551082B2 (ja) | テスト支援装置、テスト支援方法およびテスト支援プログラム | |
CN114356783A (zh) | 单元测试代码自动生成方法、装置、存储介质及设备 | |
CN113326193A (zh) | 一种小程序测试方法及装置 | |
Sianandar et al. | Performance Analysis of Hooks Functionality in React and Vue Frameworks | |
CN110968342A (zh) | 一种版本比对方法、装置及系统 | |
US9910647B2 (en) | Field size calculation and color coding display options usable in an emulated integrated development environment (IDE) | |
JP2020101898A (ja) | 設計図作成支援方法、設計図作成支援装置、及び設計図作成支援プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |