前端开发的盛宴
想寫這篇文章由來已久,目的是想回顧一下基于Web技術(shù)的開發(fā)技術(shù)和流程的變遷,以及其背后的原因或規(guī)律。
我依然記得,很多年前做出來第一個公司網(wǎng)站時的激動心情(加班到晚上,興奮地在空曠的辦公室走來走去),雖然那個網(wǎng)頁上面的內(nèi)容基本上都是固定的,只是加了一點點動態(tài)效果,例如根據(jù)當(dāng)前時間顯示“上午好” 還是“下午好”等等。當(dāng)時作為一個工科出身、并沒有多少審美情趣的業(yè)余程序員,完全拿捏不好如何顯示好看一點的字體或者顏色,但仍然以能通過IIS + FrontPage Server搭建出來這么一個東西感到很神奇。
后來興起了一波互聯(lián)網(wǎng)的熱潮,網(wǎng)絡(luò)開發(fā)的技術(shù)突飛猛進(jìn),典型的產(chǎn)物就是很多服務(wù)器編程技術(shù)或框架大行其道,例如PHP,JAVA, ASP.NET等等。開發(fā)人員相對來說更加習(xí)慣用服務(wù)器編程思維進(jìn)行工作,團(tuán)隊中當(dāng)然會有美工,但主要工作只是用來做切圖,還沒有真正意義上的前端或交互設(shè)計的概念。
再后來移動互聯(lián)網(wǎng)大行其道,安卓和蘋果兩大平臺不斷推陳出新,雖然它們的編程體驗并不友好(尤其是iOS開發(fā)),但擋不住移動化的趨勢,不斷涌現(xiàn)的場景和業(yè)務(wù)機(jī)會,使得越來越多的人去學(xué)習(xí)移動開發(fā),風(fēng)頭一時無兩。
經(jīng)過前幾波的發(fā)展,人們也有機(jī)會對不同的幾種應(yīng)用開發(fā)的方式進(jìn)行比較。當(dāng)時的共識大抵是:移動設(shè)備雖然不至于完全取代桌面,但仍然將逐漸成為一個很重要的終端,長遠(yuǎn)看移動設(shè)備一定會超過桌面。所以,移動化的路線是沒有錯的,但移動應(yīng)用開發(fā)和維護(hù)的成本其實很高,也不夠敏捷,而傳統(tǒng)的網(wǎng)頁開發(fā)技術(shù)又顯得笨拙。這樣的大背景下,HTML5應(yīng)運(yùn)而生了。HTML5不僅強(qiáng)化了在瀏覽器端的能力(不管是表現(xiàn)能力,還是編程能力),而且最重要就是添加了設(shè)備的能力。HTML5技術(shù)的出現(xiàn)和逐漸成熟,催生了前端技術(shù)棧。而為什么前端受到越來越多的關(guān)注,也是因為我們越來越注重用戶體驗。
Angular,React和后來的Vue,雖然本質(zhì)上是不同的東西,但經(jīng)常拿來做比較,這是因為它們確實是目前主流的幾種做前端應(yīng)用的方式,各有優(yōu)缺點。我個人對React比較熟悉,雖然寫的并不多,但也驚嘆于它的設(shè)計理念,Javascript可以搞定一切,天生組件化的設(shè)計,這些都讓原先只會做服務(wù)器端開發(fā)的程序員們,終于也敢放開手來做前端應(yīng)用了,而且前端的能力得到了空前的提高。
得益于HTML5的發(fā)展和瀏覽器的進(jìn)化,我們現(xiàn)在可以在前端完整地實現(xiàn)一套應(yīng)用,不僅僅能在瀏覽器內(nèi)部運(yùn)行,也可以安裝到桌面上,甚至脫機(jī)使用。上述這個應(yīng)用,加載成功后,會在瀏覽器緩存中保存107MB的數(shù)據(jù),所以實際上很多的操作都是在本地完成,不需要發(fā)起服務(wù)器端調(diào)用。這在以前是無法想象的。
目前發(fā)展下來幾代技術(shù),既是一脈相承,又螺旋迭代進(jìn)化。移動本機(jī)應(yīng)用和網(wǎng)絡(luò)應(yīng)用是否能無縫整合,目前逐漸揭曉的答案是“混合應(yīng)用”(Hybrid App),你中有我,我中有你。這樣既能利用本機(jī)應(yīng)用(Native app)的設(shè)備相關(guān)能力以及性能,又能使用網(wǎng)絡(luò)應(yīng)用(Web app)的創(chuàng)新開發(fā)框架和迭代能力,豈不美哉。遠(yuǎn)的不說,Teams就是一個典型的Hybird app,此前是用Electron這個框架來做運(yùn)行框架,內(nèi)部其實全部用Angular寫的一個Web應(yīng)用?,F(xiàn)在已經(jīng)改造成使用Edge Webview2來做運(yùn)行框架,完全用React編寫。
總結(jié)
- 上一篇: 使用 WPF + Chrome 内核实现
- 下一篇: WeihanLi.Npoi 1.21.0