原創(chuàng)|對(duì)比評(píng)測|編輯:龔雪|2014-11-24 09:28:09.000|閱讀 4836 次
概述:盤點(diǎn)當(dāng)下最火的web開發(fā)技術(shù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
HTML5
2014年10月29日,萬維網(wǎng)聯(lián)盟淚流滿面地宣布,經(jīng)過幾乎8年的艱辛努力,HTML5標(biāo)準(zhǔn)規(guī)范終于最終制定完成了,并已公開發(fā)布。
HTML5提供了一些新的元素和屬性,例如nav(網(wǎng)站導(dǎo)航塊)和footer。這種標(biāo)簽將有利于搜索引擎的索引整理,同時(shí)更好的幫助小屏幕裝置和視障人士使用,除此之外,還為其他瀏覽要素提供了新的功能,如audio和video標(biāo)記。
HTML5還有望成為夢(mèng)想中的"開放Web平臺(tái)"(Open Web Platform)的基石,如能實(shí)現(xiàn)可進(jìn)一步推動(dòng)更深入的跨平臺(tái)Web應(yīng)用。
Angular
我解釋一下為什么Angular能夠這么火,它主要解決的是哪個(gè)層面的問題呢?它解決的是快速開發(fā)的問題。我們知道,有很多b/s化的產(chǎn)品,其本質(zhì)還是像c/s,只是把這個(gè)c做到瀏覽器里來了,這樣的一些系統(tǒng),它免不了要在瀏覽器中寫大量js,然后使用某種ui框架,它的協(xié)同開發(fā)人員數(shù)量會(huì)相對(duì)較大,代碼量也會(huì)很多,在這類系統(tǒng)的開發(fā)過程中,從成本的角度要解決兩個(gè)問題:
怎樣讓開發(fā)過程盡量快?
怎樣讓變更成本盡量小?
解決這兩個(gè)問題的辦法是組件化。所謂組件化,在傳統(tǒng)軟件領(lǐng)域可能會(huì)有一些成熟方案,但是拿到Web,尤其Web前端這個(gè)層面,基本沒有一種通用方案。組件化并不僅僅要解決“控件”這個(gè)層面的問題,還需要把業(yè)務(wù)數(shù)據(jù)和邏輯也做規(guī)約,理清他們之間的關(guān)系,而Angular“碰巧”在這個(gè)方面很有幫助,它把UI和業(yè)務(wù)邏輯隔離得干干凈凈,模塊之間使用依賴注入來維系關(guān)系,易測試,可復(fù)用,作為架構(gòu)師,也可以比較容易地對(duì)整個(gè)項(xiàng)目有所把控。
我們看到很多人跟風(fēng)學(xué)Angular,有很大一部分并未抓住其實(shí)質(zhì),而是被一些邊角優(yōu)勢所吸引,因此用的過程中各種痛苦,如果能夠先認(rèn)識(shí)到它的本質(zhì)優(yōu)點(diǎn)所在,并且認(rèn)識(shí)到它確實(shí)適合自己的項(xiàng)目,一定能得心應(yīng)手,左右逢源。
React
為什么很多人被React吸引呢,因?yàn)樗麖牧硗庖粋€(gè)層面解決組件化的問題,而這種方式可能對(duì)前端來說更友好,而且還能夠在服務(wù)端解析模板。喜歡React的人常常用它的虛擬DOM、精確更新來打擊其他框架,誠然,它在這方面做得非常好,但并未高到影響全局的程度。這是什么意思呢,它是一個(gè)主要針對(duì)DOM組件的庫,如果用于完整的大型產(chǎn)品解決方案,還是有所欠缺的,它的優(yōu)勢集中在上層,但其實(shí)從宏觀角度看,這一層的效率并沒有那么重要,比如說你是一架很精巧的挖掘機(jī),自帶各種分揀功能,但很多時(shí)候,大家是很粗暴地去挖東西,就像挖煤那樣,你在細(xì)節(jié)上有多么高效并不重要,只有在一些需要精確控制的場景下,優(yōu)勢才能發(fā)揮出來。況且,當(dāng)Web Components出來之后,虛擬DOM是有很多沒法處理的問題的,而其他框架改進(jìn)數(shù)據(jù)綁定的效率之后,也能夠把這方面的差距縮小很多。
Instagram的網(wǎng)站和FB網(wǎng)頁上的Messenger就是用React寫的。雖然我說的都是缺點(diǎn),但它的實(shí)現(xiàn)方式確實(shí)別致,值得一看。
Yeoman
Yeoman是Google的團(tuán)隊(duì)和外部貢獻(xiàn)者團(tuán)隊(duì)合作開發(fā)的,他的目標(biāo)是通過Grunt(一個(gè)用于開發(fā)任務(wù)自動(dòng)化的命令行工具)和Bower(一個(gè)HTML、CSS、Javascript和圖片等前端資源的包管理器)的包裝為開發(fā)者創(chuàng)建一個(gè)易用的工作流。
Yeoman的目的不僅是要為新項(xiàng)目建立工作流,同時(shí)還是為了解決前端開發(fā)所面臨的諸多嚴(yán)重問題,例如零散的依賴關(guān)系。
Yeoman主要有三部分組成:yo(腳手架工具)、grunt(構(gòu)建工具)、bower(包管理器)。這三個(gè)工具是分別獨(dú)立開發(fā)的,但是需要配合使用,來實(shí)現(xiàn)我們高效的工作流模式。
同形的JavaScript
顧名思義,會(huì)有一部分 JavaScript 是前后端公用的,從 路由(Route),模版(Template),到數(shù)據(jù)驗(yàn)證(Validation),甚至是 交互狀態(tài)( 比如 一個(gè) modal )。
在這個(gè)世界里, 你的應(yīng)用和視圖層邏輯都可以在前后端運(yùn)行, 這樣就依次解決上述所有問題 — 性能優(yōu)化, 好的維護(hù)性, 可以被SEO,更有狀態(tài)的Web應(yīng)用。
通過Node.js,一個(gè)快速的, 穩(wěn)定的運(yùn)行在服務(wù)器端的JavaScript, 現(xiàn)在我們可以夢(mèng)想成真. 通過創(chuàng)建適當(dāng)?shù)某橄螅?我們就可以在服務(wù)器端和客戶端運(yùn)行我們的邏輯代碼 — 這就是“isomorphic JavaScript“的定義。
webGL
最新版chrome和firefox已經(jīng)支持,可以做3d動(dòng)畫了。
Flux
這是由Facebook推出的前端架構(gòu)理念:
據(jù)稱是因為Facebook覺得一般的前端MVC框架只能處理小型Web App,無法處理大型的,于是自己搞了一套架構(gòu)理念。
從個(gè)人現(xiàn)在淺薄的認(rèn)識(shí)來看,就是將Model和View之間紛雜的數(shù)據(jù)交互規(guī)整到一個(gè)dispatcher中,使得數(shù)據(jù)只能單向流動(dòng),你甚至可以在單向流動(dòng)的數(shù)據(jù)中每次都傳遞一個(gè)完整的新數(shù)據(jù),忽略掉增刪改三種類型,這樣可以進(jìn)一步簡化代碼。
這樣的處理可能有人覺得那DOM每次都生成新的,再整體替換,可能在元素很大量的情況下效率太低。但是配合Facebook自家的React(React自己維護(hù)了一套虛擬DOM,每次都會(huì)根據(jù)新老DOM對(duì)比的結(jié)果自動(dòng)的做增刪改DOM的操作。。。)感覺瞬間就高大上了。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)