`
ajoo
  • 浏览: 449844 次
社区版块
存档分类
最新评论
文章列表
那啥?刚才说到哪了?“如云朵般的呵护”?下面谁说的?给我拉出去好好“呵护呵护”! 人家没那么说啦!讨厌!是刚才广告里说的嘛!我说刚才我们“俺摸”系列说到哪了? 对了,说到我们可以这么用PorkMockTest: public class LionHeadTest extends PorkMockTest { public void testHuoHou() { LionHead head = mock(LionHead.class); head.bite(); replay(); cook(head); // 忘记吧,忘记吧。忘记是 ...
猪肉炖粉:“那啥,猪哥啊,这两天你身价大涨,发了吧?忙啥呢?” 一只猪:“可不是!到哪儿都被采访,这名猪也有隐私权滴!最近特想过普通猪的生活。这不,洗尽铅华,老老实实地躲圈里整Java呢” 话说这Java的一级摸 ...
为了响应伟大的“抵制中英文夹杂的资本主义不良思潮”运动,本文将全部用中文书写(代码暂时例外)。 最近工作需要,发现要写代码扩展“蛛丝”来实现一个春天遗留系统的移植。基本上就是围绕着春天的“应用上下文”和蛛丝的绑匪/模块来上下其手。 在测试的的时候,习惯性地选择用“简单摹客”来测试行为。摹客春天的应用上下文和豆子工厂真是简单啊: ListableBeanFactory beanFactory = mock(ListableBeanFactory.class); expect(beanFactory.getBeanDefinitions()).andReturn(beanNames); ...
最近一些朋友纷纷给下一代开了blog,孩子她妈看着眼馋,急扯白脸地也给我家蓓蓓开了一个。博客刚开张,急需人捧场,孩子他爸只好风餐露宿,提心吊胆地满城找电线杆子,站牌儿贴小广告。 某一日再次被东城城管打得满头包,被撵得惶惶如得冠军的刘翔,气喘吁吁之余忽然想起家爱这儿似乎民主得很,小报不怕乱贴,标题党不怕乱做,挖坑只怕不深,盖楼不怕违章。虽然这样一来有可能暴露俺一只猪名花有主的身份,对以后和广大文学女青年的交流合作产生不必要的障碍和误解,但是考虑到家爱大概还有很多无聊的人可以拉来帮我贴小广告,还有老庄之流树大招风,大可以树下乘乘凉,当当挡箭牌,关键时刻大义灭亲,舍卒保车。嘿嘿嘿,于是,一个邪恶的计 ...
好象貌似有本书是用写一个JUnit作为例子来讲解TDD的。要说TDD绝对是个好东西,不过TDD本身并不能保证搞出好软件。这不,Junit就是个活生生的例子呀。 一直以来,我写Junit+Easymock测试都是这么来的: public class SomeTest extends TestC ...
问题背景,定义三个概念先: 1。percent。就是百分比。 2。weight。如果percent是10,weight就是0.1,weight=percent/100. 3。amount。如果percent是10,总数是1000,那么amount就是100. amount=total*weight. 在程序中,我们很多时候需要在amount, weight, per ...
这个事例说起来相当简单。不过小中见大,它大致体现了我和pair在DRY vs. 简单性上的差别,和那个“这样代码重用”里面的例子体现了同样的分歧。 目标是重构下面的测试代码: public void test1() { Account acct = new Account(); acct.setName("test"); acct.setType(TypeEnum.Type1); acct.setActive(true); Result result = runSomeApi(acct); assertEquals("tes ...
今天这个其实不是争论。 这是我接手的一个web系统的一个设计。我觉得很不爽,但是一时又没有好的解决方法。 情况是这样的。 我们的web app是一个传统的jsp+controller+dao的设计(Controller用的是我们元老自己设计的一个框架)。 这个app我们叫做product。 除此之外,我们还有一个定制版本的app。这个定制版本是给某个客户定制的。功能和product大同小异。但是有些小的地方的业务逻辑或者web页面会有些区别。(比如说某个提示信息不同,或者多出或者少一个text box之类的) 大家知道jsp的复用不是很容易的。而这个定制版本和product的区别完 ...
这个争论的背景有点复杂。我就尽量简化了说。 遗留系统有一个自制的service locator。是一个静态函数: public static Object newObject(Class interfaceOrDefaultClass, Class[] parameterTypes, Object[] arguments); 使用起来是这样: ImplFactory.newObject(MyInterface.class, new Class[]{int.class, String.class}, new Object[]{new Integer(1), "abc&quo ...
这是一个工作中遇到的背景比较简单的争论。 有这么一个persistent object,姑且叫它Plan吧。 有这么两个函数: Plan getPlanByName(String userid, String planName); Plan[] getPlans(String userid); getPlanByName内部执行的是: select * from Plan where us ...
公司的一个大系统的持久层一直是直接使用jdbc。在jdbc的基础上,又自制了一个简陋的cache。 每个持久功能的实现都比较类似,大致相当于这样: MyProprietaryConnection conn = ConnectionManager.checkOut(Database.DB_NAME); try { PreparedStatement stmt = conn.getPreparedStatement("some statement id, identifying a sql statement in an xml file"); stmt.se ...
这个争执发生在测试的时候。 背景是这样的: 一个接口有很多乱七八糟的业务相关的方法,其中有这么四个方法: interface TaxLawBuckets { double getRemaining401k(); double getRemaining403g(); void apply401k(double amount); void apply403g(double amount); } 当然,这个设计有点不是很好。更好的也许是: interface TaxLawBuckets { TaxLawBucket get401k(); TaxLawB ...
这个I disagree系列里面我准备把所有在工作中技术上的争执记录下来。也有立此存照的意思。也许再过几年,回头一看,会自己bs自己一把呢。 今天要记录的,是一个关于martin的refactoring那本书里提到的"Replace Temp With Query" ...
问题是这样的。 一个MyService类里面,有一个MyResponse runService()函数。这个runService函数会调用一个web service来得到MyResponse对象。这个MyResponse对象在runService()函数中被缓存,然后返回。 现在的目标是,在runService返回以前,先把MyRe ...
这里讲述的是一个非常让人尴尬的故事 我们有一个简单的java类: class Details { double getBalance(); double getFixed(); double getVariable(); double getSpendDown(); ... //各种getter以及其他相关的逻辑 } 现在业务逻辑需要对一些property做求和操作,求overallBalance, overallFixed之类的。 没什么了不起的,一个for循环分分钟搞定: static double getOverallBalance(D ...
Global site tag (gtag.js) - Google Analytics