9月28日,搜狗正式發布SogouModuleBus組件化解耦框架,為業界貢獻新的組件化解決方案。同時,這款基于搜狗立體化架構思維誕生的組件化框架,將會進一步降低開發者的組件化重構成本。
代碼耦合,是指軟件工程中不同模塊和類之間的依賴關系。耦合度高,則代碼之間的依賴度高,往往容易出現牽一發而動全身的被動局面。因此開發者們需要對高耦合度代碼進行解耦,讓業務模塊之間的關聯依賴降到最低。此次搜狗SogouModuleBus組件化框架的發布,將幫助開發者更輕松的解決耦合依賴。
全新框架提升代碼解耦的效率
具體來說,SogouModuleBus組件化框架使用了注解處理器,支持開發者通過注解來標記界面跳轉的路由和單純的接口服務暴露,并在編譯時使用注解處理器自動生成路由收集的代碼。
在降低框架使用的復雜度方面,開發人員在框架內采用了ASM字節碼編輯技術,通過該技術,更多機械性的工作在編譯時可自動生成相關代碼,不僅提高了開發效率、降低系統復雜度,也將運行時路由注冊時間降低到毫秒級別(相較于運行時動態加載注冊代碼),既降低了接入成本更提升了運行效率。
為了進一步提升可用性,框架除了提供注解標記接口服務的途徑之外還提供特殊接口標記接口服務的方式,兩種方式均可實現服務的注冊與調用,讓開發者根據具體場景選擇合適的方法。
高度解耦、立體分層架構 體現整體架構觀
SogouModuleBus不僅是技術層面的代碼隔離與路由調用,更具有業務層面組件化整體考慮的架構思維,幫助業務團隊快速打造高維護性、高擴展性的工程結構。
據了解,在SogouModuleBus組件化框架中,組件的依賴與隔離關系是通過GradlePlugin自動完成的。使用框架定義的gradle方法在build文件中組織組件依賴,gradle內部會根據配置確定組件依賴方式,提供代碼隔離或不隔離直接依賴。
在上述依賴管理特性下,框架將自動實現同級組件的代碼隔離,甚至在必要情況下,還能將具有上下依賴關系的組件做到代碼隔離不可見,具有超強的解耦力度。
為實現組件單獨運行,框架內部對組件獨立運行時的資源文件以及build設置做了自動化配置,開發者在使用時只需一個布爾變量就可以標識組件運行的方式(單獨運行還是組合運行),借助組件依賴強隔離特性即可實現組件單獨運行。
除此之外,使用SogouModuleBus將會更好的助力結構立體分層,上層組件單向依賴下層組件,每層里面的各組件不直接依賴,極大地降低代碼耦合度,從而幫助開發者定位角色以及提高架構的擴展性。
近年來,搜狗不斷加大對技術項目的研發和投入,并且在行業中獲得越來越多的認可,此次開源的SogouModuleBus組件化框架,再次表明了搜狗在技術領域的投入與實力。未來,搜狗將繼續發揮自身科研實力,為行業和開發人員帶來更多優質的技術解決方案。