- 博客(31)
- 收藏
- 关注
原创 Some comments of RMI
1.About Stub: java.rmi.server.RemoteStub is a class that implements the Serializable interface. The RMI serialization mechanism knows that whenever a remote server is "sent" over the wire, the s...
2011-09-30 15:35:43
153
原创 由一个team内的code merge问题引发的思考
stand up meeting上,几个做同一模块的同事都说到merger代码很头疼,花费了很多effort,有同事重构了sub module依赖的base code, 有多位同事修改了相同的文件。SCM为CC,每个人有自己的sub-stream 和view。 简单看一下,问题很common,每个人闷头做自己的task, code merge的频率小,UT滞后于source code。比...
2011-09-16 15:59:24
328
原创 Fitnesse for designer
对于design,当前我们存在这样的问题:test code够不完善,有bug不好发现,发现了不好定位,改完了可能引发其他问题而test code能够跑过。 这个想想以前定义的关于“root cause”和“code coverage improvement”的story应该可以了解。 Fitnesse用于regression testing, daily-build integra...
2011-03-23 11:29:50
147
原创 软件开发工程化、过程化与量化的思考
“软件工程”这个词由来已久,今天忽然感觉有些别扭,记得在某本书里好像看到该词来源于建筑工程,而当前的软件行业中很多情况下很难用“工程”一词来形容,或者说,当前的软件开发现在很难用笼统的过程来定义,比如“需求分析、概要设计、详细设计、开发、测试”。 当然,由于敏捷的概念越来越被人知晓,传统的瀑布式模式已经部分的被不少公司抛弃,但行业中一些人们的思维习惯有时仍然摆脱不了“工程”的影子,总...
2011-03-18 11:24:51
248
原创 简单设计与简化流程、简化管理
敏捷设计中有一条原则是:简单设计,够用就好. 反观我们所在的公司的管理,其实也有类似之处. 经常有这种情况:一天的工作中时不时的要被与当前工作无关的事情打断,再回来继续自己的工作时,思路已经不在了. 尽管当前已经有不少公司在实施敏捷的实践,但做到公司级的恐怕寥寥无几,我有时把outlook关掉,但有些"事情"又容易被误解. 现在想来,有个愿望不知能否实现: team在一天的某个时间段...
2011-02-12 16:16:09
343
原创 重构与framework生成的思考
这段时间一直在考虑重构与设计模式。思考了些东西,暂时写下来。 不少人对agile team的code的设计不满,这是真实的现实,我也是。因为前期对于framework之类的设计一般不会投入过多,这没什么问题。但问题是agile team需要重构,而由于种种原因,重构没有有效进行,这会使得设计变得逐渐混乱。 一种做法是找一段时间,大家一起基于framework重构,这有些危险,尤其是...
2011-01-27 09:42:08
99
原创 利用重构降低圈复杂度(Cyclomatic Complexity)
什么是Cyclomatic Complexity,以及其计算方法,这里不做讨论。圈复杂度可以用PMD(http://pmd.sourceforge.net/)分析出,它有相应的eclipse plug-in。一般我们会用重构来降低圈复杂度,重构办法有:1、Extract method2、合并条件分支,合并后可用boolean变量来替换条件分支中的语句。例如: //合并后...
2010-09-06 16:53:01
820
原创 讨论一下敏捷中关于task和sprint的速率估算吧
我接触到一个scrum team, 在拆分story的task时,按照如下规定:1、一个工作日的理想工作小时为5个;2、story point总数量乘以3(3是team的经验值),即是这些story总的要花费的小时数。总的小时数除以5即得出要花费的天数。对规定1,我不反对;对于2,这个team这样做的目的也许是为了计算作完一个项目需要的时间,我认为笼统的乘以一个常量得出“理想”小时...
2010-09-06 16:30:55
847
原创 为什么还在用clearcase
进入公司后,开始接触clearcase,之前用过VSS、CVS、SVN。我是一个比较懒的人,也是一个不太爱钻研这类工具的人,单纯从一个coder角度说,clearcase用起来太麻烦了。网上对此有不少争论,我也不想说太多。现在进入了一个用敏捷开发的team,clearcase还在使用,每次只能rebase才能看到别人的代码,而提交代码每次都要mkbl、deliver,所谓的team内代码共享没...
2010-06-04 09:47:35
462
原创 抒发一下对煤炭总医院医生的气愤
老婆昨天从医院剖腹产出院了,我当父亲了,本来很高兴的一件事。可想想老婆在北京煤炭总医院这段时间的住院经历就不舒服。 妇产科的陈大夫,叫什么不清楚,态度相当的让人不敢恭维,说话尖刻。有一次老婆向另外一个大夫问了问某项检查的事,那位值班的陈大夫竟然跑过来说:不知道你们是不是有当大夫的亲戚或朋友,你要做什么检查,我们都有安排,你们不需要知道的就不要知道。当时我都想抽她,想想还要在医院待着,就没...
2010-05-07 18:11:27
157
敏捷设计的可扩展性考虑
这段时间在重构代码,这些代码是基于上一版本的,当前版本在功能上去掉了很多,而代码一直没有做大的改动,里面有原因很多基于扩展性而做的设计,现在看起来很多都用不到了,代码也很难看懂,我正在考虑如何简化它们,产生了扩展性到什么程度的疑虑。 一点想法,所谓的扩展性不能依赖于开发者的想象。设计人员在项目开发过程中,需要把技术严格的放到业务后面,加强与客户的沟通,强化自己的业务理解,基于当前业务需要...
2010-04-16 09:43:54
144
The skin does not exist: Unable to determine the release version
昨天在用Maven2.0.9 run mvn site的时候突然遇到了这个error。google了一下,说这是个maven的bug(见http://jira.codehaus.org/browse/MNG-3139和http://jira.codehaus.org/browse/MSITE-228,后面用附件把这两个页面东西粘上了)。 由于用的maven是server上的共用m...
2010-03-11 15:08:41
135
原创 TDD学习笔记
1.TDD源于需求2.TDD促成设计3.TDD与代码覆盖率没有直接关系4.TDD讲究小步快跑,有点增量开发的意思,不要把所有Test case都写完了再去写实现。5.不要在一个test case中写多个或过多的assert...
2010-01-06 16:50:26
166
原创 这种情况下如何应用敏捷提高效率
小组目前的组织形式还是部门中的开发小组的构成形式,小组工作目前基本是维护、升级既有系统,每个人负责一个模块,每个人负责的模块都非常独立,模块间没有什么关系,各成员对其他成员做的模块也不熟悉,但每个模块都会依赖位于异地的其他team的输出,比如jar;每个模块应用的开发技术虽然都是java但具体技术都不一样。团队成员日常工作大部分时间是调查、修改各自模块中测出的bug,或增加新功能。配置管理工具...
2010-01-04 14:55:09
132
有感于今日的Agile Software Development Introduction
上午参加了公司内部的一个Agile入门宣讲,会上简单介绍了Agile、XP和Scrum的一些理论。会上有一些讨论,我对其中的一些问题做了简单思考。1、有人提出:在取任务时,不少团队成员会报出高的时间估计。从一些资料和我的经验来看,大多数开发人员比较激进,估算的开发时间常常小于其实际的开发时间。当然,这也因人而异,具有丰富的估算技术和经验的人会有较为准确的时间估算,这里也不排除,一些开发...
2009-10-30 13:14:36
92
原创 用maven生成Junit test report
看到别人用ant生成了junit test report,而自己的maven2只在target的surefire-reports中生成了一堆的txt/xml文件。打开pom.xml发现:surefire-reports被加在了build中。把这段设置去掉,在reporting中加入: org.apache.maven.plugins mave...
2009-10-27 15:46:17
336
原创 作用域
1.friendly: 当前包中其它所有的类都对其有访问权限,作用域修饰符缺省时即表示是friendly 作用域。注意:在JDK1.5的关键字中没有“friendly”。2.protected: 拥有friendly的作用域,并且,对于含此修饰符的类,其“子子孙孙”皆可访问protected修饰的属性或方法。...
2009-10-27 15:29:30
80
如何写RCP UI 的测试用例
GUI的单元测试困扰了自己很长时间了。以前做GUI时用swing, 写UT时必要的话可以现在构造出一个UI容器来显示要测的UI界面,现在用RCP,很难构造出一个Workbench,以及能够支撑一个bundle的OSGI环境。虽说有时可以借助Mock,但这个工作量可不小。 在GUI的UT中,有时要用反射获取/写入数据或调用私有方法,而许多方法是只能调用而很难验证其执行结果是否符合预期的,比...
2009-10-21 14:52:37
202
代理模式的一点学习
今天看decorator时顺便看了一下proxy,看到了jdk的动态代理,想起了Spring的AOP(spring好长时间没用过了),以前对spring也没怎么深入研究。用动态代理创建一个拦截器,当client调用bean时,把bean指向proxy就可以实现一个AOP,以后有时间看看spring的源码吧。...
2009-10-16 17:34:10
66
从实际出发
记得前几天看到一个关于是否写UT和一个“过度设计”的帖子,结合自己工作中的事情随便说说。 好多武侠小说中有这样的情节,高人教导某大侠:忘掉所有的武功,于是该大侠便无招无式也可胜敌了。记得一本拳经上说“拳无拳,意无意,无意之中是真意”。UT、测试驱动、设计模式等都是手段,我们要的结果是在规定成本内作出符合客户要求的产品或项目。质量,当然是越高越好,高到什么程度,客户认可是底线。 ...
2009-10-15 16:54:10
88
原创 How to close a viewPart in RCP
前几天在工作中遇到需要通过编码将一个RCP viewpart关闭的问题: 在界面中手动点击“X”按钮,执行GC,则viewPart instance count变为0。 通过编码形式时,用dispose()只能将其内容清空,却不能将其关闭;IWorkbenchPage.hideView(viewPart)可以“关闭”它,而通过JProfiler看到,这个viewPart的in...
2009-10-15 16:08:01
129
原创 在Eclipse中使用JProfiler
run程序时,有时由于有很多启动参数,单独再到JProfiler中配很麻烦,可以在Eclipse中利用jprofiler:首先在JProfiler中设置eclipse,菜单Session-IDE integrations;然后在eclipse中的windows -Customize perspective-Command,勾选profile项,就可以使用profile as了,我在eclips...
2009-10-10 10:50:27
293
谈谈关于团队的一些想法
记得曾经的一次面试中,有一道题,大概是这样:你做好了分配给你的工作,会不会主动去做没有分给你的工作。我忘了当时是怎么答的了。公司招聘大多会有一条:工作积极主动。我在工作中也有同事工作很积极,不管是不是自己的工作都去做。领导一般会喜欢这样的员工。 我不太认同这种做法。管理者(或任务分配会议)应当充分罗列出工作内容,并进行合适的任务分配或主动认取。如果有明显的工作内容遗漏,那说明分析与计划有...
2009-09-27 13:44:51
232
原创 Gateway
从Gateway模式的结构图看有点像Facade, Gateway是为阻隔复杂度向外蔓延而生的,它把复杂的实现封装起来,为其他模块或系统提供一个简单易用的接口。 PEAA中提到,Facade simplifies a more complex API, it's usually done by the writer of the service for general use. ...
2009-09-25 16:00:57
125
原创 clearcase在win下创建view shortcut时的问题
在UNIX下创建的view,到win下用clearcase home base进行了Region Synchronizer,然后到clearecase explorer下add new shortcut,总提示“the name specified is not a registered view tag....”。在win cmd 下执行:cleartool startview myViewNa...
2009-09-15 15:51:03
150
原创 dos2unix
从网络上找到的资料,自己尝试了一下,略微修改了部分:windows下的文档上传到solairs下有时会发现每一行多了个^M,那个^M是DOS(WINDOWS)文件上传时没有将回车+换行符转换而产生的。如果使用FTP上传的话,对这样的文本文件,应该使用ASCII方式,这样上传时FTP会根据两边的文件系统的格式进行必要的转换,上传后的UNIX 文件中就没有那个^M了。这就是FTP中那个“P”的作用...
2009-04-16 11:46:52
174
原创 关于Detail Design
上周一个小feature的DD花了我一周的时间!还是 Agile 好啊:写出详细准确的user case,结合UML(class diagram and sequense diagram)和适当的文字说明,适当的代码注释不能少。不过,写DD的过程也是个熟悉框架、代码,并予以完善的过程。 产品框架设计的不错,代码里常用的design pattern、multi-thread用的不少。代...
2009-03-06 23:41:16
115
开发团队关于测试的两个问题
刚才旁听一个组建时间不长的开发团队的周例会,团队大致有20多人,分多个小组,注意到了两个问题:1、指定几位开发人员作为测试人员:由于暂时没有专业的测试人员,指定了几个对业务熟练的开发人员(或小组长)做测试,测试结果提交TD。对于业务复杂的庞大系统,在模块开发阶段没有专业测试人员的情况下,我比较倾向这种方式。2、开发过程中的测试数据准备:记得以前模块开发过程中,对于junit单元测试...
2008-02-23 15:55:48
122
请教工作量估算的问题
本人开发人员出身,做开发小组长有一两年了,对工作量的评估一直头疼。刚接到一个开发任务,要对一个demo根据需求改造以达到为某省上线应用的目的,现在项目组还没组建,只有demo+需求(部分需求已完成设计),不知这种情况下:如何更好的估算工作量,并根据估算结果组件团队,在合同规定时间内完成开发任务?刚看到china-pub上有本书:软件估算--黑匣子揭秘(《代码大全》作者Steve McConne...
2008-02-20 10:34:36
162
基于200607-200708的pro项目的技术总结1:The mistake of layering
公司对包的定义有统一规定,以公司名mycom为最高层,下面根据产品定义不同的包,公司包下有独立的util包,util包可供各产品代码共用。今日发现一问题:当前项目包为mycom.pro,mycom.util中的代码中竟有mycom.pro的import,破坏了mycom.util的独立性与可重用性。记得有本书提到:规则大于工具。值得深思。...
2007-09-03 15:44:04
81
对于刚完成的一个项目的一些总结
项目是个电信类的项目(其实是一个产品),30来个人做了13个月,前后经历了不少人员变动,包括PM和技术总监。我在该team里担任一个开发小组的组长。下面就以自己的认识总结一下这个项目吧: 1、首先说一下人员构成情况。 team里,一个PM,两个副的(其中一个是技术总监,另外一个是分析设计人...
2007-07-08 14:06:03
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人