代码重构方法及装置制造方法及图纸

技术编号:38682125 阅读:15 留言:0更新日期:2023-09-02 22:54
本申请实施例提供代码重构方法及装置,应用于信息技术领域。本申请实施例能够在用户界面上向用户呈现高层代码架构图并接收用户对于代码结构的修改,而用户通过界面操作就能够对代码结构进行修改,并获取到修改后的代码工程。如此,将代码结构的视图展示和代码重构集成一体,使得用户无需在不同的代码层面中进行切换,从而大大提升代码重构效率。另外,可视化的操作更降低了使用门槛,提升了用户的代码重构体验。构体验。构体验。

【技术实现步骤摘要】
代码重构方法及装置


[0001]本申请涉及信息技术(information technology,IT)领域,尤其涉及代码重构方法及装置。

技术介绍

[0002]在开发过程中,为了改善代码工程的质量,经常需要对代码进行重构。代码重构(英语:Code refactoring)就是在不改变软件系统外部行为的前提下,改善它的内部结构。
[0003]在传统的代码重构过程中,开发人员往往需要先从架构层面了解整个代码结构,再基于当前不良设计来设计重构策略,最后从代码层面入手实施并完成代码重构。代码重构过程中,发现代码中的不良设计往往需要较高的层面来了解整个代码工程,但是,重构修复这个不良设计却只能从底层的代码层面着手,修改具体的代码。开发人员在重构时往往需要在不同的代码层面中进行切换,从而导致代码重构效率低。

技术实现思路

[0004]本申请实施例提供了代码重构方法及装置,能够大大提升代码重构效率。
[0005]第一方面,本申请实施例提供一种代码重构方法,包括:
[0006]呈现第一用户界面,所述第一用户界面用于指示第一代码工程的代码结构,所述代码结构包含包、类、类成员或底层代码中的一种或多种元素;
[0007]接收用户在所述第一用户界面上输入的第一操作,所述第一操作用于更新所述第一代码工程的代码结构;
[0008]基于所述第一操作向第一服务器请求重构所述第一代码工程。
[0009]本申请实施例能够在用户界面上向用户呈现代码架构图,而用户通过界面操作就能够对代码结构进行修改,并获取到修改后的代码工程。如此,将代码结构的视图展示和代码重构集成一体,使得用户无需在不同的代码层面中进行切换,从而大大提升代码重构效率。另外,可视化的操作更降低了代码重构的使用门槛,提升了用户的代码重构体验。
[0010]在第一方面的一种可能的实施方式中,所述方法还包括:
[0011]获取经过重构的所述第一代码工程。如此,用户设备可以查看经过重构的代码工程,方便用户确认重构的结构,还可以继续对第一代码工程进行重构,提升了用户代码重构过程中的使用体验。
[0012]在第一方面的又一种可能的实施方式中,所述第一操作包含针对所述元素的移动、增加、删除、编辑等中的一项或者多项。
[0013]其中,移动操作可以更新代码结构中的元素的位置等。以移动类成员为例,用户可以将某一类成员从某一个类移动到另一个类。
[0014]增加操作可以增加元素,以增加类为例,用户可以创建新的类成员。以增加字段为例,用户可以封装新的字段。
[0015]删除操作可以移除、销毁某一元素。例如,用户可以删除包、删除类、删除类成员
等。
[0016]编辑操作可以对元素进行更新。例如,用户可以变更字段的属性、修改类的名称、拆分类等等。
[0017]可选的,第一操作还包括滑动、缩放、指向、点击、长按等。其中,滑动、缩放等操作可以用于调整显示区域、页面大小等。其中,指向操作可以用于用户选择某一元素。点击操作可以用于用户选中元素、选择某一选项、或确认某一操作(如提交修改等)等。长按操作可以用于用户选中元素、移动元素、或删除元素等。
[0018]在第一方面的又一种可能的实施方式中,所述第一用户界面还用于指示所述第一代码工程中存在的代码架构坏味道。
[0019]通过上述的设计,用户设备通过第一用户界面即可同时了解第一代码工程的代码架构和第一代码工程的代码架构坏味道,无需在多个窗口中切换,减少操作、节约时间。此外,通过界面来展示代码架构坏味道,使得用户无需一一排查所有元素,可以提高代码重构的效率和准确性,提升用户代码重构的体验。
[0020]在第一方面的又一种可能的实施方式中,所述第一代码工程中存在的代码架构坏味道对应于所述元素;
[0021]所述第一用户界面还用于通过颜色区分所述元素中存在代码架构坏味道的程度。
[0022]这里的程度包含数量多少的程度、代码架构坏味道的严重程度或代码架构坏味道的紧急程度等中的一项或者多项。如此,通过颜色的区分,可以使得用户更快速地了解架构坏味道的分布情况,提高用户发现代码架构怪味道的效率,提升用户体验。
[0023]在第一方面的又一种可能的实施方式中,在所述呈现第一用户界面之前,所述方法还包括:
[0024]接收第二服务器提供的所述第一代码工程的第一指示信息,所述第一指示信息用于指示所述第一代码工程中存在的代码架构坏味道。
[0025]在上述的实施方式中,代码结构坏味道由服务器提供给用户设备。由于服务器是具有集中的计算资源的设备,通过服务器来检测代码架构坏味道,可以缩短确定代码架构坏味道的时间,提升代码重构的效率。
[0026]可选的,第一服务器和第二服务器可能是同一个服务器,或者第一服务器和第二服务器可以包含于同一个服务器中。
[0027]在第一方面的又一种可能的实施方式中,所述第一用户界面还用于指示重构推荐,所述重构推荐用于提示用户针对所述第一代码工程中存在的代码架构坏味道对所述第一代码工程进行修改。
[0028]在上述实施方式中,一方面,用户基于推荐的重构方案来重构代码,可以节省时间、提高重构效率,另一方面,将推荐的重构方案直接提供给用户,可以减少用户在代码重构时的错误调整,提高了修改代码架构坏味道的准确性。
[0029]在第一方面的又一种可能的实施方式中,在所述呈现第一用户界面之前,所述方法还包括:
[0030]接收第二服务器发送的所述重构推荐。
[0031]在上述实施方式中,重构推荐由服务器提供给用户设备。由于服务器是具有集中的计算资源的设备,通过服务器来确定重构推荐,可以缩短确定重构推荐的时间,提升代码
重构的效率。
[0032]在第一方面的又一种可能的实施方式中,所述基于所述第一操作向服务器请求重构所述第一代码工程,包括:
[0033]根据所述第一操作,得到原子重构序列,所述原子重构序列用于记录更新第一代码工程的操作顺序;
[0034]向所述第一服务器发送重构请求消息,所述重构请求消息包含所述原子重构序列。
[0035]在上述实施方式中,通过原子重构序列可以记录用户的操作顺序,从而使得服务器在重构代码时可以根据原子重构序列来重现用户的操作顺序,从而准确地依据用户的需求来进行代码重构。
[0036]在第一方面的又一种可能的实施方式中,所述原子重构序列包含多个原子重构操作,每个原子重构操作包含原子重构操作的标识和所述原子重构操作涉及的第一代码工程中的参数。
[0037]上述实施方式中说明了原子重构操作所包含的内容,通过原子重构操作可以使得用户的操作被对应的转换为某一格式的数据,从而服务器能够根据格式化的数据来进行代码重构,提升代码重构的效率和准确性。
[0038]在第一方面的又一种可能的实施方式中,所述呈现第一用户界面之前,所述方法还包括:
[0039]向第三服务器发送所述第一代码工程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码重构方法,其特征在于,包括:呈现第一用户界面,所述第一用户界面用于指示第一代码工程的代码结构,所述代码结构包含包、类、类成员或底层代码中的一种或多种元素;接收用户在所述第一用户界面上输入的第一操作,所述第一操作用于更新所述第一代码工程的代码结构;基于所述第一操作向第一服务器请求重构所述第一代码工程。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取经过重构的所述第一代码工程。3.根据权利要求2所述的方法,其特征在于,所述第一操作包含针对所述元素的移动、增加、删除、编辑等中的一项或者多项。4.根据权利要求1

3任一项所述的方法,其特征在于,所述第一用户界面还用于指示所述第一代码工程中存在的代码架构坏味道。5.根据权利要求4所述的方法,其特征在于,所述第一代码工程中存在的代码架构坏味道对应于所述元素;所述第一用户界面还用于通过颜色区分所述元素中存在代码架构坏味道的程度。6.根据权利要求3或4所述的方法,其特征在于,在所述呈现第一用户界面之前,所述方法还包括:接收第二服务器提供的所述第一代码工程的第一指示信息,所述第一指示信息用于指示所述第一代码工程中存在的代码架构坏味道。7.根据权利要求1

6任一项所述的方法,其特征在于,所述第一用户界面还用于指示重构推荐,所述重构推荐用于提示用户针对所述第一代码工程中存在的代码架构坏味道对所述第一代码工程进行修改。8.根据权利要求7所述的方法,其特征在于,在所述呈现第一用户界面之前,所述方法还包括:接收第二服务器发送的所述重构推荐。9.根据权利要求1

8任一项所述的方法,其特征在于,所述基于所述第一操作向服务器请求重构所述第一代码工程,包括:根据所述第一操作,得到原子重构序列,所述原子重构序列用于记录更新第一代码工程的操作顺序;向所述第一服务器发送重构请求消息,所述重构请求消息包含所述原子重构序列。10.根据权利要求1

9任一项所述的方法,其特征在于,所述原子重构序列包含多个原子重构操作,每个原子重构操作包含原子重构操作的标识和所述原子重构操作涉及的第一代码工程中的参数。11.根据权利要求1

10任一项所述的方法,其特征在于,所述呈现第一用户界面之前,所述方法还包括:向第三服务器发送所述第一代码工程的第二指示信息;接收所述第三服务器提供的所述第一代码工程的代码结构。12.一种代码重构方法,其特征在于,包括:接收来自用户设备的重构请求消息,所述重构请求消息是根据在所述第一用户界面上
输入的第一操作得到的,所述第一用户界面用于指示第一代码工程的代码结构,所述代码结构包含包、类、类成员或底层代码中的一种或多种元素,所述第一操作用于更新第一代码工程的代码结构;根据所述重构请求消息,对所述第一代码工程进行重构。13.根据权利要求12所示的方法,其特征在于,所述方法还包括;向所述用户设备反馈经过重构的所述第一代码工程。14.根据权利要求13所述的方法,其特征在于,所述第一操作包含针对所述元素的移动、增加、删除、编辑中的一项或者多项。15.根据权利要求12

14任一项所述的方法,其特征在于,所述方法还包括:确定所述第一代码工程中存在的代码架构坏味道;向所述用户设备发送第一指示信息,所述第一指示信息用于指示所述第一代码工程中存在的代码架构坏味道。16.根据权利要求15所述的方法,其特征在于,所述第一代码工程中存在的代码架构坏味道对应于所述元素;所述第一用户界面还用于通过颜色区分指示所述元素中存在代码架构坏味道的程度。17.根据权利要求15或16所述的方法,其特征在于,所述确定所述第一代码工程中存在的代码架构坏味道,包含:通过架构坏味道检测模型,确定所述第一代码工程中的代码架构坏味道。18.根据权利要求13

15任一项所述的方法,其特征在于,所述确定所述第一代码工程中存在的代码架构坏味道,包含:对所述第一代码工程进行代码静态分析、文本相似度计算,得到所述第一代码工程中的代码架构坏味道。19.根据权利要求12

18任一项所述的方法,其特征在于,所述方法还包括:确定重构推荐,所述重构推荐用于提示用户针对所述第一代码工程中存在的代码架构坏味道对所述第一代码工程进行修改;向所述用户设备发送所述重构推荐。20.根据权利要求12

【专利技术属性】
技术研发人员:梁广泰王一凡
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1