偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Clouda框架介紹與應(yīng)用場(chǎng)景

原創(chuàng)
移動(dòng)開(kāi)發(fā)
Clouda是一個(gè)NodeJS Web開(kāi)發(fā)框架,但是,與流行的Express框架不同,Clouda是一個(gè)完整的前后端開(kāi)發(fā)解決方案,等價(jià)于目前熱議的MEAN架構(gòu)。

clouda

Clouda是一個(gè)NodeJS Web開(kāi)發(fā)框架,但是,與流行的Express框架不同,Clouda是一個(gè)完整的前后端開(kāi)發(fā)解決方案,等價(jià)于目前熱議的MEAN架構(gòu)。

MEAN是指mongoDB+Express+AngularJS+NodeJS,在Clouda中則是mongoDB+Clouda core+Handlebar+NodeJS,Clouda是一個(gè)集成框架,相對(duì)來(lái)說(shuō)比MEAN要容易上手,另外Clouda中實(shí)現(xiàn)了前后端數(shù)據(jù)綁定和 UI實(shí)時(shí)刷新,也就是實(shí)時(shí)性。

與Clouda類似的NodeJS實(shí)時(shí)Web框架有Meteor、socketstream、Derby,另外網(wǎng)易有基于NodeJS的游戲服務(wù)端框架pomelo,也支持開(kāi)發(fā)實(shí)時(shí)性Web App。

歷史

Clouda框架是百度歷經(jīng)兩年開(kāi)發(fā)出來(lái),并在Github上開(kāi)源,2013年8月百度世界大會(huì)上正式發(fā)布。截止至2014年5月已至0.10.2版本。

Clouda的前身是sumeru(西米露) WebApp平臺(tái),據(jù)傳該平臺(tái)由前百度云***架構(gòu)師林仕鼎設(shè)計(jì),由百度移動(dòng)云部門下面的技術(shù)團(tuán)隊(duì)開(kāi)發(fā),并由童遙擔(dān)任項(xiàng)目負(fù)責(zé)人。

Clouda是配合百度移動(dòng)云戰(zhàn)略而研發(fā)出來(lái)的,是百度輕應(yīng)用戰(zhàn)略的一部分,其目標(biāo)是打造媲美原生應(yīng)用性能的Mobile Web App,也是為了提高輕應(yīng)用的性能表現(xiàn)。

官網(wǎng):http://cloudajs.org/
Github:https://github.com/brandnewera/sumeru

特性

官方網(wǎng)站上介紹Clouda的特性如下:

云端統(tǒng)一。只用Javascript一門語(yǔ)言,抹平云端界限,一份代碼處處運(yùn)行。這是屬于nodejs的特性。

實(shí)時(shí)編程。所有數(shù)據(jù)實(shí)時(shí)推送的基礎(chǔ)設(shè)置,每個(gè)終端都無(wú)延遲同步響應(yīng)。

隨動(dòng)反饋。面向數(shù)據(jù)的編程模型,數(shù)據(jù)實(shí)時(shí)推送后,界面會(huì)自動(dòng)更新。這兩條說(shuō)的其實(shí)就是一個(gè)事,就是實(shí)時(shí)性。

專為移動(dòng)。為智能手機(jī)與平板電腦特別設(shè)計(jì),運(yùn)行性能高,標(biāo)配離線能力。

高兼容性。標(biāo)配數(shù)據(jù)同步工具,兼容已有服務(wù);同時(shí)兼容Backbone等開(kāi)源框架。也就是說(shuō)一些組件可以被替代,如handlebar.js和Clouda UI。

一鍵托管。無(wú)縫整合百度BAE云環(huán)境,即可自建服務(wù)器也可一鍵托管在百度云。

SEO能力。原廠匹配主流搜索引擎,每個(gè)APP場(chǎng)景都可以被搜索引擎爬蟲(chóng)抓取。這兩條是為配合百度的服務(wù)準(zhǔn)備的,其實(shí)還可以加一條,就是快速接入輕應(yīng)用。
入門簡(jiǎn)單。簡(jiǎn)單語(yǔ)法搭配豐富教程與文檔,保證快速上手,還配有5分鐘教程。Clouda框架還是需要一些學(xué)習(xí)成本的,雖然比其他的框架可能要簡(jiǎn)單一點(diǎn)。

組件介紹

mongoDB:mongoDB是Clouda正常運(yùn)行所依賴的環(huán)境,mongoDB是非關(guān)系文檔型數(shù)據(jù)庫(kù),數(shù) 據(jù)以json的二進(jìn)制擴(kuò)展bson存儲(chǔ),讀取出來(lái)的數(shù)據(jù)可以直接在javascript中操作而無(wú)需進(jìn)行轉(zhuǎn)換。Clouda使用mongoDB官方開(kāi)發(fā)的 驅(qū)動(dòng)組件mongodb來(lái)操作數(shù)據(jù)庫(kù)。

另外Clouda還支持Redis的分布式存儲(chǔ),不過(guò)也需要先有Redis環(huán)境。

Handlebar.js:一個(gè)弱邏輯的js模板引擎庫(kù)。它的特點(diǎn)是你可以像在ddcms、wordpress中寫模板一樣來(lái)寫頁(yè)面。它可以將數(shù)據(jù)綁定到html節(jié)點(diǎn),并在數(shù)據(jù)改變時(shí)實(shí)時(shí)刷新UI。

這個(gè)庫(kù)是可替換的,你可以切換到backbone等其他模板引擎上。

Handlebar.js官網(wǎng):http://handlebarsjs.com/

SockJS:SockJS是一個(gè)可以提供類似websocket對(duì)象的js庫(kù),能提供服務(wù)器和瀏覽器之間的一致連貫的、跨瀏覽器的連接。websocket是可選的,SockJS可以用自己的協(xié)議來(lái)代替,也就意味著可以支持較低版本的瀏覽器。

SockJS Github:https://github.com/sockjs/sockjs-client

Clouda UI:Clouda UI是一個(gè)支持雙向數(shù)據(jù)綁定的輕量級(jí)UI框架,里面封裝的是GMU組件,GMU是百度FEX Team為輕應(yīng)用開(kāi)發(fā)的一套移動(dòng)優(yōu)先的UI組件,不過(guò)現(xiàn)在已經(jīng)開(kāi)源出來(lái),可以在Clouda里用,也可以單獨(dú)使用。

GMU官網(wǎng):http://gmu.baidu.com/
GMU Github:https://github.com/fex-team/GMU

Clouda的依賴?yán)锩孢€包含其他node模塊,如Clean-CSS、shelljs、uglify-js,因?yàn)椴皇呛苤匾@里就不提了。

核心架構(gòu)

Clouda項(xiàng)目默認(rèn)使用MVC架構(gòu),我根據(jù)官網(wǎng)的介紹和實(shí)際項(xiàng)目的代碼畫了一張示意圖如下:

clouda架構(gòu)

從圖中可以看到Controller并沒(méi)有和Model直接交互,而是通過(guò)一個(gè)Pub/Sub模型。由于Clouda使用SockJS和Handlebar實(shí)現(xiàn)了Model到View間的數(shù)據(jù)綁定,實(shí)際上這個(gè)架構(gòu)是有點(diǎn)接近于MVVM了。

Clouda項(xiàng)目負(fù)責(zé)人童遙在一次演講上演示的架構(gòu)如下:

clouda架構(gòu)2

童遙的演講講了為什么要開(kāi)發(fā)實(shí)時(shí)性的Web App框架以及設(shè)計(jì)思路,不少干貨還是值得一看的:云端一體的WebApp實(shí)時(shí)基礎(chǔ)設(shè)施設(shè)計(jì)思路

應(yīng)用場(chǎng)景

由于Clouda使用了類websocket機(jī)制,每一個(gè)瀏覽頁(yè)面的用戶都要?jiǎng)?chuàng)建一個(gè)長(zhǎng)連接對(duì)服務(wù)器進(jìn)行輪詢,因此***每一個(gè)瀏覽頁(yè)面的用戶都是重 度用戶,而不是看一下頁(yè)面就離開(kāi)。Clouda的設(shè)計(jì)本來(lái)是為Mobile Web App,因此可以適用,但實(shí)際上也是可以用于PC瀏覽器上的,即Web App。

同時(shí),每次Clouda啟動(dòng)都會(huì)動(dòng)態(tài)的創(chuàng)建頁(yè)面資源,因此頁(yè)面越少越好。

綜上,Clouda適用于頁(yè)面少的Web App,即在線工具和服務(wù)等,而不適用于用戶平均在線時(shí)長(zhǎng)和PV/IP比偏低的服務(wù),如Blog、CMS等偏靜態(tài)頁(yè)面的開(kāi)發(fā)。

官方提供了以下功能示例代碼,你可以認(rèn)為它們是Clouda適用的應(yīng)用場(chǎng)景。

  • TO-DO list
  • 多人聊天室
  • 多頻道的聊天室
  • 帶數(shù)據(jù)驗(yàn)證的用戶系統(tǒng)
  • 獲取第三方數(shù)據(jù)

在Clouda官網(wǎng)的客戶案例頁(yè)面提供了更多的示例,這些是業(yè)務(wù)層面的,全部都是Mobile Web App,總結(jié)如下:

  • 客服頁(yè)面
  • 招聘網(wǎng)站
  • 旅游攻略
  • 導(dǎo)購(gòu)
  • 菜譜
  • 違章查詢

可以看到業(yè)務(wù)案例大多是IO密集的數(shù)據(jù)庫(kù)查詢。這也是NodeJS的強(qiáng)項(xiàng)。

與其他框架、語(yǔ)言配合

Clouda會(huì)生成獨(dú)立的項(xiàng)目,因此無(wú)法與其他NodeJS框架如express***協(xié)同,不過(guò)Clouda支持express的數(shù)據(jù)接口。

另外Clouda會(huì)動(dòng)態(tài)生成頁(yè)面文件,因此也無(wú)法與其他語(yǔ)言如php等進(jìn)行混合開(kāi)發(fā),不過(guò)也可以用API和組件的方式協(xié)同。

期待

Clouda的理念很先進(jìn),但也有不完善之處,以下是希望Clouda進(jìn)行改進(jìn)和完善的地方。

更抽象,能夠選用模塊,而不是默認(rèn)封裝。在MEAN架構(gòu)中,除了NodeJS,其他模塊應(yīng)該是可替換的,我們希望Clouda也能做到模塊可替換,目前只是前端類庫(kù)可替換,這還不夠。

更廣泛的適用性。即能支持非實(shí)時(shí)應(yīng)用的開(kāi)發(fā),網(wǎng)絡(luò)上的內(nèi)容其實(shí)大多數(shù)不要求完全的實(shí)時(shí)性,我們希望Clouda即能支持實(shí)時(shí),也能支持非實(shí)時(shí)。

組件化。Clouda由于使用長(zhǎng)連接能夠用于顯示用戶的在線狀態(tài),因此非常適用于會(huì)員系統(tǒng)、IM組件的開(kāi)發(fā),希望Clouda能開(kāi)發(fā)一個(gè)mini組件版,去掉不必要的東西,能方便的嵌入到其他應(yīng)用程序里面。

---------------------

更新:據(jù)內(nèi)部消息,Clouda正在醞釀一次大的改版,將功能細(xì)化,使框架底層對(duì)開(kāi)發(fā)者更透明。預(yù)計(jì)6月份會(huì)出一個(gè)預(yù)覽版。

責(zé)任編輯:徐川 來(lái)源: idlelife
相關(guān)推薦

2025-03-06 07:28:31

DeepSeek大模型人工智能

2013-10-31 10:57:10

CloudaManifest

2013-09-09 15:55:12

SDN應(yīng)用場(chǎng)景

2011-05-17 15:24:18

Shibboleth認(rèn)證

2013-10-30 22:50:30

Clouda結(jié)構(gòu)

2024-09-19 08:08:25

2023-11-13 08:31:25

SpringRedis存儲(chǔ)

2023-08-16 08:07:36

2012-10-23 09:32:07

2013-10-31 11:04:03

Cloudapackage.js

2017-11-22 10:23:32

存儲(chǔ)系統(tǒng)VeSpace

2021-09-06 15:39:00

大數(shù)據(jù)技術(shù)醫(yī)療

2015-06-15 10:03:52

聯(lián)想互聯(lián)網(wǎng)

2025-07-02 09:56:07

2022-09-05 14:46:01

元宇宙區(qū)塊鏈人工智能

2019-04-10 15:43:12

SDN場(chǎng)景網(wǎng)絡(luò)架構(gòu)

2021-12-24 10:24:10

零信任

2021-06-15 09:20:08

Redis數(shù)據(jù)類型

2022-02-14 16:23:08

零信任SDP黑客

2022-04-10 23:38:33

Redis數(shù)據(jù)結(jié)構(gòu)開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)