1. 程式人生 > >系統分析與設計【lesson 13】

系統分析與設計【lesson 13】

1. 描述軟體架構與框架之間的區別與聯絡

 軟體架構是有關軟體整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。軟體架構決策涉及到如何將軟體系統分解成不同的部分、各部分之間的靜態結構關係和動態互動關係等。經過完整的開發過程之後,這些架構決策將體現在最終開發出的軟體系統中。

 軟體框架是面向領域的、可複用的“半成品”軟體,它實現了該領域的共性部分,並提供了一些定義良好的可變點以保證靈活性和可擴充套件性。也就是說軟體框架是領域分析結果的軟體化,是領域內最終應用的模板。

 總的來說,軟體架構是一種抽象描述,而軟體框架是一種可複用的軟體,這是兩者本質上的不同。軟體架構可以體現在軟體框架之中,在按照軟體架構進行編碼的過程中,用到的軟體框架也是符合這個架構的。

2. 以你的專案為案例

繪製三層架構模型圖,細緻到分割槽

結合你程式的結構,從程式設計師角度說明三層架構給開發者帶來的便利

三層架構模型圖如下:

這裡寫圖片描述

三層架構給開發者帶來的便利
  1. 由於有了較為明確的劃分,開發者能夠被合理分工,各司其職
  2. 各層的解耦使得開發出的軟體更為魯棒,便於維護
  3. 清晰的架構使得每個開發者對整個專案有整體上的瞭解
  4. 各個模組的壓力有所差異,開發者可以採取更加有針對性的實現方案
  5. 各層的同步實現能夠加快專案程序

3. 研究 VUE 與 Flux 狀態管理的異同

 Vue
 父子元件的狀態可以通過prop傳遞和emit觸發。對於更復雜的情況,如果應用足夠簡單,可以通過全域性的event bus進行元件間的狀態管理,但是當面對中大型的單頁應用時,Vuex能夠讓我們更好地在元件外部管理狀態。Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。
 Vuex使用單一狀態樹進行狀態管理,更改 Vuex 的 store 中的狀態的唯一方法是提交 mutation,開發者不能直接呼叫一個 mutation handler,而應該以相應的 type 呼叫 store.commit 方法來喚醒。Action 提交的是 mutation,而不是直接變更狀態。mutation是同步操作,而Action可以包含非同步操作。

這裡寫圖片描述

 Flux
 Flux將一個應用分成四個部分
  • View: 檢視層
  • Action(動作):檢視層發出的訊息(比如mouseClick)
  • Dispatcher(派發器):用來接收Actions、執行回撥函式
  • Store(資料層):用來存放應用的狀態,一旦發生變動,就提醒Views要更新頁面
 Flux的最大特點是資料的單向流動:使用者訪問 View,View 發出使用者的 Action,Dispatcher 收到 Action,要求 Store 進行相應的更新,Store 更新後,發出一個”change”事件,View 收到”change”事件後,更新頁面。如下圖:

這裡寫圖片描述

 總結:Vue可以使用原始純粹的雙向繫結,也可以通過全域性event bus和Vuex狀態管理工具進行全域性的狀態管理,Vuex是類Flux的狀態管理模式。Flux最大特點是資料的單向流動,我覺得這點Vuex和Flux比較相似,但是傳遞的部件和具體方式有所差異。