搜狗發(fā)布SogouModuleBus組件化框架 高效處理代碼解耦難題

9月28日,搜狗正式發(fā)布SogouModuleBus組件化解耦框架,為業(yè)界貢獻新的組件化解決方案。同時,這款基于搜狗立體化架構(gòu)思維誕生的組件化框架,將會進一步降低開發(fā)者的組件化重構(gòu)成本。

代碼耦合,是指軟件工程中不同模塊和類之間的依賴關(guān)系。耦合度高,則代碼之間的依賴度高,往往容易出現(xiàn)牽一發(fā)而動全身的被動局面。因此開發(fā)者們需要對高耦合度代碼進行解耦,讓業(yè)務(wù)模塊之間的關(guān)聯(lián)依賴降到最低。此次搜狗SogouModuleBus組件化框架的發(fā)布,將幫助開發(fā)者更輕松的解決耦合依賴。

搜狗發(fā)布SogouModuleBus組件化框架 高效處理代碼解耦難題

全新框架提升代碼解耦的效率

具體來說,SogouModuleBus組件化框架使用了注解處理器,支持開發(fā)者通過注解來標記界面跳轉(zhuǎn)的路由和單純的接口服務(wù)暴露,并在編譯時使用注解處理器自動生成路由收集的代碼。

在降低框架使用的復雜度方面,開發(fā)人員在框架內(nèi)采用了ASM字節(jié)碼編輯技術(shù),通過該技術(shù),更多機械性的工作在編譯時可自動生成相關(guān)代碼,不僅提高了開發(fā)效率、降低系統(tǒng)復雜度,也將運行時路由注冊時間降低到毫秒級別(相較于運行時動態(tài)加載注冊代碼),既降低了接入成本更提升了運行效率。

為了進一步提升可用性,框架除了提供注解標記接口服務(wù)的途徑之外還提供特殊接口標記接口服務(wù)的方式,兩種方式均可實現(xiàn)服務(wù)的注冊與調(diào)用,讓開發(fā)者根據(jù)具體場景選擇合適的方法。

搜狗發(fā)布SogouModuleBus組件化框架 高效處理代碼解耦難題

高度解耦、立體分層架構(gòu)體現(xiàn)整體架構(gòu)觀

SogouModuleBus不僅是技術(shù)層面的代碼隔離與路由調(diào)用,更具有業(yè)務(wù)層面組件化整體考慮的架構(gòu)思維,幫助業(yè)務(wù)團隊快速打造高維護性、高擴展性的工程結(jié)構(gòu)。

據(jù)了解,在SogouModuleBus組件化框架中,組件的依賴與隔離關(guān)系是通過GradlePlugin自動完成的。使用框架定義的gradle方法在build文件中組織組件依賴,gradle內(nèi)部會根據(jù)配置確定組件依賴方式,提供代碼隔離或不隔離直接依賴。

在上述依賴管理特性下,框架將自動實現(xiàn)同級組件的代碼隔離,甚至在必要情況下,還能將具有上下依賴關(guān)系的組件做到代碼隔離不可見,具有超強的解耦力度。

為實現(xiàn)組件單獨運行,框架內(nèi)部對組件獨立運行時的資源文件以及build設(shè)置做了自動化配置,開發(fā)者在使用時只需一個布爾變量就可以標識組件運行的方式(單獨運行還是組合運行),借助組件依賴強隔離特性即可實現(xiàn)組件單獨運行。

除此之外,使用SogouModuleBus將會更好的助力結(jié)構(gòu)立體分層,上層組件單向依賴下層組件,每層里面的各組件不直接依賴,極大地降低代碼耦合度,從而幫助開發(fā)者定位角色以及提高架構(gòu)的擴展性。

近年來,搜狗不斷加大對技術(shù)項目的研發(fā)和投入,并且在行業(yè)中獲得越來越多的認可,此次開源的SogouModuleBus組件化框架,再次表明了搜狗在技術(shù)領(lǐng)域的投入與實力。未來,搜狗將繼續(xù)發(fā)揮自身科研實力,為行業(yè)和開發(fā)人員帶來更多優(yōu)質(zhì)的技術(shù)解決方案。

(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )