1. Clouda到底是什么东东?
随着各家网站以及论坛上越来越多的谈论JavaScript, 并且随着chrome, V8引擎, Node.js等的流行,大家也越来越关注并开始学习JavaScript开发框架, 一个好的开发框架可以帮助开发者节省大量的时间。 面对拥有众多攻略的国外MVC框架,相信很多人堵已经尝试过了。 这里笔者给大家介绍一款国内的框架, 也可以说是国内先行者中的翘楚-百度Clouda。它也是笔者在研究js框架时的最好的助手和老师。 其实在8月22日当百度通过百度大会向大家抛出“轻应用”和Clouda框架的概念之后, 在业界就引起了不小的轰动, 好多开发者已经开始跃跃欲试。 那么到底Clouda是什么呢?它对咱们到底有啥用呢?怀着好奇的心情, 我们首先来看一下clouda的官方解释, 打开Clouda的官方首页你就会从最醒目的位置看到一条介绍:简单的, 可依赖的实时JavaSscript开发框架, 而且它是国内第一款云端统一框架。
2. 为什么要选择Clouda
在笔者的使用过程中, 深刻体会到了它的跨终端、入门简单、云端统一、高速实时编程、随动反馈、可检索、一键托管、SEO能力等众多特性。 更关键的是Clounda完全免费与开源,其采用MIT协议,全部代码托管在Github上, 对咱们以后得商业部署也不会产生任何麻烦。作为没有多少资金, 精力有限的个人开发者, 以及中小开发者, 这一点尤为关键。同时我在选择Clouda框架的时候也考虑到Clouda顺应了 使用Web技术开发App的新趋势,开发者只需了解JavaScript的基础知识即可进行Web应用的开发。同时,基于Clouda开发出来的Web应用可以调用设备的陀螺仪、相机、麦克、GPS等native功能,使得Web应用不再被拘束于纯网页,这一点着实难能可贵。而且由于基于GoogleV8这个成熟的引擎,Clouda不会有存在明显的性能问题,还有更大的安卓市场。同时,Clouda同百度云服务无缝连接,开发者通过Clouda开发的服务可以直接发布在百度的BAE平台(非常简单),同时可以更快速的结合百度云来实现人脸辨认和声音辨认等功能,而且由于绑定百度的智能搜索,使用Clouda开发的应用可以获得更多的曝光率, 便于市场推广。笔者也在自己的开发过程中, 尽量多的应用嵌入式方面的功能,当然这方面还有很大的进步空间。
3. Ubuntu下Clouda安装及环境的搭建
在各种linux版本中, 笔者对Ubuntu情有独钟, 所以这里开发环境的搭建也是以Ubuntu作为操作系统, 其它的linux版本略有不同。 由于Clouda是基于node.js的Webapp开发框架,在使用Clouda时首先需要安装node.js
和MongoDB
。
这里笔者就从
note.js
和
MongoDB
开始和大家一起在
Ubuntu
上搭建
Clouda
的开发环境,
过程非常简单,
也比较适合个人开发者和中小团队。
对于大公司,
迁移现有工程也不会有太大的问题。
尤其随着
MangoDB
在在线站点,广告平台,手机
wap
应用领域的广泛应用,
相信更多的公司也会分享出更多的范例让大家来学习。
1. 安装node.js
· 下载地址http://nodejs.org/download/, 选择LinuxBinaries (.tar.gz), 并根据自身系统选择64位或者32位。(如果用户从chrome浏览器打开下载页面, 直接点击Install, 浏览器会自动下载相应的安装包)
· 把安装包放在你的工作文件夹, 譬如/home/abc/node-v0.10.21.tar.gz,然后gunzipand tar-xvf来解压缩生成node-v0.10.21文件夹, 进入node-v0.10.21文件夹, 执行如下命令, 如果遇到任何Error可能是一些相关的程序没有安装, 如curl, g++等
./config
Make
Make install
2. 在本地Clouda使用mongoDB作为数据库, 下面我们再简单介绍一下如何安装mongoDB。 相信很多做web开发的人对mongoDB一定很熟悉了。
· 下载mongoDB,地址:http://www.mongodb.org/downloads
· 解压下载的文件夹,进入解压后的目录,在目录下创建"data"目录,并在创建的"data"目录下创建"db"文件夹
· 进入根目录下的bin/,使用下面的命令启动MongoDB
· sudo ./mongod -dbpath ../data/db
· 其实更好的方式是根据各个Linux操作系统版本来安装, 譬如笔者的Ubuntu系统, 就最好按照http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ 的方式安装MangoDB
o 安装MongoDB public GPG Key
sudoapt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
o 在source list里面添加mongodb.list
echo'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudotee /etc/apt/sources.list.d/mongodb.list
o reload your repository
sudoapt-get update
o 加载安装包, 如果没问题的话就安装成功了
sudoapt-get install mongodb-10gen
o 用下面的命令启动mangodb service
sudo service mongodb start
3. 安装运行Clouda(需要注意的是如果你使用proxy代理的话, 需要把代理关掉, 目前至少在我的机器上有时候会遇到因为代理的连接问题)
· 安装sudo npm install -g sumeru
· 创建工程sumeru init ./myproject
· 运行cd myproject
sumeru start
在Clouda框架中有一个itworks的实例,可以在浏览器中输入localhost:8080/debug.html/itworks
来运行, 当网页中显示ItWorks时候, 一切就okay了。 总体来说, 非常过程非常的简单直接。
4. Clouda开发入门
简单的一些步骤完成安装后, 你会看到Clouda的目录树结构如下, 非常清晰, 应用程序, 配置文件, 文档, 源代码文件, 库文件等等, 非常易于管理。
相信每一个开发者在遇到一个新语言, 新框架, 新开发环境的时候, 第一想到尝试的就是HelloWorld了, 就像新生儿开始认识世界一样, 我的第一个程序也是先从HelloWorld开始, 其实第一个程序相当简单, 你也可以自己重写一个, 也可以利用ItWorks直接替换掉text部分生成, 下面我们就简单介绍一下.
(1)在app/controller/下创建helloworld.js文件,输入以下代码(controller全部放在controller目录下, 如果你对controller的概念不是很了解, 请参考MVC模型文档):
helloworld.js
sumeru.router.add(
{
pattern: '/helloworld',
action: 'App.helloworld'
}
);
通过router添加一个URL与Controller的映射关系,指导网页需要做一个什么样的操作。 继续在helloworld.js输入以下代码。
App.helloworld =sumeru.controller.create(function(env,session){
env.onrender = function(doRender){
doRender("helloworld",["push", "left"]);
};
});
env.onrender()方法是完成对view(界面)的渲染
(2)打开app/controller/package.js,该文件用于将文件之间的依赖关系添加到Clouda中
在package.js中, 将itworks.js改成你新添加的文件名helloword.js
sumeru.packages(
'helloworld.js'
);
package.js用于将文件之间的依赖关系添加到sumeru中, 开发者可以在package.js文件中同时添加多个packages, 如下所示
sumeru.packages(
'student.js',
.....
'studentList.js'
)
(3)在app/view/下创建helloworld.html,并输入以下代码
在helloworld.html文件中输入如下html代码标签
<p>Hello World!</p>
Note: 一般情况下将编写的View文件都存放在app/view文件夹下,如果编写的view文件不在app/view文件夹下,Clouda也提供View文件路径配置的方法,框架会在配置路径先寻找需要的View文件:
sumeru.config.view.set('path','path/to/');
则Clouda会在如下目录中加载视图:
app目录/path/to/view/
至此,"HelloWorld"应用代码已经完成。
在浏览器中输入localhost:8080/debug.html/helloworld运行该应用,chrome和firefox打开都没有问题。
我们这里只是一个简单的HelloWorld程序并做了一些简单的解释。 如果你想更深入的研究Clouda可以访问Clouda的官网http://cloudajs.org/查看更多的文档。 当然如果你已经开发除了一款自己的app,你也可以将你的Clouda应用托管到百度BAE上去。Clouda是基于node.js开发的,所以需要node.js环境以及需要数据库的支持,百度开发者中心上BAE提供整套的环境的支持,只需简单的配置就可以快速运行基于Clouda开发的应用。
总之它的核心在于云、端使用统一的Javascript语言, 便于在各个平台上部署和应用, 减少代码的开发量和逻辑的复杂度, 所见即所得, 易于调试和部署。 同时在云环境中, 可以运用版本管理, 执行环境管理等各种工具, 不仅节约成本而且很适合几个人合作开发。 对于我等无米青年着实是很大的福利啊。
5. 一些常用名词解释
SEO全称:Search Engine Optimization,即搜索引擎优化。,是指为了从搜索引擎中获得更多的免费流量,从网站结构、内容建设方案、用户互动传播、页面等角度进行合理规划,使网站更适合搜索引擎的检索原则的行为。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。