關于Meteor的5個誤解

由于某些原因,關于Meteor一直都有著各種各樣的誤解?;蛟S是因為Meteor剛正式推出的時候, 缺失很多重要的功能。而很多不知道的是,這些缺陷在后來早就被修復了。

為了給Meteor正名,下面列舉的是5個最常見的誤解。

誤解#1:“Meteor的數據不安全”

在Meteor的第一個Demo推出之時, 數據安全和用戶權限這些東西是沒有的。任何客戶端的用戶都能夠訪問,修改數據庫的數據然后發(fā)送返回到服務端。

但這第一個版本只是作為一個提示告訴大家Meteor來了, 并不意味著它可以被用來打造一個真實的應用產品。 打那之后, 現在的Meteor已經有了一個內置的身份認證包(authentication package)。

造成誤解的另一個原因是, 許多新手為了更容易地快速上手常常在創(chuàng)建Meteor應用的時候, 遵循默認的把所有的數據發(fā)布給客戶端。

正如Meteor的開發(fā)者之一 Avital OliverStackOverflow上的回答那樣

當你使用Meteor的命令行工具創(chuàng)建一個應用的時候, 默認的會包含有兩個packages:AUTOPUBLISHINSECURE. 這兩個packages能使得每個客戶端都擁有所有的服務器數據庫讀寫權限效果。這是非常好的原型工具(目的只為了開發(fā)),但通常這不適合用于應用的生產環(huán)境。當你需要發(fā)布到生產環(huán)境的時候,請去掉這兩個packages

類似地,也因為Meteor可以共享服務端和客戶端的代碼,但實際上,這并不意味著所有的代碼都可用于客戶端.

所有放在server/目錄下的東西都是只能在服務端執(zhí)行使用的, 同時Meteor也讓你可以定義服務端安全方法,這些方法可以在客戶端調用。

誤解#2:“Meteor對SEO不友好”

與傳統(tǒng)的網頁應用不一樣,Meteor不會在服務端搭建HTML頁面。取而代之, 服務端只發(fā)送數據, 然后在客戶端決定如何渲染之(這就是Meteor的“data on the wire”原則)

這種做法的缺點就是, 當JavaScript被禁用的話, 你的網站幾乎跟一個空白頁面無異。

你或許會覺得這會迷惑搜索引擎。但幸運地是, Meteor有解決的方案,那就是使用Spiderable Package.

這個package使用的是PhantomJS 在服務端預渲染后提供給網絡爬蟲。實際上網絡爬蟲得到的網頁跟你看到的是一樣的。

誤解#3:“Meteor不支持第三方packages”

有很多的討論是關于Meteor所用的不是Node的標準包管理--NPM. 而事實上, Meteor壓根就沒有不允許使用第三方程序包.

And it’s true that the vanilla install of Meteor does not come with a package manager. 但慶幸的是, 本書的合著者之一Tom Coleman, 同時也是Meteor包管理器Meteorite和packages資源庫Atmosphere的開發(fā)者。

盡管當下Meteorite 和 Atmosphere還不是Meteor的官方部分, 但它們已經得到廣泛的使用并將會在未來被合并到Meteor的核心部分。事實上,這方面的工作已經在Meteor的核心代碼的engine分支中開展,預期會被很快解決。

誤解#4:“Meteor是完全封閉的(walled garden)”

一個密切相關的異議是,Meteor可以支持第三方packages,但這些第三方packages卻嚴格地限制于流星的生態(tài)系統(tǒng)。

為什么有成千上萬的Node packages 在那還要使用自定義的package呢?這又是否與開源精神相悖呢?

首先,需要意識到一點很重要的就是, 在Meteor中可以任意的使用node packages。盡管在當下這么做可能還會有一些棱角使得接口不那么順利,但這種情況在engine分支添加Node support
并發(fā)布后將得到很大改善。


其次,Meteor不僅僅是Node.js的一個框架, 更是一種全新的網站應用開發(fā)方式和構想.

換句話說,想知道為什么Meteor不使用NPM無異于問為什么它不能使用Ruby Gems. 有很多人建議所有的JavaScript代碼應該都用NPM來管理, 但這么做的話會有一些細節(jié)上的問題, 正如核心開發(fā)者解釋說.

誤解#5:“Meteor只適用于原型”

“Meteor非常適用于小規(guī)模快速原型的項目,但它不適合用于大規(guī)模的應用.”

在某種程度上, 這很難爭個誰對誰錯。畢竟Meteor的主頁的版本號還是以0開頭.

但事實是Meteor還沒準備到一個黃金時間,比起內在的局限性,在如此青澀的時期(不到一歲)Meteor還有許多需要做的。

再說, 即使是現在, 有時犧牲一點穩(wěn)定性來做交換得到Meteor帶來的輕松且快速的開發(fā)還是值得的。如果你希望看到一些具體的Meteor案例,我可以推薦看看Telescope嗎?

So,我堅信,在Meteor這樣快速發(fā)展之下,今天的技術原型將會是明天thousand-user 的應用.

總結

現在,即使我們正在寫這本關于Meteor的書, 但我們首先依舊會承認一點, 如同其他的技術那樣,Meteor同樣也有著自己的缺陷。

But I do believe Meteor has enough potential to make it worth evaluating it on its own merits. 所以如果你猶豫不決是否使用Meteor, 希望我的建議能說服你你選擇它.

原文來自 Sacha Greif 5 Meteor Misconceptions

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容