use togglz in project

Feature Toggle in Java

In our project, we choose togglz as a framework for feature toggle.

import togglz in project

We need to add these dependencies in project file build.gradle

1
compile 'org.togglz:togglz-core:2.2.0.Final'
compile 'org.togglz:togglz-servlet:2.2.0.Final'
compile 'org.togglz:togglz-jsp:2.2.0.Final' //support jsp
compile 'org.togglz:togglz-console:2.2.0.Final'  //support togglz console
compile 'org.togglz:togglz-spring-security:2.2.0.Final' //support user authentication

testCompile 'org.togglz:togglz-testing:2.2.0.Final' //support togglz test
testCompile 'org.togglz:togglz-junit:2.2.0.Final' //support togglz test

閱讀更多

JavaScript 小知识

立即执行函数(IIFE -Immediately Invoked Function Expression)

1
2
3
4
5
6
7
8
9
(function() {
'use strict';

angular
.module('app')
.factory('storage', storage);

function storage() { }
})();

閱讀更多

gradle file lock

运行gradle idea 下载依赖的时候报下面的错误
``
Timeout waiting to lock buildscript class cache for build file ‘/Users/twer/works/javaee/core/build.gradle’ (/Users/twer/.gradle/caches/2.2.1/scripts/build_dqoptxiza8a734uwm8mpmbw5h/ProjectScript/buildscript). It is currently in use by another Gradle instance.
Owner PID: unknown
Our PID: 4202
Owner Operation: unknown
Our operation: Initialize cache
Lock file: /Users/twer/.gradle/caches/2.2.
1/scripts/build_dqoptxiza8a734uwm8mpmbw5h/ProjectScript/buildscript/cache.properties.lock
```
这是因为我还开着其他的gradle 服务(jetty),关闭后gradle就可以正常下载依赖了。

閱讀更多

AnjularJS

AngularJS配置:

  • 下载AngularJS源文件,angular.js, angular-router.js等必须使用的源文件。
  • 在跟路径(可以是其他路径,建议根路径)新建index.html文件,index.html的目录,将会作为整个angular的根路径。
  • 在index.html 中标记出ng-app=”appname”,和ng-views=” “。ng-app的 appname将会作为为整个angular的项目名称。在app.js和controller、service的配置文件中要保持一致。
  • 新建app.js文件,app.js中写的是angular的配置信息。如router等。
  • 新建一个Controller。
  • 新建一个Service。
  • 在index.html中引入angula.js angular-router.js 相关js。和自己实现的app.js ,controller 的js,service的js。

閱讀更多

DOM event

http://www.w3.org/TR/DOM-Level-3-Events/#event-flow w3c事件派遣与事件流
http://chajn.org/project/javascript-events-responding-user/ 事件
http://segmentfault.com/a/1190000002613617 事件委托与代理

閱讀更多

Test Double

什么是Test Double?为什么要用Test Double?

Test Double即是测试替身。
讲测试替身之前,先要明确两个概念。
待测程序测试依赖
待测程序就是要被测试的程序,测试依赖就是待测程序所依赖的程序。
为什么要使用测试替身:要测试“待测程序”,测试依赖也必须存在,这使得测试变得更复杂。

测试替身的概念: Test Double是一种让“待测程序”可以不依靠“测试依赖”而被单独测试的做法。

閱讀更多

jQuery 教程

简单介绍

什么是jQuery

jQuery是一个JavaScript库,它通过封装原生JavaScript函数得到了一整套定义好的方法。这些方法能有效地帮助Web设计师和开发者快捷编写和扩展JavaScript交互组件。jQuery没有提供任何新的功能,它最大的贡献是把JavaScript难懂难用的API整理成了易懂易用的jQuery语法,从而赢得了无数的用户。

为什么要用jQuery

  • 开源
  • 无与伦比的文档
  • 更少的代码
  • 链式调用
  • 兼容各种浏览器
  • 与CSS相近的属性选择器
  • 不突兀的JavaScript(例如:事件绑定全部在JavaScript代码中完成,不需要在HTML中出现JavaScript代码)。

主要功能

  • 处理DOM
  • Ajax
  • 事件处理
  • 易于扩展
  • 特殊效果(淡入淡出, 滑动)
  • 动画

閱讀更多

mongoDB hello world

mongoDB学习

练习项目位置https://github.com/wangximing/mongoDB-quick-start

安装

OSX下运行下列命令

1
2
brew update
brew install mongodb

閱讀更多

装饰者模式学习笔记

from Justin’s Tech Blog

装饰者模式: 动态的给一个对象添加额外的职责,就增加功能来说,Decorator比增加子类更灵活

优先使用组合,而不是继承(Favor composition over inheritance);

####举一个饮品的记账系统来引出装饰者模式。
decorator1

Brverage是所有饮料的基类,cost()是抽象方法,
所有子类都需要定义自己的cost() 实现来返回特定饮料的价钱,
description变量也是在子类里赋值,表示特定饮料的描述信息。
getDescription()方法可以返回这个描述。

閱讀更多

Ruby on Rails 从零到部署

环境搭建

环境搭建

閱讀更多