2016/05/03

淺談【架構天平】

在業界打滾一陣子,經常性的會聽到「前端效能不如後端」,或是「後端除錯是地獄」的一些言論,其實我認為真正的問題,在於【架構上的設計傾向】,由於系統架構師在「架構天平」上錯誤地過於傾向某一方,進而才會造成開發者的踏入前述的誤區。

前端超好開發,但使用者對系統最有印象的卻是轉轉轉圖標。
後端效能超級好,可是一旦發現拉到前端的資料不正確,除錯的過程和從地獄爬到人間的難度差沒多少。


這糾結的核心就是【資料邏輯】的開發,當資料邏輯開發偏重在【架構天平】的某一方,便會造成【前端無盡的效能優化】或是【後端永恆的程式迷航】進而造成開發時程的延誤。
你比較偏好在哪一方設計呢?

只有在前後端在平衡發展下,系統才會健康的成長茁壯。

在系統架構上還有分成:1 Tier, 2 Tier, 3 Tier ... N Tier,但嚴格來說,在前後端一刀切分後,大概如下圖所示:
不論架構多到幾層,嚴格來說也可以這樣區分

前端的優勢在於資料流的處理,除錯也非常方便,一切操之在我的感覺非常好。
後端的優勢在於資料集合的處理,簡單明瞭的指令便可以快速的將使用者需要的資料打包並產出。

僅就【資料邏輯】範圍內:
何時應該在前端開發?我的經驗是:在於需要頻繁地對收到的資料集合進行拆解、解析及疊代處理時。什麼?後端也可以疊代?沒關係,你疊疊看就知道了。

何時應該在後端開發?我的經驗是:以批量為準則,不論是資料異動、擷取,後端的資料篩選技術,是前端望塵莫及的。


怎麼分辨自己的系統處於【平衡】的狀態呢?


這邊提供一個小小的分析技巧,只要維護難度和時間上,前後端都能精楚知道彼此的運作和產出,這樣,一個幾近平衡的【架構天平】就算是圓滿實現了。


圖片來源:

沒有留言:

張貼留言