利用簡單的事件驅動元件簡化系統

2021-09-17 05:53:07 字數 833 閱讀 4344

在小型業務元件之間使用事件進行互動可以簡化系統,russ miles最近就談到了「為敏捷軟體編寫簡單的、事件驅動的元件」這一主題。

\ 乙個月前,russ在演講中**了「利用事件簡化系統架構」,奠定了簡化系統這一理念的基礎,他建議採用通過彼此合作的元件來交換事件這種架構。這次演講正是承接上次演講而來的。

\ 之所以使用這種設計,russ的目標是讓元件隨應用或系統的改變而改變,避免牽一髮而動全身。

\ 在最近的演講中,russ專注於元件,而且他將「簡化」作為乙個原則來降低元件間的耦合。乙個元件是不是簡單直接?有個很好的衡量標準,看看這個元件是不是容易移動。如果很難移動,就說明元件太複雜了。他把複雜的元件比作聖誕樹上的燈,牽一髮而動全身。

\ 為了簡化複雜的元件,他首先把關注點和***分離開來,將它們移動到新的、更小的元件或函式中。關於***有乙個例子,就是將***與外部世界整合到一起,比如russ將日誌看做乙個應該移到基礎架構中的關注點。

\ 事件是在元件之間傳遞資料的機制,這就帶來了位置耦合,因為傳送方需要知道接收方的位置,不過通過引入乙個帶有事件分發器的中間事件域,可以去掉這種耦合。

\ 事件可以是從乙個元件移動到另乙個元件的共享的不可變類,這是事件最簡單的形式,但這也會引入耦合。為了降低複雜性,russ的下一步是以具名引數的形式用資料來替換該類,比如鍵值對的對映。

\ 這種設計的缺點是引入了間接性。russ認為該設計並沒有增加複雜性,但推遲了可能出現的潛在問題。解決該問題的方法就是在兩個元件之間進行大量測試,其中包括單元測試和整合測試。

\檢視英文原文:build simplicity into a system with ****** event-driven components

簡簡單單的利用陣列實現超市管理系統

使用選擇結構,迴圈結構,陣列的知識實現乙個超市管理系統 主選單 public static void menu 遞迴方法,防止使用者輸入錯誤 public static void choose int i 以及需要的靜態變數,陣列 static int goodsid 預留的倉庫位置 static ...

利用JS跨域做乙個簡單的頁面訪問統計系統

幾個基本統計需求 1.統計web每個頁面使用者訪問量 2.統計使用者訪問者的和ip位址資訊 3.頁面之間的跳轉情況 4.訪問高峰時間段 伺服器結構 資料庫表設計 以上只是我簡單列舉的需求,這邊簡單的就一張統計表,而這張統計表能滿足的需求是不僅僅只是上面四個基本的需求的,可以看需求情況再做相應的業務處...

利用JS跨域做乙個簡單的頁面訪問統計系統

幾個基本統計需求 1.統計web每個頁面使用者訪問量 2.統計使用者訪問者的和ip位址資訊 3.頁面之間的跳轉情況 4.訪問高峰時間段 伺服器結構 資料庫表設計 以上只是我簡單列舉的需求,這邊簡單的就一張統計表,而這張統計表能滿足的需求是不僅僅只是上面四個基本的需求的,可以看需求情況再做相應的業務處...