CN112181486A - 一种数据处理的方法、装置和存储介质 - Google Patents
一种数据处理的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN112181486A CN112181486A CN201910593126.7A CN201910593126A CN112181486A CN 112181486 A CN112181486 A CN 112181486A CN 201910593126 A CN201910593126 A CN 201910593126A CN 112181486 A CN112181486 A CN 112181486A
- Authority
- CN
- China
- Prior art keywords
- code
- function
- file
- native code
- document
- 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/70—Software maintenance or management
- G06F8/72—Code refactoring
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请公开了一种数据处理的方法、装置和存储介质,具体为获取需要生成代码文档的代码文件路径;在所述代码文件中分别查询第一函数和第二函数标记的代码内容,其中,所述第一函数和所述第二函数用于标记Android文件和IOS文件中的原生代码内容;当所述第一函数和所述第二函数标记的所述原生代码内容没有对应的注释信息时,将需要显示的原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。本申请实施例通过分别在Android平台和IOS平台中查找预设标记的代码内容,并在没有预设标记的情况下,根据预设模板自动生成与原生代码相关的属性或者方法的代码文档,减少了维护代码文档的成本。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理的方法、装置和存储介质。
背景技术
移动应用主要应用于被Android、iOS两大平台。一般为了降低移动应用的开发效率,并降低研发成本,跨平台进行移动应用的开发已成为趋势。跨平台的移动应用开发主要基于React Native、Weex和Angular三大框架,其中以React Native的应用最为广泛。
React Native官方只提供了一些基础应用程序编程接口(ApplicationProgramming Interface,API)和组件。在实际使用中,各个公司都需要针对本身业务需求,再另外开发API和组件。对于程序开发人员来说,日常工作除了编写代码外,还需要在撰写API文档上花费大量精力。因此,文档维护成为了开发者亟待解决的一个难题。
在实际应用中,通过设置文档自动生成工具自动生成API文档,以解决文档维护问题。许多现代编程语言都有自己的集成化文档生成工具,如Java有JavaDoc,.NET有NDoc,PHP有PHPDoc,Javascript中也有根据注释信息来生成文档的自动化文档生成工具,如JSDoc和JsDoc Toolkit。这些自动化文档工具可以根据代码中的注释自动生成代码文档。但现有的文档生成工具基本全都依赖于开发人员编写的注解或注释。而编写合乎规范的注释信息对于程序开发人员来说也是很耗费时间和精力的,如果忘记写注释或者的注释信息不符合规范,那么最终生成的文档内容就不完善。另外,在React Native框架中,一般的JavaScript文档生成工具还不能完全适用。
发明内容
本申请实施例提供了一种数据处理的方法,该方法通过分别在Android平台和IOS平台中查找预设标记的代码内容,并在没有预设标记的情况下,根据模板自动生成与原生代码相关的属性或者方法的代码文档,克服了维护代码文档而产生的人力成本的缺陷。
该方法包括:
获取需要生成代码文档的代码文件路径;
在所述代码文件中分别查询第一函数和第二函数标记的代码内容,其中,所述第一函数和所述第二函数用于标记Android文件和IOS文件中的原生代码内容;
当所述第一函数和所述第二函数标记的所述原生代码内容没有对应的注释信息时,将需要显示的所述原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。
可选地,分别为替换后的属于所述Android文件和所述IOS文件的所述原生代码内容标记第一标记和第二标记,其中,所述第一标记表示所述原生代码内容仅存在于Android平台,所述第二标记表示所述原生代码内容仅存在于IOS平台。
可选地,当所述第一函数和所述第二函数标记的代码内容有对应的注释信息时,获取所述第一函数和所述第二函数标记的代码内容对应的注释信息,并根据所述注释信息生成所述原生代码文档。
可选地,获取所述代码文件中的各个注释信息;
根据所述各个注释信息和所述原生代码文档,生成最终代码文档。
在本发明的另一个实施例中,提供了一种数据处理的装置,该装置包括:
第一获取模块,用于获取需要生成代码文档的代码文件路径;
查询模块,用于在所述代码文件中分别查询第一函数和第二函数标记的代码内容,其中,所述第一函数和所述第二函数用于标记Android文件和IOS文件中的原生代码内容;
第一生成模块,用于当所述第一函数和所述第二函数标记的所述原生代码内容没有对应的注释信息时,将需要显示的所述原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。
可选地,该装置还包括:
标记模块,用于分别为替换后的属于所述Android文件和所述IOS文件的所述原生代码内容标记第一标记和第二标记,其中,所述第一标记表示所述原生代码内容仅存在于Android平台,所述第二标记表示所述原生代码内容仅存在于IOS平台。
可选地,该装置还包括:
第二获取模块,用于当所述第一函数和所述第二函数标记的代码内容有对应的注释信息时,获取所述第一函数和所述第二函数标记的代码内容对应的注释信息,并根据所述注释信息生成所述原生代码文档。
可选地,该装置还包括:
第三获取模块,用于获取所述代码文件中的各个注释信息;
第二生成模块,用于根据所述各个注释信息和所述原生代码文档,生成最终代码文档。
在本发明的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行上述一种数据处理的方法中的各个步骤。
在本发明的另一个实施例中,提供了一种终端设备,包括处理器,所述处理器用于执行上述一种数据处理的方法中的各个步骤。
如上可见,基于上述实施例,首先获取需要生成代码文档的代码文件路径,其次,在代码文件中分别查询第一函数和第二函数标记的代码内容,其中,第一函数用于标记Android文件中的代码内容,第二函数用于标记IOS文件中的代码内容,最后,当第一函数和第二函数标记的代码内容没有对应的注释信息时,将需要显示的代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。本申请实施例通过分别在Android文件和IOS文件中查找预设标记的代码内容,并在没有预设标记的情况下,将原生代码中相关的属性或者方法放进预先设定的模板中对应的位置,生成原生代码文档,减少了程序开发人员的文档维护成本,并提升了代码文档的可读性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例10所提供的一种数据处理的方法中的示意图;
图2示出了本申请提供的实施例20中一种数据处理的方法的具体流程的示意图;
图3示出了本申请实施例30还提供一种数据处理的装置的示意图;
图4示出了本申请实施例40所提供的一种终端设备的示意图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
基于现有技术中的问题,本申请实施例提供了一种数据处理的方法,通过分别在Android平台和IOS平台中查找预设标记的代码内容,并在没有预设标记的情况下,根据预设模板自动生成与原生代码相关的属性或者方法的代码文档,减少了维护代码文档的成本。
本申请的应用领域主要是在计算机技术领域中,主要针对React Native框架。React Native框架是一种支持Android平台和IOS平台的开源的跨平台移动应用开发框架,在Andoird和IOS两端都使用原生实现,然后封装成统一接口,并对外调用。前端开发人员使用JavaScript调用相关接口来使用。
如图1所示,为本申请实施例10所提供的一种数据处理的方法中的流程的示意图。其中,详细步骤如下:
S11,获取需要生成代码文档的代码文件路径。
本步骤中,代码文档一般为Java script文件。在React Native框架中,一般用Java script语言对前端业务部分进行开发。使用React Native框架开发的代码,其文档内容主要包含API和组件中的各个属性和方法的使用说明。这里,获取需要生成代码文档的代码文件路径,一般为Java script文件路径。
S12,在代码文件中分别查询第一函数和第二函数标记的代码内容。
本步骤中,在获取了上述代码文件后,在代码文件中分别查询第一函数和第二函数标记的代码内容。其中,第一函数和第二函数用于标记Android文件和IOS文件中的原生代码内容。具体的,React Native的原生代码部分包含API和组件,会在特定的地方注册,需要在代码文件中查找以第一函数@ReactMethod或@RCT_EXPORT_METHOD和第二函数@ReactProp或@RCT_EXPORT_VIEW_PROPERTY标记的原生代码内容。其中,@ReactMethod和@ReactProp用于在Android文件中标记原生代码内容,而@RCT_EXPORT_METHOD和@RCT_EXPORT_VIEW_PROPERTY用于在IOS中标记原生代码内容。在Android和IOS的原生代码中查找第一函数和第二函数分别标记的相关原生代码内容。
S13,当第一函数和第二函数标记的原生代码内容没有对应的注释信息时,将需要显示的原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。
本步骤中,在查找到第一函数@ReactMethod或@RCT_EXPORT_METHOD和第二函数@ReactProp或@RCT_EXPORT_VIEW_PROPERTY标记的原生代码内容中没有添加对应的注释信息时,根据预先设定的包含方法名称以及参数内容的模板,根据其中对应的内容,将原生代码的相应内容进行替换。如在Android端查找到如下原生代码内容:
@ReactMethod
Public void show(String msg,int duration,int type)
其中,属性内容是show,参数有三个,分别是msg:String类型,duration:int类型,type:int类型。根据预设模板中的参数名称和预设类型生成如下原生代码文档:
Show:function(
message:string,
duration:number,
type:number,
):void
经过上述替换,生成如上简单的原生代码文档,前端开发人员可以一目了然。
基于本申请的上述实施例,首先获取需要生成代码文档的代码文件路径,其次,在代码文件中分别查询第一函数和第二函数标记的代码内容,其中,第一函数和第二函数用于标记Android文件和IOS文件中的原生代码内容,最后,当第一函数和第二函数标记的原生代码内容没有对应的注释信息时,将需要显示的原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。本申请实施例通过分别在Android文件和IOS文件中查找预设标记的代码内容,并在没有预设标记的情况下,将原生代码中相关的属性或者方法放进预先设定的模板中对应的位置,生成原生代码文档,减少了程序开发人员的文档维护成本,并提升了代码文档的可读性。
如图2所示,为本申请提供的实施例20提供的一中数据处理的方法的具体流程的示意图。其中,该具体流程的详细过程如下:
S201,获取需要生成代码文档的代码文件路径。
S202,在Android文件中查找第一函数和第二函数标记的代码内容。
S203,在IOS文件中查找第一函数和第二函数标记的代码内容。
S204,判断标记的代码内容是否带有注释信息。
S205,添加第一标记和第二标记。
本步骤中,分别为替换后的属于Android文件和IOS文件的原生代码内容标记第一标记和第二标记。其中,第一标记表示原生代码内容仅存在于Android平台,第二标记表示原生代码内容仅存在于IOS平台。具体的,Android和iOS两个平台中的某些特性可能存在差异,比如iOS的侧滑返回特性。此时,针对两个平台各自特有的属性或者方法,加上Androidonly的第一标记和iOS only的第二标记作为提示。
S206,当带有注释信息时,直接使用注释信息。
本步骤中,当第一函数和第二函数标记的代码内容有对应的注释信息时,获取第一函数和第二函数标记的代码内容对应的注释信息,并根据注释信息生成原生代码文档。如果第一函数@ReactMethod或@RCT_EXPORT_METHOD和第二函数@ReactProp或@RCT_EXPORT_VIEW_PROPERTY标记的内容中已经携带注释信息,可以直接将这部分注释信息作为文档内容。
S207,未带有注释信息时,根据模板生成原生代码文档。
S208,获取代码文件中的各个注释信息。
这里,一般利用JSDoc 3.0等现有技术对代码文档汇中的各个注释信息进行抓取。JSDoc用于标注Java script源代码的语言。使用包含JsDoc定义的注释信息,可以在Javascript的注释信息中提取API文档。其中,这里获取的代码文件中的各个注释信息一般不包括Android和iOS文件的原生部分。
S209,生成最终代码文档。
这里,根据上述在Android和iOS文件中抓取的原生代码文档或者注释信息生成的文档和在其它代码文件中抓取的注释信息,生成最终代码文档。具体的,通过一系列工具进行批量处理,最终生成HTML或者Rich Text Format等格式的API文档,以将文档内容展示出来,如展示在浏览器上,供其他开发人员参考。
本申请实施例提供了一种针对使用React Native框架开发的代码文档的自动生成方案,除了抓取Java Script中的注释信息,还会在Android和iOS文件的原生代码里查找含有预设标记为第一函数@ReactMethod或@RCT_EXPORT_METHOD以及第二函数@ReactProp或@RCT_EXPORT_VIEW_PROPERTY标记的内容的方法,并在没有注释信息的情况下,根据预设模版也能自动生成原生代码的相关属性或者方法的原生代码文档,以生成相应的最终代码文档。减少文档的维护成本,并提升了代码文档的可读性。
基于同一发明构思,本申请实施例30还提供一种数据处理的装置,其中,如图3所示,该装置包括:
第一获取模块31,用于获取需要生成代码文档的代码文件路径;
查询模块32,用于在所述代码文件中分别查询第一函数和第二函数标记的代码内容,其中,所述第一函数和所述第二函数用于标记Android文件和IOS文件中的原生代码内容;
第一生成模块33,用于当所述第一函数和所述第二函数标记的所述原生代码内容没有对应的注释信息时,将需要显示的所述原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。
本实施例中,第一获取模块31、查询模块32和第一生成模块33的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
可选地,该装置还包括:
标记模块34,用于分别为替换后的属于所述Android文件和所述IOS文件的所述原生代码内容标记第一标记和第二标记,其中,所述第一标记表示所述原生代码内容仅存在于Android平台,所述第二标记表示所述原生代码内容仅存在于IOS平台。
可选地,该装置还包括:
第二获取模块35,用于当所述第一函数和所述第二函数标记的代码内容有对应的注释信息时,获取所述第一函数和所述第二函数标记的代码内容对应的注释信息,并根据所述注释信息生成所述原生代码文档。
可选地,该装置还包括:
第三获取模块36,用于获取所述代码文件中的各个注释信息;
第二生成模块37,用于根据所述各个注释信息和所述原生代码文档,生成最终代码文档。
如图4所示,本申请的又一实施例40还提供一种终端设备,包括处理器40,其中,处理器40用于执行上述一种数据处理的方法的步骤。
从图4中还可以看出,上述实施例提供的终端设备还包括非瞬时计算机可读存储介质41,该非瞬时计算机可读存储介质41上存储有计算机程序,该计算机程序被处理器40运行时执行上述一种数据处理的方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘和FLASH等,该存储介质上的计算机程序被运行时,能够执行上述的一种数据处理的方法。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据处理的方法,其特征在于,包括:
获取需要生成代码文档的代码文件路径;
在所述代码文件中分别查询第一函数和第二函数标记的代码内容,其中,所述第一函数和所述第二函数用于标记Android文件和IOS文件中的原生代码内容;
当所述第一函数和所述第二函数标记的所述原生代码内容没有对应的注释信息时,将需要显示的所述原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。
2.根据权利要求1所述的方法,其特征在于,所述在代码文件中分别查询第一函数和第二函数标记的代码内容的步骤和所述将需要显示的所述原生代码内容按照预先设定的模板中的对应的内容进行替换的步骤之间,所述方法进一步包括:
分别为替换后的属于所述Android文件和所述IOS文件的所述原生代码内容标记第一标记和第二标记,其中,所述第一标记表示所述原生代码内容仅存在于Android平台,所述第二标记表示所述原生代码内容仅存在于IOS平台。
3.根据权利要求2所述的方法,其特征在于,所述分别为替换后的属于所述Android文件和所述IOS文件的所述原生代码内容标记第一标记和第二标记的步骤和所述生成原生代码文档的步骤之间,所述方法进一步包括:
当所述第一函数和所述第二函数标记的代码内容有对应的注释信息时,获取所述第一函数和所述第二函数标记的代码内容对应的注释信息,并根据所述注释信息生成所述原生代码文档。
4.根据权利要求1所述的方法,其特征在于,所述生成原生代码文档的步骤之后,所述方法进一步包括:
获取所述代码文件中的各个注释信息;
根据所述各个注释信息和所述原生代码文档,生成最终代码文档。
5.一种数据处理的装置,其特征在于,包括:
第一获取模块,用于获取需要生成代码文档的代码文件路径;
查询模块,用于在所述代码文件中分别查询第一函数和第二函数标记的代码内容,其中,所述第一函数和所述第二函数用于标记Android文件和IOS文件中的原生代码内容;
第一生成模块,用于当所述第一函数和所述第二函数标记的所述原生代码内容没有对应的注释信息时,将需要显示的所述原生代码内容按照预先设定的模板中的对应的内容进行替换,并生成原生代码文档。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
标记模块,用于分别为替换后的属于所述Android文件和所述IOS文件的所述原生代码内容标记第一标记和第二标记,其中,所述第一标记表示所述原生代码内容仅存在于Android平台,所述第二标记表示所述原生代码内容仅存在于IOS平台。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于当所述第一函数和所述第二函数标记的代码内容有对应的注释信息时,获取所述第一函数和所述第二函数标记的代码内容对应的注释信息,并根据所述注释信息生成所述原生代码文档。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取所述代码文件中的各个注释信息;
第二生成模块,用于根据所述各个注释信息和所述原生代码文档,生成最终代码文档。
9.一种非瞬时计算机可读存储介质,其特征在于,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如权利要求1至4任一项所述的数据处理的方法中的各个步骤。
10.一种终端设备,其特征在于,包括处理器,所述处理器用于执行如权利要求1至4中任一项所述的数据处理的方法中的各步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910593126.7A CN112181486A (zh) | 2019-07-03 | 2019-07-03 | 一种数据处理的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910593126.7A CN112181486A (zh) | 2019-07-03 | 2019-07-03 | 一种数据处理的方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181486A true CN112181486A (zh) | 2021-01-05 |
Family
ID=73916017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910593126.7A Pending CN112181486A (zh) | 2019-07-03 | 2019-07-03 | 一种数据处理的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181486A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866451A (zh) * | 2022-04-29 | 2022-08-05 | 深圳依时货拉拉科技有限公司 | iOS端路由通信改进方法、装置、存储介质和设备 |
-
2019
- 2019-07-03 CN CN201910593126.7A patent/CN112181486A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866451A (zh) * | 2022-04-29 | 2022-08-05 | 深圳依时货拉拉科技有限公司 | iOS端路由通信改进方法、装置、存储介质和设备 |
CN114866451B (zh) * | 2022-04-29 | 2023-10-03 | 深圳依时货拉拉科技有限公司 | iOS端路由通信改进方法、装置、存储介质和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491199B (zh) | 一种自动生成接口的方法及终端 | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
CN108595389B (zh) | 一种将Word文档转换为txt纯文本文档的方法 | |
CN106844307B (zh) | 一种基于标记实现Excel转Word的系统及方法 | |
KR20140009297A (ko) | 예시에 의한 데이터 포매팅 | |
CN111159982B (zh) | 文档编辑方法、装置、电子设备及计算机可读存储介质 | |
CN106547782A (zh) | 日志信息的获取方法及装置 | |
CN113010169A (zh) | 用于将ui图转换成代码文件的方法和装置 | |
CN110688315A (zh) | 接口代码检测报告生成方法、电子装置及存储介质 | |
CN111522583A (zh) | 一种生成配置文件的方法、装置、计算机设备及存储介质 | |
CN112231197A (zh) | 一种页面测试的方法、装置和存储介质 | |
CN112181486A (zh) | 一种数据处理的方法、装置和存储介质 | |
CN113296752A (zh) | 生成api文档的方法、系统、设备及存储介质 | |
CN111026604B (zh) | 一种日志文件解析方法及装置 | |
CN109947711B (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
CN115291887A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN115599388A (zh) | 一种api接口文档生成方法、存储介质及电子设备 | |
CN110515653B (zh) | 文档生成方法、装置、电子设备及计算机可读存储介质 | |
CN109509467B (zh) | 代码生成方法及装置 | |
US9542182B2 (en) | Standardization of variable names in an integrated development environment | |
CN111562907A (zh) | 自定义接口数据的转换方法与系统 | |
CN113822030A (zh) | 一种数据导出的方法、装置和存储介质 | |
CN108415814B (zh) | 自动记录字段变化方法、应用服务器及计算机可读存储介质 | |
CN112148581A (zh) | 代码规范检查方法、装置、系统及存储介质 | |
CN112181398A (zh) | 配置文件处理装置、方法及存储介质 |
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 |