什么是前端?
前端代碼在瀏覽器運行,后端代碼在服務(wù)器運行。
前后端不分時代
互聯(lián)網(wǎng)發(fā)展的早期,前后端開發(fā)是一體的,前端代碼是后端代碼的一部分。
- 后端收到瀏覽器的請求
- 生成靜態(tài)頁面
- 發(fā)送到瀏覽器
后端MVC的開發(fā)模式
那是的網(wǎng)站開發(fā),采用的是后端MVC模式。
- Model(模型層):提供/保存數(shù)據(jù)
- View(視圖層):展示數(shù)據(jù),提供用戶界面
- Controller(控制層):數(shù)據(jù)處理,實現(xiàn)業(yè)務(wù)邏輯
前端只是后端MVC的V。
MVVM模式
另一些框架提出MVVM模式,用View Model代替Controller。
Model
View
View-Model:簡化Controller,唯一作用就是為View提供處理好的數(shù)據(jù),不含其它邏輯。
Angular
Google公司推出的Angular是最流行的MVVM前端框架。
它的風(fēng)格屬于HTML語言的增強,核心概念是雙向數(shù)據(jù)綁定。
Vue
Vue.js是現(xiàn)在很熱門的一種前端MVVM框架。
它的基本思想于Angular類似,但是用法更簡單,而且引入了響應(yīng)式編程的概念。
前后端分離
- Ajax -> 前端應(yīng)用興起
- 智能手機 -> 多終端支持
這兩個原因,導(dǎo)致前端開發(fā)方式發(fā)生根本的變化。
前端不再試MVC中的V,而是單獨的一層。
Node
2009年,Node項目誕生,它是服務(wù)器上的JavaScript運行環(huán)境。
Node = JavaScript + 操作系統(tǒng)API
Node的意義
- JavaScript成為服務(wù)器腳本語言,與Python和Ruby一樣
- JavaScript成為唯一的瀏覽器和服務(wù)器都支持的語言
- 前端工程師可以編寫后端程序了
前端開發(fā)模式的根本改變
- Node環(huán)境下開發(fā)
- 大量使用服務(wù)器端工具
- 引入持續(xù)集成等軟件工程的標準流程
- 開發(fā)完成后,編譯成為瀏覽器可以運行的腳本,放在CDN
全棧工程師
前端工程師正在轉(zhuǎn)變?yōu)槿珬9こ處?/p>
- 一個人負責(zé)開發(fā)前端和后端
- 從數(shù)據(jù)庫到UI的所有開發(fā)
全棧技能
怎樣才能稱為全棧工程師?
- 傳統(tǒng)前后端技能:HTML、CSS、JavaScript
- 一門后臺語言
- 移動端開發(fā):IOS/Android/HTML5
- 其他技能:數(shù)據(jù)庫、HTTP等等
軟件行業(yè)的發(fā)展動力
歷史演變:前后端不分 -> 前后端分離 -> 全棧工程師
動力:更加產(chǎn)業(yè)化、大規(guī)模的生產(chǎn)軟件
- 效率更高
- 成本更低
通用型好、能夠快速產(chǎn)出的技術(shù)最終會贏,單個程序員的生產(chǎn)力要求越來越高。
H5就是一個最好的例子
為什么H5技術(shù)會贏得移動端?
- 開發(fā)速度快:Native需要重新編譯才能開到結(jié)果,H5是及時輸出
- 開發(fā)成本低:Native需要兩個開發(fā)團隊,H5只要一個
- 快速開發(fā):安卓Native新版本需要24小時,IOS需要3~4天,H5可以隨時更新
未來軟件的特點
- 聯(lián)網(wǎng)
- 高并發(fā)
- 分布式
- 跨終端
現(xiàn)在基于Web的前端技術(shù),將演變?yōu)槲磥硭熊浖耐ㄓ玫腉UI解決方案。
未來只有兩種軟件工程師
- 端工程師
- 手機端
- PC端
- TV端
- VR端
- ......
- 云工程師