摘要: 在web项目中Javascript是一门必须要掌握的动态语言,基于Javascript的框架大多离不开不了最基础的Javascript的用法和原理。本文主要是总结一下Javascript中那万恶的this关键字。 开门见山,抛出一个观点:“Javascript中this永远是指向调用它的对象”。下... 阅读全文
posted @ 2014-09-08 12:40 Facilitate 阅读(2353) 评论(1) 推荐(3) 编辑
摘要: 目前比较流行的WEB开发的趋势是前后端分离。前端采用重量级的Javascript框架,比如Angular,Ember等,后端采用restful API的Web Service服务,通过JSON格式进行数据交互。 对于后端服务语言来说,不论是Ruby的rake,Java中的Maven或Gradle,... 阅读全文
posted @ 2015-01-12 01:03 Facilitate 阅读(4553) 评论(7) 推荐(0) 编辑
摘要: 如果你对Jquery没有足够的经验,但是你又用过JQuery,这么来说没你已经用过了回调函数了。但是你可能不知道它是如何工作和实现的。这篇文章主要基于我所了解的回调函数,我试图启发大家基于最常规的JavaScript技术之上。也许一些Javascript的专家可以告诉我那些遗漏了。什么是回调函数? ... 阅读全文
posted @ 2014-03-03 23:01 Facilitate 阅读(5419) 评论(1) 推荐(2) 编辑
摘要: JavaScript module pattern是一种常见的javascript编码模式。这种模式本身很好理解,但是有很多高级用法还没有得到大家的注意。本文,我们将回顾这种设计模式,并且介绍一些高级的用法,其中一个是我原创的。我的问题 在我的项目中经常会在一个jsp中import包含下面这样的J... 阅读全文
posted @ 2014-01-04 20:45 Facilitate 阅读(2199) 评论(1) 推荐(0) 编辑
摘要: 给js写测试已经不是什么稀奇的事情了,最近项目里用了jasmine和JsTestDriver两种js测试框架。JsTestDriver易于与持续构建系统相集成并能够在多个浏览器上运行测试轻松实现TDD风格的开发。当在项目中配置好JsTestDriver以后,如同junit测试java文件一般,Js... 阅读全文
posted @ 2013-11-10 22:26 Facilitate 阅读(5575) 评论(0) 推荐(3) 编辑
摘要: Feature Toggle,简单来说,就是一个开关,将未完成功能的代码屏蔽后发布到生产环境,从而避免多分支的情况。之所以有本文的产生,就是源于此情景。在引入Feature Toggle的同时,我们发现之前对这些未开发完功能的代码的单元测试不是很稳定,而且如果我们在用feature toggle关掉这个功能之后,这些测试也是对发布毫无价值可言,所有我们需要将这些测试全部屏蔽掉,以免影响运行其他测试结果。 在经过项目组讨论之后,我们毅然决然摒弃了直接采用@Ignore的低级做法,决定自己来实现一个简单的toggle,用annotation加读取配置文件的方式管理需要被屏蔽的测试。下面先介绍两种. 阅读全文
posted @ 2013-11-05 23:09 Facilitate 阅读(2184) 评论(1) 推荐(2) 编辑
摘要: 最近在为澳洲一家保险公司做web应用,在一个收集用户地址信息的页面中,我遇到了一个问题: 1.当用户输入正确的地址,通过验证。 2.当用户第一次输入错误的地址,不通过。 3.当用户第二次输入,不论正确与否,都将通过。 4.当用户通过后返回上一个页面如果地址没有修改,通过。 5.当用户通过后返回上一个页面,地址修改,但不正确,不通过 当面对这样的需求的时候,我立马有了解决方案,首先要有一个全局变量来保存他输入的地址是否正确的boolean,然后还得有一个session里存放一个地址变量,来比较地址是否改变。有了这两个变量,我就可以在做验... 阅读全文
posted @ 2013-10-27 23:11 Facilitate 阅读(4437) 评论(6) 推荐(1) 编辑
摘要: 在Java世界里,经常被提到静态这个概念,static作为静态成员变量和成员函数的修饰符,意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见。最近一个项目里频繁用到static修饰的内部类,再读了一下《Effective Java》才明白为什么会用static来修饰一个内部类也就是本文的中心——静态类。 如果一个类要被声明为static的,只有一种情况,就是静态内部类。如果在外部类声明为static,程序会编译都不会过。在一番调查后个人总结出了3点关于内部类和静态内部类(俗称:内嵌类)1.静态内部类跟静态方法一样,只能访问静态的成员变. 阅读全文
posted @ 2013-10-24 21:46 Facilitate 阅读(148632) 评论(7) 推荐(19) 编辑
摘要: Guava的前身是Google Collections,是Google开发出的一个开源Java常用类库,包含了一些集合的便捷操作API。本文通过一些常用的例子来剖析Guava的奇妙之处。Guava是如何简化for循环的呢,直接上一段例子来说明:如果想要将一个字符数组中字符的元素剔除并且用逗号隔开,原始做法:for(int i = 0; i dogs = ImmutableList.of( new Dog("Jeff", 0.6f, MALE, new DateTime(2013, 9, 1, 0, 0, 0, 0)), new Dog("Vivia... 阅读全文
posted @ 2013-10-15 23:27 Facilitate 阅读(3700) 评论(2) 推荐(0) 编辑
摘要: 某天,你的客户提出这样一个需求,在点击购买商品的时,如果用户没有注册,并且用户没有账号,这时用户去创建账户,然后要直接返回到想购买商品的付款页面。你会该如何基于Spring Security实现? Spring Security 是为基于Spring的应用程序提供声明式安全保护的安全性框架。它能够在Web请求级别和方法调用级别处理身份验证和授权。因为基于Spring框架,所以Spring Security充分利用依赖注入(dependency injection)和AOP. Spring Security提供了多种验证方式,最常见的有:XML配置和数据库验证方式。试想当我们点击购买商品并且没有 阅读全文
posted @ 2013-10-15 17:27 Facilitate 阅读(2259) 评论(0) 推荐(0) 编辑