javascript 函数前面的一元操作符

segmentfault上的一个问题:

一般看JQuery插件里的写法是这样的:

1
2
3
(function($) {
//...
})(jQuery);

今天看到bootstrap的javascript组件是这样写的:

1
2
3
!function( $ ){
//...
}( window.jQuery );

为什么要在前面加一个 " ! " 呢?
原来,使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。也就是说,任何能将函数变成一个函数表达式的作法,都可以使解析器正确的调用定义函数。而 ! 就是其中一个,而 + - || 都有这样的功能。
另外,用 ! 可能更多的是一个习惯问题,不同的运算符,性能是不同的。

阅读全文

Gitbook简明教程

Gitbook是一个命令行工具(node.js库), 使用Github/Git创建漂亮的图书。 你可以看一些用它编写的图书的例子: 学习Javascript. 你也可以很容易的通过gitbook.io网站发布在线图书。 editor 是一个图形化的编辑工具, 提供Windows, Mac 和Linux的版本. 关注Twitter帐号 @GitBookIO. 这篇文章只是一个起步教程, 完整的文档可以在help.gitbook.io网站找到.

阅读全文

使用FastJson作为JAX-RS的序列化/反序列化框架

FastJson是阿里巴巴的温少开发的一个JSON的序列化和反序列化的框架。 我前面的文章: Java序列化框架性能比较中也提到, 我使用第三方的序列化测试框架jvm-serializers表明, FastJson是最快的JSON序列化框架之一, 优于Jackson。

JAX-RS是一个Java编程语言的应用程序接口,支持按照 表象化状态转变 (REST)架构风格创建Web服务Web服务. JAX-RS使用了Java SE 5引入的Java 标注来简化Web服务客户端和服务端的开发和部署。
JAX-RS的实现包括:

  • Apache CXF,开源的Web服务框架。
  • Jersey, 由Sun提供的JAX-RS的参考实现。
  • RESTEasy,JBoss的实现。
  • Restlet,由Jerome Louvel和Dave Pawson开发,是最早的REST框架,先于JAX-RS出现。
  • Apache Wink,一个Apache软件基金会孵化器中的项目,其服务模块实现JAX-RS规范

如果项目中使用JAX-RS传递JSON格式的数据, 可以利用FastJson提高序列化的性能。 但是FastJson并没有提供JAX-RS的集成( Issue #65, Issue #138 )。

我实现了一个FastJson的JAX-RS集成框架: fastjson-jaxrs-json-provider ,可以方便在在JAX-RS项目中使用。

阅读全文

ZooKeeper程序员指南

翻译于最新的ZooKeeper 3.4 文档

前言

本文档是为那些希望利用ZooKeeper的协调服务建立分布式应用程序的开发人员而写的指南。它包含了Zookeeper的概念和实践内容。
指南的前四节介绍了ZooKeeper各种概念的高层次的讨论。 对于理解ZooKeeper如何工作和如何使用它这些概念都是必须了解的。尽管不包含代码,但还是假定你熟悉分布式计算相关的问题。
第一组的章节包括:

  • ZooKeeper数据模型: The ZooKeeper Data Model
  • ZooKeeper的会话: ZooKeeper Sessions
  • ZooKeeper的监视: ZooKeeper Watches
  • 一致性保证:Consistency Guarantees
    (下面的翻译中概念尽量不翻译成中文,因为英文更能直观的反映其概念)

接下来的四个章节提供了编程实践信息,它们是:

  • Building Blocks: A Guide to ZooKeeper Operations
  • Bindings
  • Program Structure, with Simple Example [tbd]
  • Gotchas: Common Problems and Troubleshooting

附录中的链接是其它的有用的,和ZooKeeper相关的信息.
书中的章节都可以独立阅读,然而在开发你的第一个ZooKeeper程序之前, 你最好先阅读一下ZooKeeper数据模型和ZooKeeper基本操作。Simple Programmming Example对于理解ZooKeeper客户端程序的基本结构也很有帮助.

阅读全文

Hadoop生态圈一览

Hadoop是一个大规模的分布式可扩展的批处理大数据框架(PB级别),可以运行于千台服务器的集群。

最近几年Hadoop生态圈持续成长。 涌现了很多的关于工具和框架的术语。 也有很多的组织基于Hadoop进行研究和创新, 使Hadoop变得越来越好,越来越容易。基于作者的几周的潜心研究, 他提供了一个思维脑图, 描绘了Hadoop的生态圈, 可以帮助我们了解Hadoop生态圈的全貌。

阅读全文

最佳免费的网站性能测试工具

网站的加载速度在一定程度上来说是决定网站能否成功的关键。如果您是网站所有者,一定知道网站速度的重要性。因为没有人愿意为了打开一个网页而等老半天,换句话说,如果你的网站打开速度很慢,将流失大量的访客,甚至出现多米诺效应的不良影响。

阅读全文

Ember.js 技巧、诀窍和最佳实践

Ember.js是一款用来创建炫酷的Web应用程序的JavaScript MV* 框架。 正像AngularJS,Backbone.js一样正在广泛的应用于现代的Web开发中, 知名用户包括 Yahoo!, Groupon, 和 ZenDesk.
总的来说, Ember.js还在推广之中, 国内使用它做开发的还比较少, 官方的文档也不是很完备。 所以这篇文章记录了我使用Ember中收集的一些技巧,诀窍和最佳实践, 并且会不断的更新。

想了解Ember.js和其它JavaScript框架的区别, 可以看这篇文章: AngularJS vs. Backbone.js vs. Ember.js

阅读全文

45个实用的JavaScript技巧、窍门和最佳实践

如你所知,JavaScript是世上编程语言的Number One (编者按: 原文如此), 用来编写Web和移动混合应用(比如PhoneGap或者Appcelerator), 也可以编写服务器端的程序(比如NodeJS或者Wakanda),并且拥有很多其他的实现。 它也是很多新手进入编程世界的启蒙语言,因为它不但可以在浏览器上显示一个简单的alert信息,而且还可以用来控制一个机器人(使用nodebot,或者nodruino)。掌握JavaScript并且能够写出规范并性能高效代码的开发人员,已经成为人才市场上的猎寻目标。

在这篇文章中,Saad Mousliki将分享一组JavaScript的技巧、窍门和最佳实践,这些都是JavaScript程序员应该知晓的,不管他们是使用在浏览器/引擎上,还是服务器端(SSJS Service Side JavaScript)JavaScript解释器上。

需要注意的是,这篇文章中的代码片段都在最新的Google Chrome(版本号30)上测试过,它使用V8 JavaScript引擎(V8 3.20.17.15)

阅读全文