Javascript MVC 架构之旅

Javascript MVC架构之旅

本文摘自smashingmagazine的Journey Through The JavaScript MVC Jungle部分内容,因为个人对于框架的应用总结和特点比较感兴趣,这里翻译了部分的内容,希望对于大家有帮助,如果你觉得不过瘾,请阅读原文,谢谢!

什么时候你需要使用Javascript的MVC框架?

如果你开发的程序可能需要和API或者服务通讯,而且要求大量的视图操作或者数据操作,你将发现使用一个成熟的框架非常有帮助。

典型的例子就是Gmail和Google Docs。

如果你的应用只是依赖于服务器来生成web页面和视图,并且只需要使用一些简单的javascript或者jQuery来使得应用更加的具有互动性,使用框架就不是很有必要。

选择框架的标准

如果你需要选择框架的话,你需要问问自己这些问题:

  • 这个框架究竟可以带来什么?
  • 这个框架是不是有实际的成功案例?
  • 这个框架是不是成熟?
  • 这个框架是不是足够灵活或者相对比较死板?
  • 你有没有应用过相关的框架?
  • 这个框架是不是有很好的文档支持?
  • 这个框架的大小,包括依赖的类库,是不是很大?
  • 支持这个框架的社区是不是不错?

如何选择框架? 什么时候该用什么?

为了更好的帮助大家选择框架,这里我们做了一个high-level的总结,希望能够帮助大家选择框架:

Backbone.js

如 果你需要灵活的方式来解决应用中层次分离问题,并且支持持久层和REST同步服务,models,views,事件驱动,模板和定位等这个框架是个不错的 选择。它允许model修改后View能够自动更新。而且很多大的公司都使用它来构建应用,并且拥有非常好的社区来支持。

Ember.js

如 果你需要桌面级别的应用开发,并且拥有模块化,标准的界面,并且支持MVC的特性,不需要我自己处理所有的东西。要求支持持久化,计算相关属性并且自动更 新模板。支持正确的状态管理而非手动的控制管理。Ember.js是不错的选择,同时它拥有非常详细的文档,及其模板说明。并且拥有丰富的工具。

CanJS

轻量级的试试模板绑定,定向,整合主流类库(jQuery或者Dojo)以优化性能。支持MVC。可能在大型的应用中使用不多,但是适合于有复杂应用开发经验的人,针对这种情况,canjs是个不错选择。

AngularJS

如果你需要使用宣示的方法来定义View的行为。主要通过自定义的HTML标签和组件来达到目的。支持快速测试,URL管理和分离的MVC。和其它的框架不 一样,它提供HTML编译器来创建自己的HTML中的DSL。灵感来自于即将来到的web platform特性,例如web组件,同时也拥有自己的工具。如果想了解相关特性,请参考:AngularJS的五个超酷特性

Dojo

提供非常棒的基础用来开发大型的应用。支持成熟的组件架构,模块支持lazy加载并且支持异步,简单整合CDNs,拥有广泛的模块(图形,图表,Grid等等),支持国际化本地化。支持OOP,MVC并且支持创建单元来解决复杂的架构。

YUI

需要利用YUI的扩展架构。支持Model,view和router,简化书写多视图的应用支持routing,视图变化等等。 拥有完整的解决方案包括组件/控件及其相关工具,帮助你创建一个有组织的应用架构。拥有底层工具(yuiproject)。

Spine

帮助你简单的实现异步界面并且不需要任何依赖。可以非常固定但是对于创建应用比较灵活。家头提供了必须要的骨架,例如,model,view,controller,事件和routing。但是仍旧比较小。针对CoffeeScript做了优化,拥有非常清楚的文档。

KnockoutJS

可以方便的使用清楚的底层数据模型和宣告性绑定构建复杂动态的UI 。Model变化后能够自动更新UI,使用双向的绑定,支持依赖来跟踪model数据。可以使用任何你想使用的框架。或者一个已存在的应用。支持内建模板,并且很容易扩展。

jQuery

搭建简答的网站和web应用。不需要很多代码,并且组织代码不是个问题。主要专注于浏览器的区别,我们专心于开发本身。很容易的绑定事件,和远程服务互动,支持扩展,拥有大量的插件。

希望这些简单的内容对于你的框架选择有所帮助,如果你有问题,请给我们留言!

阿里云再度回应质疑:我们不是改版安卓

 阿里云回应质疑:阿里云系统是独立的,是基于UNIX的,只是兼容安卓

【搜狐IT消息】9月13日,有业界声音称,阿里云因为改版安卓却坚称自己是独立系统遭到谷歌的不满,从而令谷歌向宏碁施压中止推出阿里云手机。对此,阿里云负责人则坚称,阿里云是独立系统,并非改版安卓。

阿里云公关总监杨磊称:“我们注意到网上有声音再对我们质疑。阿里云系统是独立的,是基于UNIX的,只是兼容安卓,但并不是使用安卓源代码然后进行修改的。”

与此同时,杨磊也强调:“如果谷歌是因为这个(改版安卓却自称独立开发系统)不满,为何不直接跟阿里云方面接触,却要跟我们的合作伙伴施压?自始至终,谷歌方面没有与我们进行过接触。”

今日下午,原计划的宏碁阿里云手机发布会意外取消。阿里云在声明中称,宏碁接到谷歌方面通知,称如果在其新产品上搭载阿里云操作系统,谷歌公司 将会解除与其Android产品的合作和相关技术授权。从现有的智能手机市场状况来看,Android阵营拥有超过50%的智能手机智能终端,如果失去谷 歌支持,宏碁想做智能手机将面临很多难题。

而中国移动互联网产业联盟秘书长李易今日则质疑称,阿里云手机一直自称是具备知识产权,并且宣称和谷歌Android没有任何关系,实际上,谷 歌并不介意厂商使用Android系统或者对Android系统进行二次开发,但对于某些厂商使用了Android代码但不承认的作法,谷歌肯定从情感上 是很难接受的。他甚至质疑称,如果阿里云真能基于Linux或者其他平台研发出完全自主知识产权的操作系统,早就申请核高基支持了。

社区 Linux、企业 Linux、Unix 的区别

你知道社区Linux版本与企业Linux版本之间的区别在哪儿么?

红帽Linux副总裁Tim Burke在LinuxCon大会上就被问到了该问题。Burke说他最初就是从Unix转向红帽的。从Unix迁移到Linux是讨论企业Linux是什么的关键起点。

Burke说Unix与Linux的不同在于Linux允许用户创新,打破厂商的锁定,给用户自由。

红帽是全球领先的企业级Linux厂商,最近刚突破了十亿美金的收入,他们不是构建Linux的唯一厂商。Burke说开源世界有成百上千个项目,只有少部分融入到了Red Hat Enterprise Linux(RHEL)中。

要打造企业Linux版本的部分工作就是挑选合适的项目进行开发。红帽的做法是成为上千社区活跃的贡献者与参与者。

“你如何知道哪个项目准备好了?”Burke说,“红帽去主动参与的就能带来价值。”

Burke也任职于另外一家厂商,他表示不是所有交付Linux的厂商都会像红帽这样去贡献并参与。

硬件

硬件支持是企业Linux另一个关键价值。

“每个人都假设硬件厂商在发布硬件之前就得到所有支持,”Burke说,“其实这需要大量协调工作,我们花费了很多精力在上面。”

在Burke看来,在社区Linux版本的人们不喜欢主动追踪厂商的硬件计划表。

安全是企业Linux的另一属性,红帽使用SELinux提供策略与访问控制。可扩展性也是红帽关注的另一个企业级领域。

然后当然是支持。

多数人认为所有的企业版本都受支持,其实不是这样。当然,提供支持的团队参与到上游社区,他们肯定是支持产品的最佳人选。

此外,对数多企业用户来说,他们不太满意红帽如今的方向,他们想知道技术的未来在哪里。用户驱动的创新是企业Linux成功的关键。

“不可能只有红帽,”Burke说,“是社区和消费者还有合作伙伴同心协力将企业Linux做大,这就是与Unix的不同之处。”

Firefox 18 新 JavaScript引擎:IonMonkey

之前当我们每次谈到JavaScript性能测试的时候,无论是Google的Octane benchmark测试,还是Mozilla的Kraken测试,Chrome浏览器都当之无愧的成为跑分之王,但从Firefox 18.0开始,Chrome浏览器JavaScript测试跑分王的宝座将会受到冲击,因为从Firefox 18 开始,Mozilla将正式开启开发长达1年之久的的新一代JavaScript引擎——IonMonkey。

IonMonkey新一代引擎的启用,不仅能大幅提高Firefox的JavaScript性能,还能提高浏览器的安全性及其他性能。新优化方法包 括类型特殊化(Type specialization),内联函数,线性扫描寄存器分配算法,无效代码删除,循环不变量移动等。

以下是Firefox 18与之前几个版本几项测试的对比结果:

Firefox IonMoneky

在Kraken测试中,Firefox17的分数是2602ms,而Firefox18 在1921ms。(时间越低越快)

Firefox IonMoneky

在 Google v8 benchmark 测试中,Firefox15为8474分,Firefox17为9511分。而Firefox18跑出了10188分,比Firefox17快了7%,比Firefox15足足快了20%。

当然如果各位浏览器正在使用Firefox 18  Nghtly版本,如果你发现了其他一些新的功能和改进,欢迎大家留言讨论。

Via:Cnet  techdows  编译:浏览迷