小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Meteor:網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)的瑞士軍刀 隱者黑鷹

 隱者黑鷹 2017-01-30

自從Node.js撼動(dòng)整個(gè)Web開(kāi)發(fā)領(lǐng)域以來(lái),JavaScript Web全棧開(kāi)發(fā)框架層出不窮,但是隨著時(shí)間流逝,人們也逐漸意識(shí)到Node.js并不適合所有場(chǎng)景,一體化的開(kāi)發(fā)框架也不一定適合JavaScript, 眾多JS Web框架紛紛沉寂,但唯有Meteor以其韌性堅(jiān)持下來(lái)并脫穎而出,成為JavaScript Web開(kāi)發(fā)框架的代表。

2011年組建的Meteor畢 業(yè)于YCombinator訓(xùn)練營(yíng),成員來(lái)自Google等巨頭企業(yè)。迄今為止,Meteor開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)拿到了多輪投資,包括早期Andressen Horowitz領(lǐng)投的1000萬(wàn)美元,以及在推出Galaxy前夕的融資2000萬(wàn)美元。Meteor于2014年十月發(fā)布1.0版本,2015年的八 月份,Meteor超過(guò)Rails,Github Star數(shù)接近3萬(wàn),成為GitHub最受歡迎的網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)框架。

作為一個(gè)開(kāi)源框架,Meteor有著產(chǎn)品級(jí)的實(shí)時(shí)性和跨平臺(tái)特性,提供多種功能且易用性極佳。InfoQ一直關(guān)注Meteor的發(fā)展情況,并進(jìn)行了跟蹤報(bào) 道。近日Meteor發(fā)布了Galaxy應(yīng)用托管服務(wù),標(biāo)志著Meteor正式進(jìn)入商業(yè)運(yùn)營(yíng)的階段。本文將回顧Meteor的發(fā)展,并分析Meteor的 優(yōu)缺點(diǎn),以及Meteor的未來(lái)。InfoQ記者還就相關(guān)問(wèn)題請(qǐng)教了Vue.js作者、Meteor的開(kāi)發(fā)者之一尤雨溪。

Meteor的發(fā)展

Meteor早期版本以實(shí)時(shí)框架為賣點(diǎn),外界對(duì)它的關(guān)注大約從0.4版本開(kāi)始,這個(gè)版本將其Node.js依賴從0.6更新到0.8版本,而Node.js也正是從0.8版本開(kāi)始漸漸普及。下面列出Meteor的主要版本更新:

  • 2012年9月發(fā)布0.4版本,添加智能郵件發(fā)送包,更新 Node.js 從 0.6 到 0.8 版本。
  • 2013年0.5.x版本,從0.5版本開(kāi)始,Meteor做了相當(dāng)大的變動(dòng),目標(biāo)將基于Metero的應(yīng)用擴(kuò)展到百萬(wàn)用戶級(jí)別。0.5.3版增 加了對(duì)環(huán)境變量的支持,支持更多可配置的開(kāi)發(fā)環(huán)境。0.5.7版在性能和伸縮性上做了不少改進(jìn)。0.5.8班包含客戶端數(shù)據(jù)庫(kù)更新,增加對(duì) AppCache 支持,改進(jìn)了底層的 Deps 工具,支持CoffeeScript。
  • 0.6版本包含一個(gè)全新的系統(tǒng)用于分發(fā)Meteor和更新應(yīng)用,同時(shí)增加應(yīng)用專有的包以及直接支持 NPM 模塊。
  • 0.7版本實(shí)現(xiàn)一個(gè)新的數(shù)據(jù)庫(kù)驅(qū)動(dòng)器,使用MongoDB數(shù)據(jù)庫(kù)復(fù)制日志來(lái)更高效的監(jiān)控查詢。
  • 0.8版本用Blaze模板引擎替代2012年引入的Spark引擎,Spark被稱為jQuery的聲明式版本,不過(guò)顯然它并未代表未來(lái)的趨勢(shì)。
  • 0.9版本開(kāi)始豐富整個(gè)生態(tài)系統(tǒng),0.9.0版本發(fā)布了官方的Meteor packaging系統(tǒng),包括Isobuild構(gòu)建系統(tǒng)和Meteor Package Server。0.9.2 版本首次支持使用PhoneGap構(gòu)建iOS和Android移動(dòng)應(yīng)用。
  • 1.0版本與2014年10月發(fā)布,作為一個(gè)里程碑版本并不包含重大更新,但更新了文檔,優(yōu)化了用戶體驗(yàn)。
  • 1.1版本終于開(kāi)始支持Windows操作系統(tǒng),同時(shí)還支持MongoDB 3.0版本。
  • 1.2版本開(kāi)始支持ES6、AngularJS和React,前段時(shí)間還發(fā)布了Angular Meteor 1.2.0版,這是為Angular定制的版本。
  • 另外前段時(shí)間還發(fā)布了Galaxy,這是為Meteor應(yīng)用提供托管的官方服務(wù)。

從上面的更新我們可以看到Meteor不止是在打造一個(gè)框架,也是在構(gòu)建一個(gè)從研發(fā)到部署、從Web到移動(dòng)的、JavaScript全棧開(kāi)發(fā)的生態(tài)鏈,這是開(kāi)發(fā)者選擇Meteor的原因之一。

Why Meteor

從 發(fā)展趨勢(shì)來(lái)看,Meteor的出現(xiàn)并不是偶然。在Web開(kāi)發(fā)中,一體化的框架非常多,如Rails就是其中的杰出代表,以其快速開(kāi)發(fā)的能力受到人們青睞。 Node.js橫空出世以來(lái),最主流的Web框架是Express,但是它只能算微框架,要想開(kāi)發(fā)出一個(gè)功能完整的應(yīng)用還需要大量的配置和很多的功能插 件。市面上并沒(méi)有主流的Node.js一體化框架,Meteor瞄準(zhǔn)了這個(gè)缺口,也獲得了市場(chǎng)的承認(rèn)和開(kāi)發(fā)者的喜愛(ài)。

從開(kāi)發(fā)者的眾多反饋來(lái)看,選擇Meteor的原因不外乎下面幾點(diǎn):社區(qū)活躍、學(xué)習(xí)難度低、大量原生功能和優(yōu)秀的生態(tài)系統(tǒng),以及其主要的賣點(diǎn):實(shí)時(shí)性框架。

  • 社區(qū)活躍:Meteor無(wú)論在GitHub、StackOverflow還是Twitter等社交媒體上,用戶活躍度都超過(guò)其他開(kāi)發(fā)框架一個(gè)數(shù)量級(jí),活躍的社區(qū)代表開(kāi)發(fā)者正在進(jìn)行頻繁的交流和討論,有助于問(wèn)題的解決和框架的推廣傳播。
  • 學(xué)習(xí)難度低:如上文所說(shuō),Meteor是前后端甚至數(shù)據(jù)庫(kù)都可統(tǒng)一開(kāi)發(fā)的JavaScript框架,開(kāi)發(fā)者無(wú)需掌握多種不同工具即可完成網(wǎng)絡(luò)應(yīng)用的構(gòu)建。Meteor在設(shè)計(jì)之初就考慮了簡(jiǎn)明的理念,在官方教程的幫助下,開(kāi)發(fā)者一個(gè)小時(shí)之內(nèi)就能學(xué)會(huì)基本開(kāi)發(fā)。
  • 大量原生功能:支持多重?cái)?shù)據(jù)庫(kù)、視圖、地址分配、安全、性能工具、測(cè)試、移動(dòng)等功能,涵蓋整個(gè)網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)周期
  • 優(yōu)秀生態(tài)系統(tǒng):迄今為止,Meteor在線代碼庫(kù)中包含超過(guò)五千個(gè)第三方組件,而且數(shù)目仍然在迅速增長(zhǎng)。

另外,Meteor從最開(kāi)始的一個(gè)重要賣點(diǎn)就是實(shí)時(shí)框架,而現(xiàn)在實(shí)時(shí)性在Web應(yīng)用甚至移動(dòng)應(yīng)用中用到的地方越來(lái)越多,證明Meteor選擇這個(gè)方向也是對(duì)的。

Why Not Meteor

當(dāng)然,Meteor并不是沒(méi)有缺點(diǎn),比如近期推出的Galaxy就遭到了詬病,Meteor本身是為了降低開(kāi)發(fā)門檻,快速開(kāi)發(fā),適用于中小團(tuán)隊(duì)和創(chuàng)業(yè)者,但是Galaxy最低每月500美元的價(jià)格與這個(gè)定位并不匹配,在發(fā)布之后受到開(kāi)發(fā)者的非議。

除了這個(gè)之外,Meteor缺乏大型成功案例,沒(méi)有經(jīng)過(guò)實(shí)踐的洗禮,也讓開(kāi)發(fā)者懷疑它是否足夠成熟可用。在這篇Meteor在生產(chǎn)環(huán)境的實(shí)踐的文章里,作者提到了他使用Meteor的痛點(diǎn),那就是部署在非官方平臺(tái)的體驗(yàn)并不好,另外,某些關(guān)鍵功能插件并不好用,亟待加強(qiáng)和優(yōu)化。

而 讓人不選擇Meteor的根本原因,還與趨勢(shì)相關(guān)。Node.js包管理器NPM十分好用,并且迅速流行開(kāi)來(lái),對(duì)于Node.js開(kāi)發(fā)者來(lái)說(shuō),依賴NPM 來(lái)進(jìn)行模塊化的開(kāi)發(fā)非常方便,而Express框架是很多Node.js開(kāi)發(fā)者入門必學(xué),因此它所倡導(dǎo)的模塊化+高度可配置的理念也就默認(rèn)被人們所接受。 在這篇文章里 作者就希望人們使用更多庫(kù)而不是框架來(lái)開(kāi)發(fā)Node.js Web應(yīng)用。當(dāng)然,不管趨勢(shì)如何變化,我們可以肯定的是,至少很長(zhǎng)一段時(shí)間內(nèi),類似于Meteor這樣的一體化框架還會(huì)有它的市場(chǎng)。尤雨溪表示:“是否使 用框架是按實(shí)際情況考慮的。全棧式框架的價(jià)值在于對(duì)于沒(méi)有特殊要求的應(yīng)用,能夠在極短的時(shí)間內(nèi)開(kāi)發(fā)出可用的產(chǎn)品。去框架化對(duì)于技術(shù)人員來(lái)說(shuō)是很浪漫的事 情,但當(dāng)你拿了融資,需要在幾個(gè)月內(nèi)產(chǎn)品上線的情況下,未必有那么充裕的時(shí)間去自己整合各種組件,實(shí)現(xiàn)一些框架已經(jīng)實(shí)現(xiàn)了的功能?!?/p>

Meteor的未來(lái)

從目前的表現(xiàn)來(lái)看,Meteor正在穩(wěn)步發(fā)展,但是,它所處的環(huán)境,無(wú)論是Node.js,還是JavaScript社區(qū),都正在劇烈變化當(dāng)中,誰(shuí)也不能預(yù)測(cè)未來(lái)Meteor到底能否成功。

在 筆者看來(lái),Meteor的未來(lái)是否成功,在很大程度上將取決于移動(dòng)端,目前Meteor通過(guò)PhoneGap來(lái)支持移動(dòng)應(yīng)用打包,但是,相比于目前移動(dòng) Web的發(fā)展,它已經(jīng)有些落后于潮流,React Native才是人們的新寵,InfoQ記者向尤雨溪詢問(wèn)Meteor是否有計(jì)劃支持React Native,他表示React Native的運(yùn)行環(huán)境和打包方式都和現(xiàn)在集成Cordova的方式區(qū)別很大,因此目前還沒(méi)有具體的計(jì)劃,不過(guò)未來(lái)肯定會(huì)去嘗試。希望Meteor在這方 面更激進(jìn)一些,像1.2版本支持ES6、Angular和React,就十分受到開(kāi)發(fā)者的歡迎。

另外,Galaxy的發(fā)布,也讓人擔(dān)心,Meteor的重心是否轉(zhuǎn)向提供服務(wù),框架的功能創(chuàng)新是否會(huì)放慢速度。尤雨溪?jiǎng)t表示無(wú)需擔(dān)心,因?yàn)橹挥斜3挚蚣鼙旧淼母?jìng)爭(zhēng)力才能為Galaxy吸引到客戶,所以肯定不會(huì)對(duì)框架本身松懈的。

至 于近一段時(shí)間Meteor的開(kāi)發(fā)計(jì)劃,尤雨溪介紹道,他們已經(jīng)在計(jì)劃對(duì)Meteor本身進(jìn)行一些大的改動(dòng)來(lái)解決一些社區(qū)公認(rèn)的問(wèn)題,比如Meteor自身 的模塊系統(tǒng)一直受人詬病,他們?cè)?.3會(huì)加入對(duì)ES6 module的支持。另外還會(huì)加強(qiáng)對(duì)于NPM的原生支持,讓Meteor應(yīng)用可以更簡(jiǎn)單地調(diào)用NPM上的資源。

JavaScript 社區(qū)一直充滿活力,每天各種各樣的框架層出不窮,但是真正成功商業(yè)化的不多,我們也衷心希望Meteor能為JavaScript框架探索出一條成功的道 路。對(duì)開(kāi)發(fā)者來(lái)說(shuō),Meteor作為一款功能全面、簡(jiǎn)單好用的一體化框架,在開(kāi)發(fā)Node.js Web應(yīng)用的時(shí)候,是一個(gè)不錯(cuò)的選擇。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多