- 博客(54)
- 收藏
- 关注
在给DAO和BL写测试还在为数据而烦恼吗,试试Dbunit和jailer
对DAO和BL层进行测试由于通常都会牵扯到数据库,一直是一个比较头痛的事情。要是抛开数据库进行模拟的话,那么模拟的真实度讲直接影响到你单元测试的质量。要是链接数据库进行测试,准备DB的环境还好说,准备DATA环境就是一个非常痛苦的一个事情,尤其是当面对错综复杂的主外键关系时,测试前的准备数据是一个一直让developer厌恶写单元测试的一个重要理由。 这段时间综合考虑了一下以后决定还是...
2009-01-09 11:25:19
293
正规军的军规2
这个文章是接前一个文章的,本来是一起的,但是贴不下,就另外开一个文章了。这篇是讲一些技巧的,虽然不是严格的规则,但是使用这些技巧将让你从合格转向优秀。 工作技巧1.及时回复及时的回复向你寻求帮助的人,可以给人一个好的的印象,同时也可以减少一些不必要的麻烦。例如:有一次Lucky发邮件要求所有teamleader协助她检查FRD,FSD和DSD...
2008-12-17 18:39:21
169
正规军的军规1
下面的文章是我转自我的老大Anderson的邮件,是对我们team一些问题的总结和经验分享。我里面有很多是可以拿出来与大家共享,所以得到作者的同意之后我把原文贴到了这里。PS:文章取名《正规军的军规》是稍微有些戴帽子了,但是我当前所在的team是确实是我工作以后最正规的一个team,而且我觉得我们通过cmm5并严格执行的开发团队也可以称得上是正规军了,从项目启动到项目发布每个过程都是很严格的,而...
2008-12-17 18:14:13
223
原创 DEV2DEV TECHDAYS SOA 体会二
面向服务的8个原则服务可复用 不管是否存在即时复用的机会,服务被设计为支持潜在可复用。服务共享一个正式契约 为了与服务交互,只需要共享描述每个服务信息交换术语定义的正式契约。服务是松散耦合的 服务被设计为无需紧密的、跨服务的依赖而交互。服务是底层逻辑的抽象 只有经由服务契约所暴露的部分服务对于外部世界是可见的。契约之外所表达的底层逻辑是不可见的,且与服务请求者无关。服务是可组合的 服务可能组合其他
2008-05-24 11:25:00
414
DEV2DEV TECHDAYS SOA 体会二
面向服务的8个原则服务可复用 不管是否存在即时复用的机会,服务被设计为支持潜在可复用。服务共享一个正式契约 为了与服务交互,只需要共享描述每个服务信息交换术语定义的正式契约。服务是松散耦合的 服务被设计为无需紧密的、跨服务的依赖而交互。服务是底层逻辑的抽象 只有经由服务契约所暴露的部分服务对于外部世界是可见的。契约之外所表达的底层逻辑是不可见的,且与服务请求者无关。服务是可组合的 服务可能组合其他...
2008-05-24 09:28:40
153
敏捷项目实践步骤
一、根据发布目标分析需求,把需求分析成独立的故事,初步的分析可以是粗略的,随着需求的不断深入刻意对故事进行整合或者切割。要注意的是分析出来的需求尽量在发布目标的范围之内,超出发布目标的需求应该尽量避免过深分析。所谓的发布目标是确定了这个版本可以让用户满意的条件。故事模式:做为(用户角色),我可以(做什么),以便(业务价值)。后面的业务价值在比较简单或者大家都比较明确的时候刻意不需要注明。当前团队实...
2008-02-20 17:32:00
247
一个堆积木的算法题,比较有意思,欢迎大家讨论
问题的来源是帮一个朋友改数据库,要求是这样的,60个题目,总分是100分,正确答案的分值有2分的 1.5分,其中分值的排列关系是随机的,请问如何设置答对题目,使得答题总分刚好为一个数值,如82分我的解决办法是:用一个集合记录判断是正确的2分题,当发现期望总分和当前累加总分差值小于1.5时,因为最小单位是1.5,在2分集合中退出一个正确的2分,然后继续遍历下去虽然后来用上面办法解决了这个问题,...
2007-10-02 05:13:00
1812
1
TDD:mock还是build
记得我以前写过一个文章是有关于4层web结构单元测试的,今天打算对TDD的环境问题重新讨论一下。我当时的4层结构的单元测试时间上是从DAO到Service到Action再到JSP一种渐进测试,但是的想法是,先测DAO,那么Service对DAO的调用就有保证了,测试了Service,那么action调用service就有保证了。。。这样一层一层下来,我每层测试的目标也就达到了。这里其实我用了...
2007-09-13 00:40:00
237
mingle使用小记--agile项目管理工具
这篇文章不是用来讲mingle的使用方法的,是来发表使用mingle一个月的使用感受。由于mingle的操作十分简单,方便,有兴趣的同学可以自己下载一个并可以参考官网的flash。官网地址:http://studios.thoughtworks.com/mingle-project-intelligence基本感受:Anything is card!所有操作都是基于卡片的,也就是说一个项目...
2007-09-11 22:10:00
520
功能还是任务--制定敏捷计划
前些天对需求讨论确定后开始制定计划安排。根据最近对agile的一些体会我这次制定计划是这样的:1、根据需求的功能点定义,把需求纵向切割成一个个较为独立的story,然后把这个story归入到计划中。解释:对于一个story来说,所有的分析、设计、实现都是由一个开发者来完成的。当然在开始实现前对于一般的设计都是要一起讨论的这时候story可以确立的基本属性有:title(标题)descrip...
2007-09-10 12:08:00
353
项目还是产品——需求之争引发的思考
周五开需求讨论会,当讨论到其中一个需求功能点的时候我提出了这样一个问题:这个需求在文档之中只表明了what,而没有说明who和why,所以我希望能够说明另外两个基本要素在我开来,一般一个需求都包含三个基本要素what who whywhat 是指这个需求的内容是什么who 是指这个需求是由谁提出的why 是指这个需求提出的目的是什么当时我的老大在听完我的提问后,略为的思索(估...
2007-09-09 14:33:00
143
mingle让我崩溃的一天
今天真的是和mingle干了一天,一直在搞mingle的中文编码问题,coder的书呆子气又来了,总是想不解决问题不罢休用开始一直在调试mingle与mysql的整合,查找了好就mingle连接mysql的地方,但是始终没有找到正确的配置文件然后开始想换一个数据库,用postgre,结果发现安装时到最后一步导入模板时出了问题。NativeException: org.postgresql.uti...
2007-07-23 09:48:00
211
mingle - XP template
mingle继续试用中,下面是XP模板中的相关属性,比较Agile模板而言,我觉得XP模板更加简洁好用一些,都最关心的一些属性Iteration: 迭代周期Owner: 这个card的所有者(不清楚是指story的所有者还是开发者)Priority 优先级 Critical紧急的/Essential基本的/Nice to...
2007-07-22 18:03:00
154
mingle- Agile hybrid template
终于获得了期待已久的mingle了,简单使用之后真的有惊叹的感觉,没有让我失望。而且还超出了我的想象(内存的耗用也超出了我的想象,300m,太夸张了,我觉得这是mingle在正式版之前需要重要解决的一个问题)我主要简单试用了mingle的3个工程模板(Agile hybrid,XP,scrum),从体验来说,mingle本质都是基于story card的管理了,3个模板只不过是对story的不同展...
2007-07-19 17:01:00
193
dwr reverse-ajax 实例解析
在网上找了一个老外写的dwr reverse-ajax的例子,自己把coding顺序调整了一下希望可以对学习dwr reverse-ajax的朋友有所帮助1、首先要下载dwr 2.0 地址 http://getahead.org/dwr/download2、在web.xml中加入dwr的servlet和相关配置 <!--dwr servlet--> <servlet>...
2007-05-19 06:48:00
215
找了一天的jsp格式化工具,最后还是用回workshop
开始就是觉得workshop的jsp format工具不好,所以决定找一个更好的jsp format工具先看看workshop format后的jsp文件<form name="resourceList" method="post" action="?"><input type="hidden" name="fwcid" value="resourc
2007-05-06 09:40:00
225
根据name调用getName方法
问题是这样的,我看到原来有一个方法是根据name的名称调用getName()这个方法。然后方法的实现是使用字符串的判断来实现的代码如下:public Object getOrderby() { if (ORDER_TITLE.equals(this.ordered)) { return getTitle(); } else if (ORDER_R...
2007-04-12 07:36:00
397
tiles也是大小写敏感的,bs一下workshop
一个上午都耗费到一个字母上了本来是页面发ajax请求,异步处理后返回到页面上。但是最终的返回页面总是为空。。。结果从js代码开始debug,一直到最后在页面上设置breakproint进行debug结果最终发现:原来是在tiles中一个字母的大小写错误了,所以tiles一直返回空页面。这里bs一下我的开发工具workshop,既然tiles是大小写敏感的,你就不应该在建立tiles和页面关系时忽略...
2007-04-06 05:51:00
128
重复的变量定义
有过开发经历的人都知道在一般的开发中变量名的定义是一个痛苦的事情从数据库,到持久缓存(如hibernate的实体bean),到显示时的渲染缓存(Render Data Object),再到页面表单(FormBean),以及最终jsp页面的使用。。。。有很多变量名的定义就是在这些层中copy来copy去,稍微一不留神就出错了有没有什么办法可以直接贯穿这几层(需要考虑数据类型的转换),毕竟在开发中配置...
2007-04-05 09:33:00
356
HANDS UP
昨晚开始不是很烦这些尖括号了,应该是状态回升的表现。然后总结了一下,觉得还是自己的问题造成了方法的迷失。来到新公司后觉得什么问题都能自己解决,所以天天在埋头看代码。这样有个好处就是可以了解到一些细节,但是最大的问题就在于很难很快的切入问题!而且在代码的海洋中,业务代码和框架代码混合在一起,所以加大了代码的阅读性。所以,今天开始我要hands up,汗一下自己,崇尚agile却忘记了hands up...
2007-04-04 02:29:00
133
没有状态,烦!
两个礼拜了,还是看见jsp,xml就莫名其妙的烦。在一个个尖括号中找一个个字母的找变量,更是痛苦。但是烦也不能不做事啊。。。项目进度不能等你状态好坏的,所以继续看尖括号吧rocket 2007-04-03 12:27 发表评论...
2007-04-03 04:27:00
68
如何逆向开发
以往的一个软件项目都是需求分析完成之后就进入了业务模型设计阶段,然后有了业务模型在进行业务抽象后的开发,业务逻辑,处理逻辑,渲染逻辑,最终展现这样的过程是我们做软件经常经历的。在这个过程中我发现一旦到展现层发现问题时就有可能要牵动到业务模型的重建!!!这种事情发生是经常的,而且耗费成本的。所以我在想,如何使用agile能够达到一种自底向上的开发流程,就是从展现层(页面)发起,根据需求做出也面,然后...
2007-04-03 01:18:00
1158
一个石头故事
一个石头碰见了一个钻石,喜欢上了它,就不顾一切的和钻石走在一起,一路上觉得光彩眩目,却总觉得越走越不平坦。有一天他看到了镜子,发现自己身上已经是坑坑洼洼的,原来钻石的硬度,已经让自己失去原有的形状。于是他和钻石分开了,孤独走着,一天碰见了一个鹅卵石,它们就结伴而行,走着。。。走着。。。石头觉得越走越顺畅。向身边一看,身边的鹅卵石已经变成了一块圆润的玉石,透过玉石的反射,他惊奇的发现自己也已经圆润透...
2007-03-31 04:59:00
217
框架学习新体会
最近在新公司学习一个新框架:UMA,是Cloverworxs的,不是开源项目,也不是商业项目,所以google上是找不到的这个框架是老美设计,感觉他们在逻辑的抽象上功底更强一些,这个应该和软件开发的大环境经验积累有关系吧。首先先他把一个request发给controller,controller根据service(service是使用spring加载的,主要用于封装handler和target)把...
2007-03-31 04:41:00
262
agile的一个思考:穿刺
今天看书发现了一个小细节,就是在项目前和开发中会进行一种穿刺(sprike),就是最快速的对某些需求目标进行一次探测开发,穿刺过程中的代码一般是无用的,因为开发时为了快速没有考虑扩展性。但是这种操作并不是无用功,而是快速的对目标进行一次试探,来预估一下要实现目标的代价是多少。有点像中国武侠中的投石问路。呵呵。也许是没有系统的了解过agile吧,所以看到这个问题比较感兴趣,因为以前在agile实践中...
2007-03-23 08:41:00
1930
edtftpj的中文编码问题
这不知道是第几个中文编码问题了,可能有的朋友已经遇到过,不要拍砖,我这里就当是一个问题记录了:ftp = new FTPClient();ftp.setRemoteHost(host);ftp.setControlEncoding("gb2312");这里的setControlEncoding方法是指把从服务端获取的信息编码,我这里需要的是gb2312,使用时需要根据具体需求指定编码另外再记录一个...
2007-03-21 07:38:00
260
又换工作了,为什么要说又呢:)
公元2007年3月13号,我终于办完了离职手续,离开了easou,离开了相处9个月的同事们不舍,期待,无奈,兴奋。。。种种滋味聚集在了心头告别过去,迈步向前,我继续向我的目标进发rocket 2007-03-14 17:37 发表评论...
2007-03-14 09:37:00
76
单元测试究竟是测试什么?
昨天在公司内部开会,分享我的单元测试经验,当我在提到有关dao的增删改操作一般是直接使用HibernateTemplate的相关方法,所以没有必要对相关dao方法进行测试时。public void saveComment(CsComment comment) { getHibernateTemplate().saveOrUpdate(comment); }就此引发了一场争论,有...
2007-02-07 06:41:00
163
taglib单元测试
不好意思,最近由于在赶项目所以这篇文章今天才有时间写出来首先讲讲taglib的使用目的,只有明确的使用目的我们才能写出明确的单元测试通常我们自定义的taglib都是为了根据一些参数达到我们需要view层样式,在我的项目中一般比较少的使用自定义标签的body形式(body一般是为了通过标签达到框架级的页面结构),因此,对于一个taglib来说它一般要做事情有:1、获取参数2、根据参数获取结...
2007-02-06 18:16:43
102
DAO单元测试
今天我将展示一下我是如何在实际中对dao进行单元测试的首先我们来确认一下dao需要什么样的环境,我的dao是用Spring+hibernate来构建的,而对应的数据源是oracle9。所以要进行dao的测试我需要从Spring的连接oracle的context中获取dao的实例出来,这里我使用的是spring-mockspring-mock使用比较简单的,只需要设置spring的配置文件路径就...
2007-02-06 18:13:32
300
taglib单元测试
摘要: 不好意思,最近由于在赶项目所以这篇文章今天才有时间写出来首先讲讲taglib的使用目的,只有明确的使用目的我们才能写出明确的单元测试通常我们自定义的taglib都是为了根据一些参数达到我们需要view层样式,在我的项目中一般比较少的使用自定义标签的body形式(body一般是为了通过标签达到框架级的页面结构),因此,对于一个taglib来说它一般要做事情有:1、获取参数2、根据参...
2007-02-06 09:46:00
83
DAO层单元测试
今天我将展示一下我是如何在实际中对dao进行单元测试的首先我们来确认一下dao需要什么样的环境,我的dao是用Spring+hibernate来构建的,而对应的数据源是oracle9。所以要进行dao的测试我需要从Spring的连接oracle的context中获取dao的实例出来,这里我使用的是spring-mockspring-mock使用比较简单的,只需要设置spring的配置文件路径就可以...
2007-01-16 16:59:00
1801
4层结构的单元测试构架
通常我们的bs模式应同都是5层构架体系的:DAO BL Action Taglib JSP在这5层之中,只有jsp是非java代码的,所以也是比较难以进行单元测试的一层而且jsp作为表现层来说呢,通常变化也比较大。所以对jsp编写代码测试的代价要远大于人工直接对页面样式进行测试。这篇文章主要将针对除去jsp以外的另外4层相关单元测试的基本框架进行了一些讨论:首先我们要在单元测试前问自己...
2007-01-16 00:37:00
108
4层结构的单元测试构架
通常我们的bs模式应同都是5层构架体系的:DAO BL Action Taglib JSP在这5层之中,只有jsp是非java代码的,所以也是比较难以进行单元测试的一层而且jsp作为表现层来说呢,通常变化也比较大。所以对jsp编写代码测试的代价要远大于人工直接对页面样式进行测试。 这篇文章主要将针对除去jsp以外的另外4层相关单元测试的基本框架进行了一些讨论:首先我们要在单元测试前问自...
2007-01-15 16:42:00
255
agile实践:storycard
最近开始在项目的新迭代周期采用agile,所以打算使用传说中的地story card在网上找了好久story card的模板,最终找到一个比较通用一些的模板这个模板是主要分storycard和taskcard两块story cardtask card这两张卡片把需求和任务分开了,这也是一般项目的做法但是实际在项目中我并用不着把这两层区分的很详细,所以我把两张卡片合并成了一个&l...
2007-01-14 23:32:33
183
agile实践:storycard
最近开始在项目的新迭代周期采用agile,所以打算使用传说中的地story card在网上找了好久story card的模板,最终找到一个比较通用一些的模板 这个模板是主要分storycard和taskcard两块 story card task card 这两张卡片把需求和任务分开了,这也是一般项目的做法但是实际在项目中我并用不着把这两层区分的很详细,所以我把两张...
2007-01-14 15:38:00
250
agile+手机搜索 home.easou.com
新手机搜索构架上线欢迎大家用手机公测(或者用opera):home.easou.com有问题有意见都可以随时告诉给我 开发过程采用探索中的agile方式:迭代+TDD+结对在加点点重构 每两个星期将会有一个新版本上线,下一个上线版本是新闻、两性的搜索...
2006-11-29 22:52:00
156
agile的新认识
Image: agile的4个基本实践周五晚上培训,老板给我找来了thoughtworks的两个agile的实践者来讲讲agile听了两个顾问对agile的讲解,以及他们以他们团队为模型来介绍他们是如何实践敏捷开发的发现自己原来对agile的理解都是比较片面的,所以这篇文章是对那天晚上学习到一些敏捷方法的总结<......
2006-11-26 13:23:42
153
使用filter加url参数
最近遇到一个问题,要在一个wap应用中所有请求的URL地址都要加一个ox参数我不想在每一个页面都去改动url的连接地址于是我就动起了filter的注意开始的做法是这样的:先从request中取得url,然后给url加上参数,之后用response.sendRedirect()的方法跳转到修......
2006-11-11 15:16:29
883
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人