9月28日,搜狗正式发布SogouModuleBus组件化解耦框架,为业界贡献新的组件化解决方案。同时,这款基于搜狗立体化架构思维诞生的组件化框架,将会进一步降低开发者的组件化重构成本。
代码耦合,是指软件工程中不同模块和类之间的依赖关系。耦合度高,则代码之间的依赖度高,往往容易出现牵一发而动全身的被动局面。因此开发者们需要对高耦合度代码进行解耦,让业务模块之间的关联依赖降到最低。此次搜狗SogouModuleBus组件化框架的发布,将帮助开发者更轻松的解决耦合依赖。
全新框架提升代码解耦的效率
具体来说,SogouModuleBus组件化框架使用了注解处理器,支持开发者通过注解来标记界面跳转的路由和单纯的接口服务暴露,并在编译时使用注解处理器自动生成路由收集的代码。
在降低框架使用的复杂度方面,开发人员在框架内采用了ASM字节码编辑技术,通过该技术,更多机械性的工作在编译时可自动生成相关代码,不仅提高了开发效率、降低系统复杂度,也将运行时路由注册时间降低到毫秒级别(相较于运行时动态加载注册代码),既降低了接入成本更提升了运行效率。
为了进一步提升可用性,框架除了提供注解标记接口服务的途径之外还提供特殊接口标记接口服务的方式,两种方式均可实现服务的注册与调用,让开发者根据具体场景选择合适的方法。
高度解耦、立体分层架构 体现整体架构观
SogouModuleBus不仅是技术层面的代码隔离与路由调用,更具有业务层面组件化整体考虑的架构思维,帮助业务团队快速打造高维护性、高扩展性的工程结构。
据了解,在SogouModuleBus组件化框架中,组件的依赖与隔离关系是通过GradlePlugin自动完成的。使用框架定义的gradle方法在build文件中组织组件依赖,gradle内部会根据配置确定组件依赖方式,提供代码隔离或不隔离直接依赖。
在上述依赖管理特性下,框架将自动实现同级组件的代码隔离,甚至在必要情况下,还能将具有上下依赖关系的组件做到代码隔离不可见,具有超强的解耦力度。
为实现组件单独运行,框架内部对组件独立运行时的资源文件以及build设置做了自动化配置,开发者在使用时只需一个布尔变量就可以标识组件运行的方式(单独运行还是组合运行),借助组件依赖强隔离特性即可实现组件单独运行。
除此之外,使用SogouModuleBus将会更好的助力结构立体分层,上层组件单向依赖下层组件,每层里面的各组件不直接依赖,极大地降低代码耦合度,从而帮助开发者定位角色以及提高架构的扩展性。
近年来,搜狗不断加大对技术项目的研发和投入,并且在行业中获得越来越多的认可,此次开源的SogouModuleBus组件化框架,再次表明了搜狗在技术领域的投入与实力。未来,搜狗将继续发挥自身科研实力,为行业和开发人员带来更多优质的技术解决方案。