架構師當聚焦於邊界與接口

作者:埃納爾·蘭德雷(EinarLandre)

自納爾遜勳爵(Lord Nelson)在1805年的特拉法爾加(Trafalgar)海戰中推毀了法西聯軍艦隊以來,“分而治之(divide and conquer)”己經成爲處理複雜難題的神咒。表達相同的意思但更爲人所知的另外一個術語,則是“關注分離(separation of concern)”。爲了分離關注點,人們發明了封裝(encopsulation)的辦法,從封裝又引出了邊界(boundary)和接口(interface)的概念。

從架構師的角度看,困難的所在,是要找到設置邊界的自然之處(natural place)、並定義出構建可工作系統(a working system)所需的合適接口。大型的企業系統,其自然邊界稀少及多個領域之間互有糾纏,做到這點尤其困難。在此情況下,古老的智慧諸如“低耦合,高內聚(Minimize coupling,maximize cohesion)”和“避免橫向切分需要高度信息交換的區域(Do not slice through regions where high rates of informationexchange are required)”提供了一些指導方針,但它們並沒有提及如何以一種簡易的方式與利益相關者(stakeholder)就問題和潛在解決方案(potential solutions)進行溝通。

埃裏克·埃爾斯(EricEvans)在他的著作《領域驅動設計(Domain-Driven Design)》(Addiosn-Wesley Professional)中描述的“有界情境(boundedcontext)”和“情境地圖(context mapping)”的概念,對此頗有助益。有界情境是用以唯一定義一個模型或概念的區域,通常以一朵雲或一個氣泡來表示,同是還賦予一個在當前領域中能夠定義其角色和職責的描述性名稱。舉例而言,在航運系統中,可能包括諸如“貨運操作”、“貨運調度”和“港口運送”情境。在其他領域中,也有相應的適合名稱。

識別出這些有界情境並在白板上繪製出來之後,就到了開始繪製出各個情境之間關係的時候了。這些關係可能會揭示出在組織、功能或技術上的依賴。這項工作的成界,便是一個情境地圖(context mapping),它包含了一系列有界情境及它們之間的接口。

這樣的一個情境地圖,爲架構師提供了一個種強大的工具,使得他們可以聚焦於“哪些應該歸在一起,而哪些應該分開”,從而使他們能夠以一種可順暢溝通的方式,實施明智的分而治之。他們可以十分容易地採用該技術來記錄和分析系統當前的狀況(as-is situation),並從該點出發,斷續指導對系統的重新設計,以獲得一個具有低耦合、高內聚和接口定義良好(well-defined interface)等特徵的更好的系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章