![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
I disagree
iteye_12278
这个作者很懒,什么都没留下…
展开
-
复杂还是不复杂?
问题是这样的。 一个MyService类里面,有一个MyResponse runService()函数。这个runService函数会调用一个web service来得到MyResponse对象。这个MyResponse对象在runService()函数中被缓存,然后返回。 现在的目标是,在runService返回以前,先把MyResponse clone一下,然后如果MyResponse.g...2007-02-04 04:01:44 · 146 阅读 · 0 评论 -
怎样最有效地测试异常?
工作中,和同事对测试异常的最佳方法产生了分歧。 我是比较欣赏JUnit4的@Test(expected=FooException.class)的啦,觉得这样多清爽啊,多declarative啊,再不用写那么一大坨try-fail-catch了。 不过同事(以下简称S)不这么认为。他觉得try-fail-catch挺好的,价格便宜,量又足,我们一直用它。而JUnit 4和TestNG提供...2008-04-02 21:56:30 · 169 阅读 · 0 评论 -
DRY与简单性的平衡
这个事例说起来相当简单。不过小中见大,它大致体现了我和pair在DRY vs. 简单性上的差别,和那个“这样代码重用”里面的例子体现了同样的分歧。 目标是重构下面的测试代码: [code] public void test1() { Account acct = new Account(); acct.setName("test"); acct.setType(Type...2007-02-16 18:45:57 · 96 阅读 · 0 评论 -
Web AOP?
今天这个其实不是争论。 这是我接手的一个web系统的一个设计。我觉得很不爽,但是一时又没有好的解决方法。 情况是这样的。 我们的web app是一个传统的jsp+controller+dao的设计(Controller用的是我们元老自己设计的一个框架)。 这个app我们叫做product。 除此之外,我们还有一个定制版本的app。这个定制版本是给某个客户定制的。功能和...2007-02-16 11:12:00 · 161 阅读 · 0 评论 -
依赖是否可以作为一个独立的衡量软件质量的标准?
这个争论的背景有点复杂。我就尽量简化了说。 遗留系统有一个自制的service locator。是一个静态函数: [code] public static Object newObject(Class interfaceOrDefaultClass, Class[] parameterTypes, Object[] arguments); [/code] 使用起来是这样: [cod...2007-02-12 05:03:50 · 97 阅读 · 0 评论 -
这样代码重用?
这是一个工作中遇到的背景比较简单的争论。 有这么一个persistent object,姑且叫它Plan吧。 有这么两个函数: [code] Plan getPlanByName(String userid, String planName); Plan[] getPlans(String userid); [/code] getPlanByName内部执行的是: ...2007-02-12 03:09:37 · 78 阅读 · 0 评论 -
jdbc还是ibatis?
公司的一个大系统的持久层一直是直接使用jdbc。在jdbc的基础上,又自制了一个简陋的cache。 每个持久功能的实现都比较类似,大致相当于这样: [code] MyProprietaryConnection conn = ConnectionManager.checkOut(Database.DB_NAME); try { PreparedStatement stmt = co...2007-02-06 03:59:08 · 148 阅读 · 0 评论 -
一致性和Use Right Tool For Right Job哪个重要?
这个争执发生在测试的时候。 背景是这样的: 一个接口有很多乱七八糟的业务相关的方法,其中有这么四个方法: [code] interface TaxLawBuckets { double getRemaining401k(); double getRemaining403g(); void apply401k(double amount); void apply403...2007-02-05 12:52:20 · 283 阅读 · 0 评论 -
关于 Replace Temp With Query
这个I disagree系列里面我准备把所有在工作中技术上的争执记录下来。也有立此存照的意思。也许再过几年,回头一看,会自己bs自己一把呢。 今天要记录的,是一个关于martin的refactoring那本书里提到的"Replace Temp With Query"的重构技术。 事情是这样的。在和同事pair的时候,对他频繁使用的这个重构不太同意。搞得同事很不爽。很不好意思的是,我并没...2007-02-05 11:55:19 · 533 阅读 · 3 评论 -
getThis().getEvilAdvocate().setDead(getTrue())
code review过程中,看到这样的代码: [code] Pair getFooAndBar() { ... } [/code] 恶魔说,弄个Pair来表达FooAndBar不太容易理解,要不干脆弄个类把foo和bar封装起来,返回出来吧。 天使:“同意”。 下一版代码: [code] class FooAndBar { private final S...2008-08-14 04:15:40 · 147 阅读 · 0 评论