CN113282285A - 代码编写方法、装置、电子设备及存储介质 - Google Patents

代码编写方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113282285A
CN113282285A CN202110740458.0A CN202110740458A CN113282285A CN 113282285 A CN113282285 A CN 113282285A CN 202110740458 A CN202110740458 A CN 202110740458A CN 113282285 A CN113282285 A CN 113282285A
Authority
CN
China
Prior art keywords
code
user
writing
area
objects
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
Application number
CN202110740458.0A
Other languages
English (en)
Inventor
邢培康
王凯
李炯
何子南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110740458.0A priority Critical patent/CN113282285A/zh
Publication of CN113282285A publication Critical patent/CN113282285A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开提供了一种代码编写方法,涉及金融领域或其他技术领域。该代码编写方法包括:在第一区域展示N个对象,其中,所述N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数;响应用户的第一选中操作,确定所述用户选中的所述N个对象中的第一对象;解析与所述第一对象相关联的第一代码文件,以获得所述第一代码文件的代码内容;以及根据预设规则,在第二区域执行编写第一目标代码的操作,其中,所述代码内容包括所述第一目标代码。本公开还提供了一种代码编写装置、设备和存储介质。

Description

代码编写方法、装置、电子设备及存储介质
技术领域
本公开涉及金融领域或其他领域,更具体地,涉及一种代码编写方法、装置、设备、介质和程序产品。
背景技术
随着计算机技术的快速发展,互联网被越来越多地应用于工农业生产、建筑、物流、和日常生活等诸多领域,互联网技术可以通过网页或应用程序等提供服务。因此,实现网页或应用程序,及对应的各种功能的编程工作愈发重要。用户在编程时通常手动输入代码进行编写,例如使用某个类代码中的方法时,会手动输入该类代码的相关属性,然后再手动输入该类代码中的目标方法代码。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:
在有较多的类代码,或者目标类代码内具有较多的方法代码时,如用户不能准确记忆相关代码内容,则会导致手动输入正确率低,从而导致代码编写效率降低。
发明内容
鉴于上述问题,本公开提供了一种能够自动执行代码编写操作,以提高代码编写效率的代码编写方法、装置、电子设备、存储介质和程序产品。
本公开实施例的一个方面,提供了一种代码编写方法。所述代码编写方法包括:在第一区域展示N个对象,其中,所述N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数;响应用户的第一选中操作,确定所述用户选中的所述N个对象中的第一对象;解析与所述第一对象相关联的第一代码文件,以获得所述第一代码文件的代码内容;以及根据预设规则,在第二区域执行编写第一目标代码的操作,其中,所述代码内容包括所述第一目标代码。
根据本公开的实施例,所述在所述第二区域执行编写所述第一目标代码的操作包括:获得所述第二区域中的编写位置;以及将所述第一目标代码插入至所述编写位置。
根据本公开的实施例,所述代码内容包括M个字段,所述方法还包括获得所述第一目标代码,具体包括:将所述M个字段展示在第三区域,其中,M为大于或等于1的整数;响应所述用户的第二选中操作,确定所述用户选中的所述M个字段中的第一字段;获得与所述第一字段对应的所述第一目标代码。
根据本公开的实施例,所述获得所述第二区域中的编写位置包括:监听所述用户的拖拽动作,其中,所述拖拽动作包括所述用户将所述第一字段由所述第三区域拖拽至所述第二区域的动作;获得拖拽位置,以将所述拖拽位置作为所述编写位置,其中,所述拖拽位置包括所述用户在所述第二区域结束所述拖拽动作的位置。
根据本公开的实施例,所述第一目标代码包括S个第二目标代码,所述将所述第一目标代码插入至所述编写位置包括:当所述用户在所述第二区域结束所述拖拽动作后,在第四区域展示所述S个第二目标代码,其中,S为大于或等于1的整数;响应用户的第三选中操作,复制所述用户选中的所述S个第二目标代码中的第三目标代码;将所述第三目标代码粘贴至所述编写位置。
根据本公开的实施例,所述根据预设规则,在第二区域执行编写第一目标代码的操作包括:获得所述第一对象的名称;在所述第二区域执行编写所述名称的操作,其中,所述第一目标代码包括所述名称。
根据本公开的实施例,所述响应用户的第一选中操作,确定所述用户选中的所述N个对象中的第一对象包括:利用预设的事件监听器,获得所述用户的选中事件;基于所述选中事件获得选中对象,将所述选中对象作为所述第一对象;其中,所述选中事件包括外接设备选中事件、触摸选中事件或语音选中事件中的至少一种。
根据本公开的实施例,所述预设规则包括:当所述代码内容中包括预定内容时,在所述第二区域执行编写所述第一目标代码的操作。
本公开实施例的另一方面提供了一种代码编写装置。代码编写装置包括对象展示模块、对象确定模块、文件解析模块和代码编写模块。所述对象展示模块用于在第一区域展示N个对象,其中,所述N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数;所述对象确定模块用于响应用户的第一选中操作,确定所述用户选中的所述N个对象中的第一对象;所述文件解析模块用于解析与所述第一对象相关联的第一代码文件,以获得所述第一代码文件中的代码内容;以及所述代码编写模块用于根据预设规则,在第二区域执行编写第一目标代码的操作,其中,所述代码内容包括所述第一目标代码。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
本公开的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
本公开的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
上述一个或多个实施例具有如下优点或有益效果:可以至少部分地解决手动输入代码正确率低,且效率低的问题,并通过直观的可视化编程方式,在第一区域展示N个对象,根据用户选中的第一对象获得其关联代码文件的代码内容,并根据预设规则,自动在第二区域执行编写第一目标代码的操作,从而能够降低编码时间,提高正确率和编码效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的代码编写方法的应用场景图;
图2示意性示出了根据本公开实施例的代码编写方法的流程图;
图3示意性示出了根据本公开实施例的确定第一对象的流程图;
图4示意性示出了根据本公开实施例的执行编写第一目标代码的操作的流程图;
图5示意性示出了根据本公开另一实施例的执行编写第一目标代码的操作的流程图;
图6示意性示出了根据本公开另一实施例的代码编写方法的流程图;
图7示意性示出了根据本公开实施例的获得编写位置的流程图;
图8示意性示出了根据本公开实施例的将第一目标代码插入至编写位置的流程图;
图9A、图9B和图9C示意性示出了根据本公开又一实施例的代码编写方法的流程图;
图10示意性示出了根据本公开实施例的代码编写装置的结构框图;以及
图11示意性示出了根据本公开实施例的适于实现代码编写方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
相关技术中,用户可以使用Java、C++或Go语言等进行编程。以用户使用Java类代码为例,当用户在编码时使用某个bean里的方法,如setter和getter等。首先,将bean的属性(如bean的名称)手动输入。然后如用户想要使用getter方法,而在bean里不同的字段可能都会用到getter方法,那么用户需要手动输入想要使用的getter方法,或者在关联出来的不同字段的getter方法中找到对应的方法。其中,bean为用于描述java的软件组件模型,属于特殊的Java类。一个bean扮演着应用程序素材的角,目的用于将可以重复使用的软件代码打包。
因此,在编程过程中,当bean数量较多时,需要用户准确记忆目标bean,并正确输入,接着对于目标bean内数量较多的方法,依然需要用户准确记忆目标方法,或者从众多方法中找到目标,并正确输入,从而导致操作繁琐,效率较低。
本公开的实施例提供了一种代码编写方法、装置、电子设备、存储介质及程序产品。该代码编写方法包括:在第一区域展示N个对象,其中,N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数。响应用户的第一选中操作,确定用户选中的N个对象中的第一对象。解析与第一对象相关联的第一代码文件,以获得第一代码文件的代码内容。以及根据预设规则,在第二区域执行编写第一目标代码的操作,其中,代码内容包括第一目标代码。
根据本公开的实施例,通过直观的可视化编程方式,在第一区域展示N个对象,根据用户选中的第一对象获得其关联代码文件的代码内容,并根据预设规则,自动在第二区域执行编写代码内容中第一目标代码的操作,能够降低编码时间,提高正确率和编码效率。
需要说明的是,本公开实施例提供的一种代码编写方法、装置、电子设备、存储介质及程序产品可用于编程相关方面,也可用于除编程之外的多种领域,如金融领域等。本公开实施例提供的代码编写方法、装置、电子设备、存储介质及程序产品的应用领域不做限定。
在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供或应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
图1示意性示出了根据本公开实施例的代码编写方法的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如开发工具类应用(如IDE,Integrated Development Environment,集成开发环境)、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。如用户进行代码编写时,可以基于自己的需求打开程序开发工具类应用,然后进行代码编写工作。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的代码编写方法一般可以由服务器105执行。相应地,本公开实施例所提供的代码编写装置一般可以设置于服务器105中。本公开实施例所提供的代码编写方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的代码编写装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图9对本公开实施例的代码编写方法进行详细描述。
图2示意性示出了根据本公开实施例的代码编写方法的流程图。
如图2所示,该实施例的代码编写方法包括操作S210~操作S240。
在操作S210,在第一区域展示N个对象,其中,N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数。
根据本公开的实施例,第一区域可用于展示编写代码过程中可能用到的对象,N个对象以列表的形式展示在第一区域,每个对象可能对应于代码库中的代码文件(例如后缀为java的文件)。例如,每个对象对应一个类代码,并且第一区域中的每个对象与对应代码文件的地址相关联。其中,第一对象可以是N个对象中的任一个对象。需要说明的是,可以将代码库中可能用到的对象全部或部分展示在第一区域中,本公开不进行具体限定。
在操作S220,响应用户的第一选中操作,确定用户选中的N个对象中的第一对象。
在操作S230,解析与第一对象相关联的第一代码文件,以获得第一代码文件的代码内容。
根据本公开的实施例,当用户选中第一对象后,获取第一代码文件的地址,基于地址获得代码文件,并进行解析。
在操作S240,根据预设规则,在第二区域执行编写第一目标代码的操作,其中,代码内容包括第一目标代码。
根据本公开的实施例,预设规则可包括:当代码内容中包括预定内容时,在第二区域执行编写第一目标代码的操作。其中,第二区域包括可用于接收用户的编写操作,为用户提供编写代码的区域。例如,在一些实施例中,预定内容可以包括关键词、特定地址路径或代码内容中的注解等信息。根据预定内容可以识别出当前选定的对象是否能够执行自动代码编写操作。
根据本公开的实施例,通过直观的可视化编程方式,在第一区域展示N个对象,根据用户选中的第一对象获得其关联代码文件的代码内容,并根据预设规则,自动在第二区域执行编写代码内容中第一目标代码的操作,能够降低编码时间,提高正确率和编码效率。
图3示意性示出了根据本公开实施例的操作S220中确定第一对象的流程图。
如图3所示,在操作S220,响应用户的第一选中操作,确定用户选中的N个对象中的第一对象可以包括操作S310~操作S320。
在操作S310,利用预设的事件监听器,获得用户的选中事件。
在操作S320,基于选中事件获得选中对象,将选中对象作为第一对象。其中,选中事件包括外接设备选中事件、触摸选中事件或语音选中事件中的至少一种。
根据本公开的实施例,外接设备可以包括键盘或鼠标等设备。以鼠标为例,首先可以在终端设备创建事件监听器,如eventListener,并在事件监听器中实现鼠标监听事件(如mouseEvent里的leftClick)。在用户使用鼠标左键点击后,则可以获取点击对象,如果点击的对象是个java后缀的文件,则获取代码文件地址,并根据地址读取代码内容。
根据本公开的实施例,当选中事件为触摸选中事件时,可以通过预设的事件监听器捕获触摸事件,以获取用户的触摸操作。如当用户通过手指或触摸设备点击第一对象时,即可获得选中对象。
根据本公开的实施例,当选中事件为语音选中事件时,可以设置语音解析模型对用户的声音进行解析,并根据声音中的关键词信息(如对象的名称等属性信息)确定选中对象。
根据本公开的实施例,可以通过多种方式获得用户的选中对象,满足不同用户的编码需求,通过高效确定第一对象的方式,为获得对应的代码内容,以及第一目标代码做好铺垫工作。
图4示意性示出了根据本公开实施例的操作S240中执行编写第一目标代码的操作的流程图。
如图4所示,在操作S240根据预设规则,在第二区域执行编写第一目标代码的操作可以包括操作S410~操作S420。
在操作S410,获得第一对象的名称。
根据本公开的实施例,预设规则可以设定为自动输入选中对象的名称。那么,基于预设规则,在选中第一对象后,可以从第一对象的代码文件中获得第一对象的名称内容。在一些实施例中,第一对象的名称可以从代码文件的名称获得。
在操作S420,在第二区域执行编写名称的操作,其中,第一目标代码包括名称。
例如第一对象为一个bean,相关技术中,用户需要手动输入bean的名称。当具有多个bean时,用户在准确记忆每一个bean名称的情况下,才能快速且准确的输入目标bean的名称。根据本公开实施例的代码编写方法,首先通过可视化的第一区域展示出所有bean,然后根据用户的选中对象自动在第二区域输入选中的bean的名称,能够代替用户手动输入的操作,提高编码效率和准确率。
图5示意性示出了根据本公开另一实施例的执行编写第一目标代码的操作的流程图。
如图5所示,在操作S240根据预设规则,在第二区域执行编写第一目标代码的操作可以包括操作S510~操作S520。
在操作S510,获得第二区域中的编写位置。
在操作S520,将第一目标代码插入至编写位置。
根据本公开的实施例,预设规则可以包括自动执行编写操作的步骤。例如,首先,用户通过鼠标点击选中第一对象。然后,获取第一代码文件的代码内容,并根据具体规则获取第一目标代码,如获取第一对象的名称。接着,获得第二区域中光标的位置,即可确认其为用户的编写位置。最后,将第一对象的名称插入到该编写位置。
图6示意性示出了根据本公开另一实施例的代码编写方法的流程图。
如图6所示,该实施例的代码编写方法包括操作S210~操作S230、操作S510~操作S520以及包括操作S610~操作S630。其中,第一代码文件的代码内容包括M个字段。
在操作S210,在第一区域展示N个对象,其中,N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数。
在操作S220,响应用户的第一选中操作,确定用户选中的N个对象中的第一对象。
在操作S230,解析与第一对象相关联的第一代码文件,以获得第一代码文件的代码内容。
根据本公开的实施例,第一代码文件的代码内容(仅为示例)如下:
Figure BDA0003140338780000101
Figure BDA0003140338780000111
其中,第一对象的名称可以为“Students”。
在操作S610,将M个字段展示在第三区域,其中,M为大于或等于1的整数。
根据本公开的实施例,首先,解析上述代码内容确定其实现了类代码OperationCommExt,所以可以识别出“Students”是个bean。接着通过“private Stringserno、private String name和private String age”获得三个字段“serno”、“name”和“age”。最后展示在第三区域。
在操作S620,响应用户的第二选中操作,确定用户选中的M个字段中的第一字段。
根据本公开的实施例,若用户选中字段“name”,则将其确定为第一字段。
在操作S630,获得与第一字段对应的第一目标代码,以在第二区域执行编写第一目标代码的操作。
根据本公开的实施例,“name”对应的第一目标代码可以包括如下内容:
Figure BDA0003140338780000112
然后,可以将上述内容全部自动编写在第二区域,也可以根据用户的进一步操作,确定其中一个方法代码后自动编写在第二区域。另外,在编写时,可以自动将第一对象的名称“Students”自动输入,也可以先由用户手动输入,以满足开发工具的调用规则。即可以根据开发工具或者编程语言的调用规则自动补充其他代码内容。
在操作S510,获得第二区域中的编写位置。
在操作S520,将第一目标代码插入至编写位置。
相关技术中,例如用户在确定使用“Students”这个bean后,想要使用其中的“public String getName()”方法,输入get后,可能会关联出“public String getAge()、public String getSerno()、public String getName()、public String getAge()”,然后用户从上述方法中找到目标方法。
根据本公开的实施例,通过将在所有方法中找到目标方法,转换为在所有的字段中查找到目标字段,如“name”。然后从目标字段中对应的第一目标代码,如“public StringgetName()、public void setName(String name)”中找到目标方法,能够降低查找时间,提高代码编写效率。
图7示意性示出了根据本公开实施例的操作S510中获得编写位置的流程图。
如图7所示,在操作S510,获得第二区域中的编写位置可以包括操作S710~操作S720。
在操作S710,监听用户的拖拽动作,其中,拖拽动作包括用户将第一字段由第三区域拖拽至第二区域的动作。
在操作S720,获得拖拽位置,以将拖拽位置作为编写位置,其中,拖拽位置包括用户在第二区域结束拖拽动作的位置。
根据本公开的实施例,以用户操作鼠标为例,并结合上述第一字段为“Students”的代码内容。当在第三区域展示三个字段“serno”、“name”和“age”后,首先,用户操作鼠标左键令鼠标箭头(仅为示例)点击“name”。然后继续摁住鼠标左键,将鼠标箭头从第三区域移动至第二区域。接着,用户将鼠标箭头移动至想要编写代码的位置,并松开鼠标左键,其松开鼠标左键的动作即标志结束拖拽动作。相应的,其结束拖拽动作的位置即为拖拽位置。
根据本公开的实施例,通过支持拖拽到对应的编写位置进行拖拽编写,能够代替手动输入,避免手动输入容易产生错误的问题,并且可视化的编程方法对于初学者或低龄用户更直观友好,使其更容易理解编码过程、逻辑和思路。
图8示意性示出了根据本公开实施例的操作S520中将第一目标代码插入至编写位置的流程图。
如图8所示,当所述用户在所述第二区域结束所述拖拽动作后,在操作S520,将第一目标代码插入至编写位置可以包括操作S810~操作S830。其中,第一目标代码包括S个第二目标代码。
在操作S810,在第四区域展示S个第二目标代码,其中,S为大于或等于1的整数。
根据本公开的实施例,当用户没有发起拖拽动作时,当前第二区域的光标位置即为编写位置。当用户使用拖拽动作时,拖拽位置即为编写位置。例如可以在已经实现的鼠标监听事件中,监听拖拽动作,当用户选定某一个字段时,点击鼠标左键拖动到需要使用那个字段的地方,并把光标也固定到鼠标所在位置,松开鼠标左键,会弹出提示框,提示有关这个字段的方法,如setter和getter方法。以用户拖拽“name”为例,当用户将“name”拖拽至编写位置时,那么可以弹出提示框(即第四区域),以在提示框中展示“name”对应的目标代码内容,例如“public String getName()和public void setName(String name)”。
在操作S820,响应用户的第三选中操作,复制用户选中的S个第二目标代码中的第三目标代码。
在操作S830,将第三目标代码粘贴至编写位置。
根据本公开的实施例,用户选中某一个方法后,将选中方法保存在剪贴板中,然后在光标所在点(即编写位置)粘贴,从而做到拖拽编码。通过可视化的展示,以及拖拽编写方式,能够降低对用户的编程水平要求,并提高编程过程中的代码编写效率。
下面结合图9A~9C,详细说明本公开实施例的可视化的代码编写方法的工作流程。
图9A、图9B和图9C示意性示出了根据本公开又一实施例的代码编写方法的流程图。
如图9A、图9B和图9C所示,在用户进行编程时,可以向用户展示第一区域910、第二区域920、第三区域930和第四区域950。本公开实施例的代码编写方法包括操作S961~操作S967。其中,各个区域可以为同一界面的各个窗口,也可以为不同的界面。因此。虽然图中为同一个界面,但是也可以根据实际需要使每个区域成为独立的界面,本公开不对其进行限定。
在操作S961,检测用户的第一选中操作,如选中第一对象“XXOutput.java”。在此之前,可以在第一区域910展示N个对象,该N个对象根据用户编程时使用的代码库获得。
根据本公开的实施例,以使用Javabean为例,例如,首先检测到用户使用鼠标左键点击“XXOutput.java”后,获取点击对象。然后,若点击的对象是个java后缀的文件,则获取文件地址。接着,根据地址读取文件内容。接着,根据关键字INPUT、OUTPUT、特定路径或代码内的注解等预定规则制定的内容,识别出当前选定的类是否为bean,如果为bean,在第三区域930(如图9A右侧详情框)展示出所有“XXOutput.java”内字段名,如para1、para2和para3(仅为示例)。
在操作S962,检测用户的第二选中操作,如用户选中字段para1。
根据本公开的实施例,监听用户的拖拽动作,例如用户在选中para1之后,沿拖拽轨迹940(仅为示例),将para1从第三区域拖拽至第二区域。
在操作S963,获得拖拽位置,以将拖拽位置作为编写位置,具体可以参照操作S510~操作S520,在此不做赘述。
在操作S964,在第四区域950展示S个第二目标代码。在用户松开鼠标左键后,会弹出提示框(第四区域950),提示有关这个字段的方法,如setter和getter方法。参照图9B,在提示框内展示了para1对应的多个方法代码,可以包括Void setPara1(int p)、IntgetPara1()等方法代码。
在操作S965,检测用户的鼠标移动操作。如用户沿轨迹970移动鼠标箭头至方法代码Int getPara1()的位置。
在操作S966,检测用户的第三选中操作。例如用户使用鼠标左键点击第四区域970中的方法代码Int getPara1()。
在操作S967,在第二区域920执行编写第一目标代码的操作。例如,首先,获得第一对象“XXOutput.java”的名称,如XXOutput,复制并保存在剪切板。然后,获取方法代码IntgetPara1()的内容,如getPara1(),复制并保存在剪切板。最后,按照调用方法的代码编写要求进行编辑获得“XXOutput.getPara1()”,并粘贴至第二区域的对应位置。
基于上述代码编写方法,本公开还提供了一种代码编写装置。以下将结合图10对该装置进行详细描述。
图10示意性示出了根据本公开实施例的代码编写装置的结构框图。
如图10所示,该实施例的代码编写装置1000包括对象展示模块1010、对象确定模块1020、文件解析模块1030和代码编写模块1040。
对象展示模块1010例如可以执行操作S210,用于在第一区域展示N个对象,其中,N个对象中的每个对象与一个代码文件相关联,N为大于或等于1的整数。
根据本公开的实施例,对象展示模块1010例如可以执行操作S610~操作S630,用于将M个字段展示在第三区域,其中,M为大于或等于1的整数。响应用户的第二选中操作,确定用户选中的M个字段中的第一字段。获得与第一字段对应的第一目标代码。
对象确定模块1020例如可以执行操作S220,用于响应用户的第一选中操作,确定用户选中的N个对象中的第一对象。
根据本公开的实施例,对象确定模块1020例如可以执行操作S310~操作S320,用于利用预设的事件监听器,获得用户的选中事件。基于选中事件获得选中对象,将选中对象作为第一对象。其中,选中事件包括外接设备选中事件、触摸选中事件或语音选中事件中的至少一种。
文件解析模块1030例如可以执行操作S230,用于解析与第一对象相关联的第一代码文件,以获得第一代码文件中的代码内容。以及
代码编写模块1040例如可以执行操作S240,用于根据预设规则,在第二区域执行编写第一目标代码的操作,其中,代码内容包括第一目标代码。
根据本公开的实施例,代码编写模块1040例如可以执行操作S410~操作S420,用于获得第一对象的名称。在第二区域执行编写名称的操作,其中,第一目标代码包括名称。
根据本公开的实施例,代码编写模块1040例如可以执行操作S510~操作S520,用于获得第二区域中的编写位置。以及将第一目标代码插入至编写位置。
在一些实施例中,获得第二区域中的编写位置可以包括操作S710~操作S720,用于监听用户的拖拽动作,其中,拖拽动作包括用户将第一字段由第三区域拖拽至第二区域的动作。获得拖拽位置,以将拖拽位置作为编写位置,其中,拖拽位置包括用户在第二区域结束拖拽动作的位置。
在一些实施例中,将第一目标代码插入至编写位置可以包括操作S810~操作S830。用于当用户在第二区域结束拖拽动作后,在第四区域展示S个第二目标代码,其中,S为大于或等于1的整数。响应用户的第三选中操作,复制用户选中的S个第二目标代码中的第三目标代码。将第三目标代码粘贴至编写位置。
根据本公开的实施例,对象展示模块1010、对象确定模块1020、文件解析模块1030和代码编写模块1040中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,对象展示模块1010、对象确定模块1020、文件解析模块1030和代码编写模块1040中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,对象展示模块1010、对象确定模块1020、文件解析模块1030和代码编写模块1040中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图11示意性示出了根据本公开实施例的适于实现代码编写方法的电子设备的方框图。
如图11所示,根据本公开实施例的电子设备1100包括处理器1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM1103中,存储有电子设备1100操作所需的各种程序和数据。处理器1101、ROM1102以及RAM 1103通过总线1104彼此相连。处理器1101通过执行ROM 1102和/或RAM 1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1102和RAM 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1100还可以包括输入/输出(I/O)接口1105,输入/输出(I/O)接口1105也连接至总线1104。电子设备1100还可以包括连接至I/O接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1102和/或RAM 1103和/或ROM 1102和RAM1103以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现根据本公开实施例的方法。
在该计算机程序被处理器1101执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1109被下载和安装,和/或从可拆卸介质1111被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (11)

1.一种代码编写方法,包括:
在第一区域展示N个对象,其中,所述N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数;
响应用户的第一选中操作,确定所述用户选中的所述N个对象中的第一对象;
解析与所述第一对象相关联的第一代码文件,以获得所述第一代码文件的代码内容;以及
根据预设规则,在第二区域执行编写第一目标代码的操作,其中,所述代码内容包括所述第一目标代码。
2.根据权利要求1所述的方法,其中,所述在第二区域执行编写第一目标代码的操作包括:
获得所述第二区域中的编写位置;以及
将所述第一目标代码插入至所述编写位置。
3.根据权利要求2所述的方法,其中,所述代码内容包括M个字段,所述方法还包括获得所述第一目标代码,具体包括:
将所述M个字段展示在第三区域,其中,M为大于或等于1的整数;
响应所述用户的第二选中操作,确定所述用户选中的所述M个字段中的第一字段;
获得与所述第一字段对应的所述第一目标代码。
4.根据权利要求3所述的方法,其中,所述获得所述第二区域中的编写位置包括:
监听所述用户的拖拽动作,其中,所述拖拽动作包括所述用户将所述第一字段由所述第三区域拖拽至所述第二区域的动作;
获得拖拽位置,以将所述拖拽位置作为所述编写位置,其中,所述拖拽位置包括所述用户在所述第二区域结束所述拖拽动作的位置。
5.根据权利要求4所述的方法,其中,所述第一目标代码包括S个第二目标代码,所述将所述第一目标代码插入至所述编写位置包括:当所述用户在所述第二区域结束所述拖拽动作后,
在第四区域展示所述S个第二目标代码,其中,S为大于或等于1的整数;
响应用户的第三选中操作,复制所述用户选中的所述S个第二目标代码中的第三目标代码;
将所述第三目标代码粘贴至所述编写位置。
6.根据权利要求1所述的方法,其中,所述根据预设规则,在第二区域执行编写第一目标代码的操作包括:
获得所述第一对象的名称;
在所述第二区域执行编写所述名称的操作,其中,所述第一目标代码包括所述名称。
7.根据权利要求1所述的方法,其中,所述响应用户的第一选中操作,确定所述用户选中的所述N个对象中的第一对象包括:
利用预设的事件监听器,获得所述用户的选中事件;
基于所述选中事件获得选中对象,将所述选中对象作为所述第一对象;
其中,所述选中事件包括外接设备选中事件、触摸选中事件或语音选中事件中的至少一种。
8.根据权利要求1所述的方法,其中,所述预设规则包括:
当所述代码内容中包括预定内容时,在所述第二区域执行编写所述第一目标代码的操作。
9.一种代码编写装置,包括:
对象展示模块,用于在第一区域展示N个对象,其中,所述N个对象中的每个对象关联对应的代码文件,N为大于或等于1的整数;
对象确定模块,用于响应用户的第一选中操作,确定所述用户选中的所述N个对象中的第一对象;
文件解析模块,用于解析与所述第一对象相关联的第一代码文件,以获得所述第一代码文件中的代码内容;以及
代码编写模块,用于根据预设规则,在第二区域执行编写第一目标代码的操作,其中,所述代码内容包括所述第一目标代码。
10.一种电子设备,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,执行所述可执行指令,以实现根据权利要求1~8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~8中任一项所述的方法。
CN202110740458.0A 2021-06-30 2021-06-30 代码编写方法、装置、电子设备及存储介质 Pending CN113282285A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110740458.0A CN113282285A (zh) 2021-06-30 2021-06-30 代码编写方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110740458.0A CN113282285A (zh) 2021-06-30 2021-06-30 代码编写方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113282285A true CN113282285A (zh) 2021-08-20

Family

ID=77286192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110740458.0A Pending CN113282285A (zh) 2021-06-30 2021-06-30 代码编写方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113282285A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115455876A (zh) * 2022-09-21 2022-12-09 芯华章科技(北京)有限公司 用于调试逻辑系统设计的方法及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115455876A (zh) * 2022-09-21 2022-12-09 芯华章科技(北京)有限公司 用于调试逻辑系统设计的方法及电子设备
CN115455876B (zh) * 2022-09-21 2023-09-22 芯华章科技(北京)有限公司 用于调试逻辑系统设计的方法及电子设备

Similar Documents

Publication Publication Date Title
US10140314B2 (en) Previews for contextual searches
US9936022B2 (en) Computer device for reading e-book and server for being connected with the same
US9081769B2 (en) Providing translation assistance in application localization
US10169374B2 (en) Image searches using image frame context
US20150106723A1 (en) Tools for locating, curating, editing, and using content of an online library
US10785327B2 (en) Client device application interaction monitoring
CN102937979A (zh) 网页的自定义优化
US11620444B2 (en) Providing action associated with event detected within communication
CN107182209B (zh) 检测数字内容可见性
CN111045653B (zh) 系统生成方法、装置、计算机可读介质及电子设备
US8639560B2 (en) Brand analysis using interactions with search result items
CN110968314B (zh) 一种页面生成方法及装置
CN114036439A (zh) 网站搭建方法、装置、介质及电子设备
US9251267B2 (en) Generating behavior information for a link
CN113282285A (zh) 代码编写方法、装置、电子设备及存储介质
US20160005002A1 (en) Generating Tasks
CN115640790A (zh) 信息处理方法、装置和电子设备
CN115221290A (zh) 标签前置数据查询方法、装置、电子设备及可读存储介质
CN113378036A (zh) 页面操作分析、埋点方法、装置、设备及存储介质
US11269961B2 (en) Systems and methods for App query driven results
US20140101607A1 (en) Displaying quantitative trending of pegged data from cache
CN112860259B (zh) 界面处理方法、装置、电子设备、存储介质
CN111104626B (zh) 信息存储方法和装置
CN116340662A (zh) 适配浏览器的方法、装置、电子设备和存储介质
CN115857941A (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