Clouda是百度的一款开源NodeJs轻应用框架,拥有百度强大的技术支持,实现快速开发、优化SEO、易部署等特性,提供简单易用的依赖管理模块化开发环境。Clouda是基于node.js的Webapp开发框架,在使用Clouda时需要安装node.js和MongoDB,如果您没有安装请参考本文档环境搭建部分。
随着各家网站以及论坛上越来越多的谈论JavaScript, 并且随着chrome, V8引擎, Node.js等的流行,大家也越来越关注并开始学习JavaScript开发框架, 一个好的开发框架可以帮助开发者节省大量的时间。 面对拥有众多攻略的国外MVC框架,相信很多人堵已经尝试过了。
Clouda采用了MVC模式来实现web开发,在保证良好规范的前提下也比较容易上手,并且支持在前台页面中编写后端代码,这个跟Angular有点相似。本人根据实际编程以及个人喜好,列举一下Clouda比较赞的一些功能:1、接近完美的MVC开发模式2、model的validation机制3、对model集合的封装:collection4、trunsition特效实现5、流畅易用的touch操作6、内置数据的订阅与发布。 最后,由于Clouda是基于nodejs的,并且数据库用的MongoDB,性能和速度上没有任何问题,但凡事都有两面性,这样写死的绑定也限制了开发者采用其它数据库的可能性,如果能通过配置来修改这些绑定就比较完美了。
Clouda框架实现了MVC架构,应用代码结构清晰条理,作为最重要的枢纽,Controller,三个主要时态分工明确,onload()函数中用来执行数据的订阅,是MVC中Controller和Model建立联系的过程;这个函数中的代码如果开启了Server渲染,则很可能会在Server端执行,这也就是为什么Clouda框架开发的应用冷启动速度优于一般的HTML5应用,因为在onload()函数中,服务器执行了部分js代码,使得客户端节省了这部分代码在服务器上执行的时间。 onrender()函数负责对View的渲染和转场,是MVC中Controller和View建立联系的过程;onready()函数负责在View渲染完成后,完成事件的绑定、DOM操作等业务逻辑,其中的代码都是运行在客户端的,所以可以使用前端js中的变量和函数,比如window, document等。在百度技术交流会上童遥大牛也解释过,他们正在做服务器端执行剩下部分js代码的工作,我的理解是dorender()代码中的js部分,所以如果真的实现的话,应用的冷启动速度会进一步提升。当然这个技术是在用空间换时间,服务器执行了js代码,渲染了HTML,结果会一起发送给客户端,相比原来的页面,HTML内容应该更多。
在与同样宣称实时WebApp开发的框架对比中,Meteor同样收到了极大关注。在技术方面两者有着极大的相似点,两者均采用了Node.JS、MongoDB API等框架的基础特性,模糊了服务器端和客户端,弱化网络连接质量造成的影响。 单从使用方面来看,两者同样的简单易用。Meteor宣称其可以帮助程序员轻松构建高品质的实时Web应用程序,而Clouda同样以高效开发为导向。 用两者完成的应用程序同样运行速度非常快。例如,当你的项目引用JS或CSS文件时,这些文件将会被自动加载,自动完成UI部件的加载。当然,在为前端缓解压力的同时,服务器需要做更多的工作。 应用领域方面:Clouda更加专注于移动方面,全面兼容手机、平板、PC。而Metero则更多应用于游戏和实时在线文档编辑。 在与类似功能的框架对比过程中,Clouda如何进行合理定位,如何确保自己的优势仍是一大看点。