坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Yearly Archives: 2012

Testing and Mocking in spring2.5: Static class、maven site、cobertura

spring 2.5 与 junit 4.4 Spring 2.5.x不能用JUnit 4.5+.如果把使用了spring-test 2.5 的testcase升级到 junit 4.5会得到NoClassDefFoundError: org.apache.maven.surefire.booter.SurefireExecutionException: org/junit/Assume$AssumptionViolatedException; nested exception is java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException java.lang.NoClassDefFoundError: org/junit/Assume$AssumptionViolatedException 这是spring-test 2.5.x的一个bug. 其与JUnit 4.5不一致. 只能使用4.0-4.4. 或者就是自己打patch. http://jira.springframework.org/browse/SPR-5145 EasyMock 与 static Class EasyMock未提到是否支持static methods.功能类经常是static的,是因为没有上下文环境依赖,但如果一定要mock他们,可以选择powerMock. PowerMock、static Class、junit、spring PowerMock 需要你添加 '@RunWith(PowerMock

Continue reading

Posted in java | Tagged , | Leave a comment

54chen Twitter memo 2012-08-05

利用h2database和easymock轻松不依赖环境单元测试(rose等spring环境万能) http://t.co/4w5Hudmv # 印度的人们会不会特别想移民中国? # @Fenng 怎么解决先发到到时序问题? # spring mock/h2 database/daotest/thrift/zookeeper/rose 基本上已经摸索出来一蓝子的开始高可用性高性能服务或者api的大路。 # xmpp muc的定义真是非常完整! # 54chen Twitter memo 2012-07-29 http://t.co/r2SJQxKo #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

利用h2database和easymock轻松不依赖环境单元测试(rose等spring环境万能)

前言 写java时间久了,慢慢就变得自信了,也可能是变得懒了,或者是项目进度的原因,test case越写越少,越来越不写了。 还有一个很大的原因是,DB环境不好搞,老是有垃圾数据,依赖的东西太多,有memcache、有别人的服务,等等等等,都是没有test case良好的理由。 下面将以rose环境下,使用easy mock搞写第三方依赖和h2database搞写DB环境为例子,简单讲述如何轻松测试。 完整代码可以在 https://github.com/XiaoMi/rose 下载到。 依赖的包介绍 spring-test:提供一些基础的spring环境的支持,如果你不是spring环境,可能不需要。 h2:一个内存数据库,使用它的原因是,我们的业务大多数时候使用的都是mysql,而h2有一个mysql模式,可以支持绝大多数的mysql的SQL语句。 easymock:以前在五四陈科学院提到过的利器,用来模拟各种调用的工具。 pom定义为:       <dependency>       <groupId>org.springframework</groupId>       <artifactId>spring-test</artifactId>       &l

Continue reading

Posted in java | Tagged , | 5 Comments

54chen Twitter memo 2012-07-29

zookeeper客户端curator使用手记 http://t.co/mWAGu1il # 效率高的秘诀其实是一件事情一件事情地做而已。 # 听说bmw的车子都会遇水断电后再用最后的一点电把窗户打开。。。 # 54chen Twitter memo 2012-07-22 http://t.co/8eoJsWBr #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

zookeeper客户端curator使用手记

一、简介 curator是Netflix公司开源的一个Zookeeper client library,用于简化zookeeper客户端编程,包含一下几个模块: curator-client - zookeeper client封装,用于取代原生的zookeeper客户端,提供一些非常有用的客户端特性 curator-framework - zookeeper api的高层封装,大大简化zookeeper客户端编程,添加了例如zookeeper连接管理、重试机制等 curator-recipes - zookeeper recipes 基于curator-framework的实现(除2PC以外) 从github和maven上的消息来看,1.0.1的版本已经十分稳定,相对应的zk版本是3.3.x,还在开发中的版本是1.1.x,对应的版本是zk3.4.x。 二、依赖 <dependency>               <groupId>com.netflix.curator</groupId>               <artifactId>curator-framework</artifactId

Continue reading

Posted in java | Tagged , | 3 Comments

54chen Twitter memo 2012-07-22

看来还需要一章写rose单元测试的,漏了。 # 夏天的下午听张楚的歌写代码是很爽的事情。 # 创业公司的工程师一定要有“野性”,敢于对自己的代码负责,我在上一家公司任职的时候,大量的工程师写完代码之后,基本不会保障自测,直接扔给测试组,轮子就是这么越转越慢,甚至他们养成习惯之后很难改掉,所有的代码都十分依赖另一个人来查问题。 # redis 测试办法tclsh入门手记 http://t.co/uARTrrla # 逐渐收到来自各处的mail询问rose的各种看似古怪的问题,典型的:1.很久不升级了? 升级说明在开发,现在很稳定。 2.使用sql拼接容易造成sql注入等问题,尽量使用规范的preparestatement。3.只内置了velocity和jsp,通过后缀是vm还是jsp来区别。 # 54chen Twitter memo 2012-07-15 http://t.co/M36ripIz #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

redis 测试办法tclsh入门手记

一 什么是tclsh tool command language terminal control language 看上去两个都是。tcl和c语言有着天然的亲缘关系,相近的数据类型与控制结构,通过规范的 api,可以比较方便的用c进行tcl的扩展开发,当然不在本文的讨论范围。 二 变量 任何字符串均可作变量名。甚至空格也可以作为变量名。 三 变量赋值 set Name xxxxx set Name "xxxxxxx" 四 数据类型 实际上只有一种数据类型:字符串 数值计算只能用在expr命令中: %expr abs(sin($x)) 输出时非常类似C语言:set x [format "hello %-8.2f!" $y] 五 特殊的字符 $ 异常变量的值 [] 展开一个命令的值 "" …

Continue reading

Posted in linux | Tagged , | 3 Comments

54chen Twitter memo 2012-07-15

rose手册在线版本:http://t.co/CRNq2eyH 同时提供pdf\mobi下载: http://t.co/rE9S2X3E # 完整版本的rose手册,http://t.co/GzEt2O4g ,还剩下最后的历史一章留下给了 @Qieqie ,连续一个多月的连载,希望能为用java开发的创业公司起到作用。 # rose手册第三章C节:DAO层:分表设置 http://t.co/R0zdOCWF # 今天写rose jade dao分表一节。 # 54chen Twitter memo 2012-07-08 http://t.co/kJnBarCk #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

rose手册第三章C节:DAO层:分表设置

欢迎顺利进入本章,如果您的企业需要这一节的内容,那么说明用户量很有前途,如果使用了本节的内容,不防向czhttp@gmail.com发信一封以表谢意,我们会很高兴收到各种反馈。 3.C.1 mysql分表的常规做法 以下是个人从业经验中的分表规则: 按照 id % 100 分为一百份 按照 id % 16 分为十六份 按照 id/10 % 10 分为十份 按照 id%10 分为十份 以上分表规则特别在mysql中使用机会比较多,各有优势,没有对错,只有最好与最不好用。 3.C.2 使用分表第一步:添加新的依赖 要使用分表,需要添加新的依赖,由bmw提供的bmwutils。 <dependency>       <groupId>com.54chen</groupId>       <artifactId>bmwutils</artifactId>       <version>0.0.2</version>   </dependency>   3.C.3 使用分表第二步:设置applicationContext.xml分表规则 在开写代码之前,需要告诉DAO是哪个表需要分表,按照什么规则分,分多少份。 <!

Continue reading

Posted in java | Tagged | 12 Comments

54chen Twitter memo 2012-07-08

rose手册第三章B节:DAO层:DAO进阶:SQLParm支持和表达式SQL http://t.co/ecLqOv41 # 七一闰秒:除了一个低版本的内核会有ntpd占用cpu的情况,从观察的情况,centos6.2+java都有cpu高的问题。 # http://t.co/GMWRgDnY 有朋友在jetty中使用rose portal和pipe功能时发现有空指针问题,研究发现,jetty默认的nio connector会使一些子window的返回是null,因此在使用时一定要切回bio。 # 闰秒这个事情真的让我们服务受到了影响,ntpd同步来的时间重合还是很危险的。 # 54chen Twitter memo 2012-07-01 http://t.co/cOzvPr8A #

Continue reading

Posted in 生活备份 | Tagged | 2 Comments
Page 3 of 812345...Last »