架構師當聚焦於邊界與介面_軟體架構

來源:互聯網
上載者:User

作者:埃納爾·蘭德雷(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)等特徵的更好的系統。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.