在網站開發過程當中,對於先後端的分界線彷佛一直是衆說紛紜。在網上搜索什麼是先後端分離,更是說什麼的都有,天花亂墜,描述不清。從一開始徹底沒有先後端的概念,到後來的糾纏不清。javascript
傳統的分離方法php
在個人腦海中一提到前端和後端,基本上第一個出現的區別點就是:後端是跟數據庫跟服務器打交道的,前端是跟瀏覽器打交道的。彷佛沒有什麼問題,你們都這麼認爲的。固然這沒有什麼錯,咱們一直以來都認爲僅僅是以瀏覽器做分界,把這兩部分的代碼分離出來。可是先後端分離的初衷是爲了分離先後端開發人員的職責,同時解決開發模式的問題。但彷佛他們的職責在之前甚至於如今都並不明確,雖然前端是跟瀏覽器打交道,可是最終瀏覽器拿到的頁面是服務器經過模板生成的一個臨時靜態頁面而已。因此,實際上後端也摻和進來了,由於他要處理模板。固然,通常傳統上的開發協做模式有兩種:css
一種是前端先寫一個靜態頁面,寫好後,讓後端去套模板。靜態頁面能夠本地開發,也無需考慮業務邏輯只須要實現View便可。不足是還須要後端套模板,這些前端代碼後端須要瀏覽一遍,以避免出錯。html
另外一種協做模式是,前端直接去寫模板,這樣作的問題在於,前端編寫過程當中很依賴與後端環境,若是當後端沒寫完的狀況下,前端幾乎無法幹活。前端
顯然這兩種方式彷佛都有不少問題,但至少這仍是目前爲止大部分公司所採用的模式。他們從物理層來區分先後端的開發,同時淡化了前端在邏輯上的色彩。因爲前端所作的事情就是來實現一個頁面的靜態版本,因此,大多數公司又給前端工程師們找了點活幹。你去看如今公司在招聘的時候前端工程師的要求,除了對頁面的基本製做技能外還有額外的設計職責。例如至少會一門後端編程語言NodeJs或者php或者Java。java
到這裏本來咱們覺得已經將先後端分離開來了,可是在模版這個尷尬的問題上,先後端的工程師們絕對吃過很多苦頭。目前直接在jsp或是php裏面寫html應該很少了。先後端分離正在是正火。那麼怎麼分離,誰佔的多點,誰佔的少點,根據各個公司的技術水平來。前端開發工程師牛了,就想着前端的mvc,mvvm,直出。後端牛了,就想着,你把這個原型給後端,其餘不用管了。node
傳統的開發方法react
以前的php代碼寫在html代碼裏,不存在純粹的php文件和html文件,這裏就是先後端不分離,大概意思就是php和html,你中我有,我中有你.jquery
可是呢,後來開發的時候遇到不少問題,前端(html,css,js)工程師對php代碼可能讀不懂,php工程師也不對css那些內容很是熟悉,因此後來人們想出一個辦法,把代碼分離!這樣就能讓每一個人在各自的領域更好的發揮,這樣雖然消耗了必定的效率,可是對於開發人員從某一角度來講是友好的.webpack
先後端分離並無網上說的那麼複雜。
1.首先要知道全部的程序都是一數據爲基礎的,沒有數據的程序沒有實際意義,程序的本質就是對程序的增刪改查。
2.先後端分離就是把數據操做和顯示分離出來。前端專一作數據顯示,經過文字,圖片或者圖標等方式讓數據形象直觀的顯示出來。後端專一作數據的操做。前端把數據發給後端,有後端對數據進行修改。
3.後端通常用java,c#等語言,如今的node屬於JavaScript也能進行後端操做,此處不意義裂解語言。後端來進行數據庫的連接,並對數據進行操做。
4.後端提供接口給前端調用,來觸發後端對數據的操做。
基本原理就是這樣,可能語言上不許確,思想是沒有問題的。
因此開發網站的核心如今基本上就是:
html + css :頁面展現
javascript + ajax(這個算是瀏覽器的一部分,能夠經過 javascript 調用) : 頁面交互、邏輯處理
一般的開發框架選擇:
簡單網站: jquery + bootstrap
後臺管理系統: angularjs + jquery + bootstrap + webpack
複雜的產品: react + redux + webpack