今天小董給大家做了一個關(guān)于DMTP的精彩演講膀藐,DMTP種種優(yōu)秀的特性令我們這些聽眾嘆為觀止屠阻。
為何DMTP具有如此魔法呢?
也許要從spring integration說起额各,除了實(shí)現(xiàn)了企業(yè)集成模式外国觉,它還是作為一個微服務(wù)設(shè)計(jì)的。也就是說虾啦,DMTP自然也具有獨(dú)立開發(fā)維護(hù)和部署蛉加,以及易于擴(kuò)展的敏捷特性蚜枢。
代碼解耦以后各個模塊也就變得相對簡單,易于重用针饥,易于分析impact厂抽,易于單元測試和保證質(zhì)量。當(dāng)某功能模塊的發(fā)布也解耦的時候丁眼,這個組件就可以獨(dú)自更新測試發(fā)布筷凤,并且升級擴(kuò)展,這就是微服務(wù)苞七。
從信息被減少的角度來看藐守,抽象是解耦天然的解決方案。解耦是橫向的隔離蹂风,這種隔離可以基于抽象這種縱向的隔離機(jī)制之上卢厂。除了各種基于接口的面向?qū)ο蟮脑O(shè)計(jì)模式以外,代理顯然也是解耦的方案之一惠啄。
想一想社會的高度精細(xì)化分工慎恒,不正是解耦的絕佳例子嗎,生產(chǎn)汽車的廠商要同輪胎廠商合作撵渡,才能最終完成產(chǎn)品融柬。其中輪胎廠商專注于輪胎的生產(chǎn),它的生成運(yùn)營趋距,特色化服務(wù)粒氧,甚至技術(shù)進(jìn)步,都能獨(dú)立完成节腐。反過來汽車廠商也是一樣外盯,而且一旦輪胎是符合標(biāo)準(zhǔn)的,汽車廠商可以隨時更換輪胎供應(yīng)商翼雀,這叫portability饱苟。
還有各種第三方運(yùn)營,是使用代理解耦的一種表現(xiàn)
自然而然的锅纺,一些問題產(chǎn)生了:
假如將功能P分拆為A,B肋殴,C三個部分囤锉,怎么能確定這樣分是最優(yōu)的,拆分的原則是什么护锤,A官地,B,C的邊界在哪里烙懦?
是不是拆分的粒度越小越好驱入,怎樣決定粒度的大小?
對于做interface 這件事亏较,ISDC經(jīng)驗(yàn)豐富莺褒,怎樣考慮到解耦enterprise integration,障礙在哪里雪情?
若自己考慮拆分integration的模塊遵岩,也會得到endpoint, channel, filter…這些抽象組件么,差別是如何造成的巡通?
學(xué)習(xí)spring integration是否有助于理解學(xué)習(xí)其它包含抽象概念的framework尘执?
思考是一種樂趣,歡迎交流:-)