優(yōu)點(diǎn):
- 與 SailsJS 一樣,MEAN 堆棧包含構(gòu)建復(fù)雜 Web 應(yīng)用所需的所有組件。
缺點(diǎn):
- 頁(yè)面加載要兩個(gè)階段,而且第一階段看起來(lái)有點(diǎn)搞笑。發(fā)生這種情況是因?yàn)橐晥D不是在服務(wù)器端呈現(xiàn),而只在瀏覽器中呈現(xiàn)。這意味著用戶最初看到的是不完整的頁(yè)面,頁(yè)面的完整內(nèi)容要過(guò)一會(huì)才能加載。
- MEAN 堆棧包含許多技術(shù),如 MongoDB,在其他框架中構(gòu)建 Web 應(yīng)用時(shí)通常不使用這些技術(shù)。
補(bǔ)充幾句個(gè)人觀點(diǎn):
這個(gè)包含 MongoDB 的框架對(duì)我來(lái)說(shuō)毫無(wú)意義,幾乎所有其他 Web 框架都使用標(biāo)準(zhǔn)數(shù)據(jù)庫(kù) SQL。在我看來(lái),MEAN 堆??赡苤辉谀切?MongoDB 真正“發(fā)光發(fā)熱”的場(chǎng)景中有價(jià)值,但 Mongo 又是一個(gè)在高負(fù)載的時(shí)候才需要的東西,比如廣告網(wǎng)絡(luò)和 API 負(fù)載高的時(shí)候。
不可否認(rèn) MEAN 在某些情況下是有意義的,但對(duì)于典型的 Web 應(yīng)用,我不太建議使用。因?yàn)?MEAN 在應(yīng)用的每一個(gè)部分只使用 JavaScript 編程語(yǔ)言,這聽(tīng)起來(lái)會(huì)很容易掌握,但是像 MongoDB 和 WebPack 這樣的東西使得 MEAN 實(shí)際上比那些解決問(wèn)題的“標(biāo)準(zhǔn)”技術(shù)更困難。
6、Django
編程語(yǔ)言:Python
簡(jiǎn)介:
Django 是一個(gè)運(yùn)行在 Python 上的 MVC Web 框架。 它也有一些打開(kāi)即用的配置,它與 Ruby>
7、Tornado
編程語(yǔ)言:Python
簡(jiǎn)介:
Tornado 是一個(gè)沒(méi)有怎么宣傳的 Python Web 框架,它快速、高效,并允許開(kāi)發(fā)人員訪問(wèn) python 的大數(shù)據(jù)庫(kù)。
優(yōu)點(diǎn):
- 在需要短時(shí)間內(nèi)發(fā)生許多請(qǐng)求的情況下是優(yōu)秀的。
缺點(diǎn):
- 結(jié)構(gòu)的缺乏導(dǎo)致應(yīng)用相互不同。
- 對(duì)于初學(xué)者來(lái)說(shuō),擁有太多的自由可能會(huì)導(dǎo)致亂碼。在其他的框架中有過(guò)經(jīng)驗(yàn)的開(kāi)發(fā)人員更愿意以深思熟慮的方式去構(gòu)建應(yīng)用。
8、Play
編程語(yǔ)言:Java 或 Scala
簡(jiǎn)介:
Play 同樣是一個(gè)輕量級(jí)的、無(wú)狀態(tài)的 Web 框架,學(xué)到了 rails 的優(yōu)點(diǎn),使用構(gòu)建在 Akka 之上的完全異步模型,提供可預(yù)測(cè)的和最小的資源消耗(CPU,內(nèi)存,線程)。
優(yōu)點(diǎn):
- 在 Java 虛擬機(jī)上運(yùn)行,Play 是最高效的編程環(huán)境之一。
缺點(diǎn):
- 大多數(shù) Web 應(yīng)用都是用所謂的“腳本語(yǔ)言”構(gòu)建的,允許快速更改頁(yè)面的視覺(jué)效果。 Java 增加了一個(gè)稱(chēng)為“編譯”的步驟,需要在應(yīng)用的更改之間進(jìn)行。
9、Laravel
編程語(yǔ)言:PHP
簡(jiǎn)介:
Laravel 是一個(gè)用 PHP 編寫(xiě)的框架。 10年前,PHP 是幾乎所有 Web 應(yīng)用構(gòu)建的標(biāo)準(zhǔn)編程語(yǔ)言,不過(guò)如今,受 Ruby、JavaScript 和 Python 影響,PHP 失去了很大的市場(chǎng)份額。
盡管如此,Laravel 仍是一個(gè)非常成熟的框架,允許使用 PHP 構(gòu)建漂亮的代碼。
優(yōu)點(diǎn):
- Laravel 是一個(gè)很完美的 MVC 框架,借鑒了 Ruby>
最后再說(shuō)點(diǎn)
看完上面列出的這些不同的框架,很容易發(fā)現(xiàn)它們有互相在尋找靈感,許多功能、特性其實(shí)還蠻相似的。所以,說(shuō)哪個(gè)好哪個(gè)不好,并沒(méi)有什么意義,找到合適自己的才是關(guān)鍵。上面的框架可以簡(jiǎn)單分為兩種類(lèi)型:
一、簡(jiǎn)約框架
ExpressJS、Tornado 和 Sinatra 都是簡(jiǎn)約框架,他們提供啟動(dòng)需要的最低配置。
這些框架需要開(kāi)發(fā)人員手動(dòng)添加每個(gè)單獨(dú)的組件,給予足夠的自由度去完成項(xiàng)目。此外,通過(guò)強(qiáng)制自己配置應(yīng)用的各方各面,可以掌控更多主動(dòng)權(quán),并在每種情況下都使用理想的工具。
當(dāng)然,也有一些缺點(diǎn)。會(huì)經(jīng)常發(fā)現(xiàn)自己處于需要分析不同選項(xiàng)并做出很多選擇的情況下。