前端與後端分離的架構實例(二)

前幾天,寫了一篇名爲《一個前端與後端分離的架構實例》的文章,在那篇文章裏,以一個真實的項目做爲實例。如今接着再談談我對於前端與後端分離一些新的想法。html

對於我來講,理想的架構是,後端提供各類各樣的服務,而前端只要把這些服務給整合起來,就變成一個客戶所須要系統。可是,實際上在整合的過程,都須要泛及到後端的開發,我期待是後端涉及到的改動是儘量的少。前端

當一個系統是基於前端與後端分離這種模式來進行來發的,一般來講,這種開發模式使得整個開發的環節變長了,這將致使整個開發團隊(包括前端與後端開發人員)的開發失去了靈活性,由於一點點小功能的改動,頗有可能都須要好幾我的來進行協做開發。數據庫

舉一個例子來講,以下圖所示,若是要添加一個地址的字段,咱們來看看整個開發流程是怎麼樣的。首先,前端人員要找到後端開發人員,告訴他須要添加一個字段,後端開發人員確認後,而後在數據對應的表裏加了這麼一個字段,接着生成 Model,而後測試一下,再告訴前端人員,前端人員進行開發。從這裏咱們能夠看得出來,添加字段一個如此簡單的功能,整個流程走完,最少也得一個小時,這是理想的狀況。碰到不理想的狀況,拖個幾天也是有可能。後端

數據的提交

我一直在想,能不能把這個環節給縮短了,從於提高整個開發團隊的效率。對於前端開發人員來講,他只關心這個字段能不能保存起來,而且能讀出來就好了,致於保存到哪裏,數據庫仍是其它什麼地方,他是不關心。那麼,後端能不能自動把這個字段給保存起來呢?安全

前端開人員提交的數據:架構

{
    UserName: 'administrator',
    Address: '上海閘北'
}

數據的保存

後端在接收到前端人提交上來的數據後,對字段進行逐個判斷,若是實體類裏面沒有對應屬性的,好比說沒有"Address"這個屬性,那麼這些屬性將會以鍵值的方式來儲存,好比說能夠使用 NoSQL 數據庫來保存。框架

數據的讀取

數據的讀取是首先從關係型數據庫把數據給讀取出來,而後再從NoSQL數據讀取對應的鍵值對(假定數據保存在非關係型數據庫裏),而後把數據給整合起來返回到前端。測試

實體的保存

對於一些簡單的,非核心的業務,咱們徹底能夠在前端來實現,好比說,選座位的這麼一個功能,相似似於團購電影票的時候,進行座位的選擇這麼一個功能。這種功能很是簡單,可是,泛及到實體類的添加,一樣,咱們也能夠採用使用 NoSQL 數據來保存這些數據。網站

安全性

對於咱們系統來講,因爲前端是使用 JavaScript 來編寫的,上面這種作法使得整個系統的安全性變得很脆弱,很容易在數據庫中注入一些數據。因此還須要保證,每一個用戶只可以對本身的數據進行處理。關於這個問題,咱們之後再具體談談。spa

 

招聘前端初級開發人員:懂 JQuery、JQuery UI、JQuery Validate、Knockout JS 等JS 框架,略懂 Linq to SQL,能閱讀文檔,根據文檔示例寫代碼(歡迎勤奮好學的畢業生)

地點:上海市閘北區

網站:http://www.vknew.com/index.html

相關文章
相關標籤/搜索