多模块分层架构实现方法、装置、电子设备及介质
文献发布时间:2023-06-19 10:11:51
技术领域
本发明涉及软件开发领域,尤其涉及一种多模块分层架构实现方法。
背景技术
随着互联网的发展,软件需要承载多种业务场景,而随着软件规模逐步扩大,模块数量也在不断增加。移动端应用的迭代开发一般需要分模块进行。模块负责人一般只需要关注自己模块的代码,模块间接口一般是固定的,模块代码可以轻易地独立出来,在各个项目中进行复用,大大提升了开发效率,这也是实现模块化的意义。
模块分为主模块和子模块两类,主模块一般只有一个,存在多个子模块,每个子模块在单独的目录中。随着模块数量的增加,子模块甚至可以达到几十个甚至上百个。上百个模块直接堆放到工程根目录下,寻找目标模块变得非常困难,使得代码维护成为灾难。它们之间的依赖关系非常复杂,甚至出现互相依赖、环形依赖,接口也逐渐复杂,以至于单独分割出一个独立功能的模块非常困难,这样就失去了模块化的意义。
综上,随着模块数量的增加而导致的上述技术问题的出现,提供一种具有较高的开发效率的多模块分层架构实现方法显得尤为必要。
发明内容
针对现有技术中的问题,本发明实施例提供一种多模块分层架构实现方法,用以解决现有技术中的模块之间的依赖关系非常复杂而导致的开发效率低下的缺陷,实现代码复用性提升,开发效率提升,以及开发成本降低的效果。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种多模块分层架构实现方法,包括:
获取多个模块;
判定模块在所述架构中的层级;以及
基于所述模块的层级设置所述模块之间的依赖关系,其中,通过设置所述模块之间的依赖关系,模块代码的重复利用率得以提升。
进一步地,基于所述模块的层级设置所述模块之间的依赖关系包括:
基于所述模块的层级将所述模块之间的依赖关系设置为:
较高层级模块对较低层级模块的依赖;以及
同层级模块之间的单向的直接依赖。
进一步地,基于所述模块的层级设置所述模块之间的依赖关系进一步包括:
识别所述模块之间的不正常的依赖关系;
基于所识别出的所述模块之间的不正常的依赖关系来调整所述模块之间的依赖关系。
进一步地,基于所述模块的层级设置所述模块之间的依赖关系进一步包括:
基于模块之间接口的增减情况和代码检查的结果来识别模块之间的兼容情况;
基于所识别出的模块之间的兼容情况来调整所述模块之间的依赖关系。
进一步地,所述方法进一步包括:
基于所述模块的层级对所述模块进行分类。
进一步地,基于所述模块的层级对所述模块进行分类包括:
基于所述模块的层级将所述模块分为基础层模块、功能层模块、业务层模块和应用层模块,其中,所述模块的层级由高到低依次为:应用层模块、业务层模块、功能层模块和基础层模块。
进一步地,所述方法进一步包括:
单独编译业务层模块中的各个模块。
进一步地,所述方法进一步包括:
所述功能层模块和所述基础层模块利用单元测试实现自身迭代。
进一步地,所述方法应用于移动端应用的开发中。
第二方面,本发明提供一种多模块分层架构实现装置,包括:
获取单元,用于获取多个模块;
判定单元,用于判定模块在所述架构中的层级;以及
设置单元,用于基于所述模块的层级设置所述模块之间的依赖关系,其中,模块代码的重复利用率得以提升。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述多模块分层架构实现方法的步骤。
第四方面,本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上所述多模块分层架构实现方法的步骤。
本发明提供的多模块分层架构实现方法,适用于多人协作开发的架构分层设计方案,具体用于移动端应用的大规模的迭代开发,通过判定模块在所述架构中的层级且基于所述模块的层级对所述模块进行分类,避免了模块堆积造成的混乱,大大提升了开发效率;基于所述模块的层级设置所述模块之间的依赖关系,通过设置所述模块之间的依赖关系,模块代码的重复利用率得以提升,降低了开发成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的多模块分层架构实现方法的流程图;
图2为现有技术中的模块之间的不正常的依赖关系的示意图;
图3为本发明一实施例提供的模块的层级和依赖关系的示意图;
图4为本发明一实施例提供的多模块分层架构实现装置的结构示意图;以及
图5为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的模块化设计方案,上百个模块直接堆放到工程根目录下,寻找目标模块变得非常困难,使得代码维护成为灾难。他们之间的依赖关系非常复杂,甚至出现互相依赖、环形依赖,接口也逐渐复杂,以至于单独分割出一个独立功能的模块非常困难,这样就失去了模块化的意义。从而导致开发效率低下。
因此,改进的模块化的架构分层设计方案将为大规模的软件开发,带来开发效率提升、代码重复利用率提升、开发成本降低的有益效果。为此,本发明提供了一种多模块分层架构实现方法、装置、电子设备及介质,下面将通过具体实施例对本发明提供的内容进行详细解释和说明。
图1示出了本发明实施例提供的多模块分层架构实现方法的流程图。如图1所示,本发明实施例提供的多模块分层架构实现方法包括如下步骤:
步骤110:获取多个模块;
步骤120:判定模块在所述架构中的层级;以及
步骤130:基于所述模块的层级设置所述模块之间的依赖关系,其中,通过设置所述模块之间的依赖关系,模块代码的重复利用率得以提升。
在步骤110中,所获得的模块中包括不同层级的模块,在一个示例中,不同层级的模块可以实现不同的功能。同一层级的模块的数量可以为一个或更多个,同一层级的多个模块可以具有相同或不同的结构,同一层级的多个模块可以实现相同或不同的功能。在一个示例中,模块包括主模块和至少一个子模块,在获取主模块和至少一个子模块之前还包括创建所述主模块和至少一个子模块的过程。在一个示例中,模块包括输入和输出、逻辑功能、运行程序、内部数据四种属性。
在步骤120中,在一个示例中,在模块建立之初,由高级开发人员判定该模块的层级。在一个示例中,将主模块和至少一个子模块划分为4个层级,当然,也可以将主模块和至少一个子模块划分为3个层级,本领域技术人员可知晓,将架构中的模块划分的层级的数量可以根据实际的需要进行设置和调整,架构中的模块划分的层级的数量不能作为对本发明的限制。
在步骤130中,基于所述模块的层级设置所述模块之间的依赖关系,其中,通过设置所述模块之间的依赖关系,模块代码的重复利用率得以提升。
具体地,设置模块之间的依赖关系为:
高层级模块依赖低层级模块,即,应用层模块依赖业务层模块,业务层模块依赖功能层模块,功能层模块依赖基础层模块。
可以跨层级依赖,即,应用层模块可以依赖功能层模块和/或基础层模块。
同层级模块可以直接依赖,但是不能相互依赖。
低层级模块不能依赖高层级模块。
在上述实施例中,按照层次对模块依赖关系进行规范,避免模块产生混乱的依赖关系,可以更好更快地复用模块代码。
基于上述的任一实施例,在本发明另一实施例提供的多模块分层架构实现方法中,进一步包括:
基于所述模块的层级对所述模块进行分类。
具体地,按照模块抽象层次对模块进行分类,将所有模块分为基础(base)层、功能(func)层、业务(business)层、应用(app)层这四个层。
在上述实施例中,通过按照层次对模块进行分类,避免模块风暴。
基于上述的实施例,在本发明另一实施例提供的多模块分层架构实现方法中,基于所述模块的层级对所述模块进行分类包括:
基于所述模块的层级将所述模块分为基础层模块、功能层模块、业务层模块和应用层模块,其中,所述模块的层级由高到低依次为:应用层模块、业务层模块、功能层模块和基础层模块,如图3所示。
其中,基础层的模块是最基础的模块类,其中放置如:访问网络、保存配置、信息收集、进程通信、性能监控等模块,其中不包含任何界面(UI),基础层模块对用户来说是不可见的。
功能层的模块中的模块包含一些简单的功能组件,如分享、支付、下载等,包含一些简单的界面(UI),对用户可见,但是这些模块一般不会直接以独立功能出现。
业务层的模块是独立的功能如:游戏库功能、游戏详情页功能等等,一般业务层的模块有自己独立的界面和业务逻辑,可以调用基础(base)层、功能(func)层,结合自己的界面(UI),形成完整可用的功能。
应用层只包含主模块。
在上述实施例中,有效地组织和定义了各个模块及其所在层次,避免模块堆积造成的混乱,大大提升了开发效率。
基于上述的任一实施例,在本发明另一实施例提供的多模块分层架构实现方法中,基于所述模块的层级设置所述模块之间的依赖关系包括:
基于所述模块的层级将所述模块之间的依赖关系设置为:
高层级模块对低层级模块的依赖;以及
同层级模块之间的单向的直接依赖。
在一个示例中,应用层模块依赖业务层模块,业务层模块依赖功能层模块,功能层模块依赖基础层模块,具体地,如图3所示。
另外,模块之间可以跨层级依赖,即,在一个示例中,应用层模块可以依赖功能层模块或基础层模块;业务层模块可以依赖基础层模块。
另外,同层级模块之间可以直接依赖,但是不能相互依赖,即,同层级模块之间只能单向的依赖逻辑上相邻的模块。
另外,低层级模块不能依赖高层级模块。即,基础层模块不能依赖其它层级比自己高的模块。
在上述实施例中,通过根据模块层次,设置了模块之间的良好的依赖关系,提升了代码复用性,降低了开发成本。
基于上述的任一实施例,在本发明另一实施例提供的多模块分层架构实现方法中,基于所述模块的层级设置所述模块之间的依赖关系进一步包括:
识别所述模块之间的不正常的依赖关系;
基于所识别出的所述模块之间的不正常的依赖关系来调整所述模块之间的依赖关系。
其中,在一个示例中,模块之间的“不正常”的依赖关系一般是指不符合上述实施例中的依赖关系,即,例如,低层级模块依赖高层级模块的依赖关系,同层级模块之间相互依赖的依赖关系(如图2所示),同层级模块之间的双向依赖的依赖关系,同层级模块之间的间接依赖的依赖关系等。当然,还包括互相依赖、环形依赖等。
在一个示例中,使用依赖关系分析可视化工具,自动识别不正常的依赖。
具体地,在编译时进行检查,因为错误的依赖关系会导致编译失败,编译失败暗示有不正常依赖关系存在的可能性。
具体地,当识别出不正常的依赖关系后,对不正常的依赖关系进行解耦操作。
在上述实施例中,基于所识别出的所述模块之间的不正常的依赖关系,重新组织了模块之间的依赖关系,提升了代码复用性,降低了开发成本。
基于上述的任一实施例,在本发明另一实施例提供的多模块分层架构实现方法中,基于所述模块的层级设置所述模块之间的依赖关系进一步包括:
基于模块之间接口的增减情况和代码检查的结果来识别模块之间的兼容情况;
基于所识别出的模块之间的兼容情况来调整所述模块之间的依赖关系。
具体地,当识别出模块之间的兼容情况不太好后,对相应的模块之间的依赖关系进行解耦操作。
在一个示例中,当识别出模块之间的兼容情况小于一定阈值时,对相应的模块之间的依赖关系进行解耦操作。当识别出模块之间的兼容情况大于或等于一定阈值时,不对相应的模块之间的依赖关系进行解耦操作。
其中,模块之间的接口的增减情况是通过定期自动导出模块间接口列表来及时发现接口增减情况的。在通过接口列表的确定模块之间接口的增减情况的基础上,进行严格的代码检查,从而发现模块不兼容问题。即,基于模块之间接口的增减情况和代码检查的结果二者来识别模块之间的兼容情况。当然,在一个示例中,也可以基于模块之间接口的增减情况和代码检查的结果中的一个来识别模块之间的兼容情况。
在上述实施例中,基于所识别出的模块之间的兼容情况,重新组织了模块之间的依赖关系,提升了代码复用性,降低了开发成本。
基于上述的任一实施例,在本发明另一实施例提供的多模块分层架构实现方法中,进一步包括:
单独编译业务层模块中的各个模块。
在上述实施例中,其中,使用定制的编译技术,业务层中的模块都可以单独编译和运行,不用单独编译所有代码,大大提高了开发效率。
基于上述的任一实施例,在本发明另一实施例提供的多模块分层架构实现方法中,进一步包括:
所述功能层模块和所述基础层模块利用单元测试实现自身迭代。
功能层模块和基础层模块包括完善的单元测试代码,通过运行单元测试代码,即可做到自身的迭代开发,而无需依赖上层的对其的调用来实现自身的迭代开发。
本发明的各个层直接分配到领导者(leader),各个模块都直接分配模块到开发个人,因此,本发明的多模块分层架构实现方法特别适用于大团队协作开发。本发明公开的是适用于多人协作开发的架构分层设计方案,本发明的方法或方案适用于移动端应用的迭代开发中。
本发明提供了一种多模块分层架构实现方法,适用于多人协作开发的架构分层设计方案,具体用于移动端应用的大规模的迭代开发,通过判定模块在所述架构中的层级且基于所述模块的层级对所述模块进行分类,避免了模块堆积造成的混乱,大大提升了开发效率;基于所述模块的层级设置所述模块之间的依赖关系,通过设置所述模块之间的依赖关系,模块代码的重复利用率得以提升,降低了开发成本。
下面对本发明提供的多模块分层架构实现装置进行描述,下文描述的多模块分层架构实现装置与上文描述的多模块分层架构实现方法可相互对应参照。
图4示例了一种多模块分层架构实现装置实体结构示意图,如图4所示,该电子设备可以包括:
获取单元410,用于获取多个模块;
判定单元420,用于判定模块在所述架构中的层级;以及
设置单元430,用于基于所述模块的层级设置所述模块之间的依赖关系,其中,通过设置所述模块之间的依赖关系,模块代码的重复利用率得以提升。
进一步地,设置单元430基于所述模块的层级将所述模块之间的依赖关系设置为:
高层级模块对低层级模块的依赖;以及
同层级模块之间的单向的直接依赖。
进一步地,设置单元430基于所述模块的层级设置所述模块之间的依赖关系进一步包括:
识别所述模块之间的不正常的依赖关系;
基于所识别出的所述模块之间的不正常的依赖关系来调整所述模块之间的依赖关系。
进一步地,设置单元430基于所述模块的层级设置所述模块之间的依赖关系进一步包括:
基于模块之间接口的增减情况和代码检查的结果来识别模块之间的兼容情况;
基于所识别出的模块之间的兼容情况来调整所述模块之间的依赖关系。
进一步地,所述装置进一步包括:
分类单元,用于基于所述模块的层级对所述模块进行分类。
进一步地,分类单元基于所述模块的层级将所述模块分为基础层模块、功能层模块、业务层模块和应用层模块,其中,所述模块的层级由高到低依次为:应用层模块、业务层模块、功能层模块和基础层模块。
进一步地,所述装置进一步包括:
编译单元,用于单独编译业务层模块中的各个模块。
进一步地,所述装置进一步包括:
迭代单元,用于所述功能层模块和所述基础层模块利用单元测试实现自身迭代而无需更高层级的模块对其的调用。
进一步地,所述装置应用于移动端应用的开发中。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行多模块分层架构实现方法,该方法包括:
获取多个模块;
判定模块在所述架构中的层级;以及
基于所述模块的层级设置所述模块之间的依赖关系,其中,通过设置所述模块之间的依赖关系,模块代码的重复利用率得以提升。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述多模块分层架构实现方法的全部步骤。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
基于相同的发明构思,本发明又一实施例提供了一种计算机程序产品,所计算机程序产品包括有计算机程序,该计算机程序被处理器执行时实现上述实现上述多模块分层架构实现方法的全部步骤。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的安全防御方法。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本发明中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 多模块分层架构实现方法、装置、电子设备及介质
- 多模块分层架构实现方法、装置、电子设备、存储介质