本文同步至微信公眾號http://mp.weixin.qq.com/s?__biz=MzAxMzgwNDU3Mg==&mid=401950045&idx=1&sn=cec056802bb52f909554691d0427f4f0#rd 對後續文章感興趣的可以掃碼關註哈 對於一個非技術人員比如說pm,
本文同步至微信公眾號http://mp.weixin.qq.com/s?__biz=MzAxMzgwNDU3Mg==&mid=401950045&idx=1&sn=cec056802bb52f909554691d0427f4f0#rd
對後續文章感興趣的可以掃碼關註哈
對於一個非技術人員比如說pm,網站編輯等通常遇到一些問題,不知道是該找前端解決還是應該找後端。也有一些功能,既可以放到前端來做,也可以放到後端來做。這樣看似一個模糊不清的問題,然而考慮到後續的維護成本,頁面性能時,結論往往是明確的。
一個web應用在開發模式上通常劃分為前端和後端。本文基於此,淺償輒止的聊聊前後端開發分別都是做什麼的,以為它們之間如何分工當然還有自己的工作觀。希望對非技術人員或初學web開發的同學有所幫助也希望大牛們不要見笑。。
通俗地說,後端是處理數據的,前端是展示數據的。例如,當我們訪問一個已展示性為主的站點時,首先會在瀏覽器地址欄輸入該站點的網址。這是瀏覽器會通過DNS功能變數名稱解析器獲取到該網址對應的站點的ip地址,然後瀏覽器向對應的web伺服器發送請求(http),web伺服器響應該請求,從DB中獲取數據,並返回給瀏覽器。如下圖所示:紅框圈出來的就是後端做的事情,響應瀏覽器發送的http請求,操作資料庫,處理數據,然後返回。瀏覽器端也就是前端在拿到數據之後,對數據進行展現。這也是通常的以展示性為主的web應用的工作流程。(http為web開發的基石,不清楚的,google之)。
也就是前端關註的是用戶體驗。真實的還原設計稿,保證web動畫的流暢性,在視覺和交互上給用戶一種清爽、簡潔舒適的感覺。這也是我對於一個好的設計,好的設計稿的理解。用戶界面並不是越炫酷就越好的。要追求極致簡潔,返璞歸真。要做到簡單,有時候,往往更艱難。。而數據操作,併發量,許可權控制等都是後端關註的。
在對前端,後端有了一個初步的印象之後,接下來,實際開發中前後端是怎麼協作的呢?一種方式是前後端開發之前預先定義好數據格式及變數的命名等,然後前端根據設計稿和預先的約定編寫頁面模板,將模板開發好之後,發給後端程式員。後端在拿到模板之後,操作資料庫,用獲取到的數據渲染模板生成html頁面返回給瀏覽器。另一種方式是,前後端預先定義好數據格式,然後把數據以json或jsonp形式的介面暴露給前端,然後前端獲取到數據之後,在前端進行模板的渲染。具體該使用哪一種方式,或是兩種方式都使用,就需要根據具體的業務場景具體分析了。
按照目前的開發模式,目前還無法完全的做到前後端分離。好的應用也都是在前端後端及設計師通力配合的結果。一方面為了降低工作中的溝通成本另一方面從提升工程師自身的開發素質從整體的全局的角度上認識web開發而不是前端開發或者後端開發而言,我們都不應該只局限於前端或後端。前端工程師也應該去瞭解些後端的知識,後端也應該去學一些前端的知識。在保證知識廣度的前提下去拓展知識的深度。
最後,正如文章開頭說言,有一些功能,既可以放到前端來做,也可以放到後端來做。不同的實現方式,它的後期的維護成本以及性能往往不盡相同,有時候差別還很大。有的時候,我建議有些功能放到後端完成,並不是想減輕自己的工作量,而是考慮到這些因素之後得出的一個結論。開發當中,不可避免的會碰到一些問題、困難。我們不能因為難做而繞道採用兩一種次一些的實現方案。正是因為有一些問題有困難,才有我們存在的價值。當然,一切的一切都是建立在我們每個程式員自身的基礎素質之上的。。