自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 eclipse3.7 对于rcp开发的增强的一个功能

1. eclipse到现在为止对于运行时的rcp配置有一点一直感觉不太好,就是不能直接根据product的配置来选择运行时刻的导出信息,新版本的3.7也是如此,不过eclipse上已经将其作为一个bug提交,参见这里:https://bugs.eclipse.org/bugs/show_bug.cgi?id=326059(这里说到了可以打上一个补丁,只有3.7能打上这个补丁)如果在团队开...

2011-07-26 10:41:17 187

原创 我对工作流开发的理解

今天看了各个公司的工作流很有感触,感觉大家做的东西都不是很好,还是那句话“要么做最好的那个,要么做第一个”,我觉得如果将工作流这部分做好的话,应该可以将其卖出去,平台这部分各个公司现在看来都做的不错,但专注于工作流这部分可能有待提高,平台我个人感觉像组件这种还是很容易做,而且做出来的产品也都不错,关键是这个东西没啥技术含量,看看大家都在做就知道了,但是工作流因为应用面较广,所以就变得不好做,关键是...

2011-07-05 11:57:17 240

原创 Apache common collection CollectionUtils 中的一个BUG

CollectionUtils中的removeAll方法存在bug,它应该调用的是ListUtils的removeAll方法,可能是开发人员迷糊了一下,应该是个bug,我今天已经给apache写了一封信了。。看了collection中的其他类,有些类还是相当厉害的,主要是思想比较好。比如Closure这个类,有点像cpp中的STL中的算子的概念,已前cpp中经常见到对for_eac...

2011-05-17 11:51:49 226

原创 开源软件多得让我无从选择

我感觉现在开源软件很多,多得有时候自己都不知道要选那款开源软件是最好的。就是说,很多开源软件确实做的很不错,但是这些开源软件都不能完完全全的应用到我的项目中,这很尴尬,因为我需要对他进行改造,有时,我发现这些开源软件某些地方做的不好,或者说不符合我的这个领域,或者说在我的这个领域,这个开源软件的工作方式换一种的话,可能会工作的更好,所以我需要了解开源软件的原理,包括他的源代码,工作原理,并...

2011-04-29 17:46:59 213

原创 GCJ2011又要开始了

2011的GCJ要开始了,bless一下今年能拿到T-shirt,哈哈。不过时间在周末,家里又不能上网,所以真是杯具,估计周末只能跑到公司做题了,杯具!!!

2011-04-25 10:04:37 108

原创 在RCP中整合版本插件的一点体会

需要注意的在自己的RCP项目中新建一个项目时需要注意不能将之前已经创建的工程信息随意删除(删除时会删除一些版本管理的特定信息,程序中,需要根据工程存在的不同情况做判断),否则在重新打开RCP后无法将之前已经纳入版本管理的工程自动的纳入版本管理。...

2011-04-15 17:16:53 123

原创 ResourceNavigator使用的一些注意点

ResourceNavigator使用的一些注意点:需要注意的是导航器视图的TreeViewer中的标签提供器用了装饰器,因此,这里要注意的是,在直接整合导航器视图到RCP程序中时,需要自己提供一个标签变更监听器,然后根据发生的变化及时的刷新树。该标签装饰器中比较恶心的一点时,标签装饰器在后台渲染一副图像,并且这种渲染是异步的,因此,会导致在getIma...

2011-04-15 17:03:32 120

原创 第一次profiling

原来以为是程序中某个地方内存对象一直占用而没有得到及时的释放,我用JProfiler tunning了半天,一直没找到具体的原因,后来查看操作人员的日志,,发生堆空间溢出的地方不同,在代码中有多处存在,但后来经过分析,这些地方的共同点是在new一个对象(包括对象数组)时,发生了堆内存溢出,这个问题对我来说不是难事,肯定是程序中产生了大量的对象导致,关键就是确定在什么地方导致了大量对象产生,...

2011-03-25 17:40:58 111

原创 关于rcp插件加载的一个提示

今天建立了一个新插件,然后在原插件中引用了该新插件,但是启动product时却发现找不到该新插件,后来弄了半天,终于搞明白了,必须在启动的时候将其配置到输出插件中这样才可以找到该新插件。...

2011-03-25 17:26:32 153

原创 关于eclipse加载bundle的问题的一些讨论

这两天主要是为GMF的环境的事情弄的焦头烂额,问题很多,而自己一开始的时候没有注意到这些问题(尤其是插件之间的版本的依赖关系),导致弄了很长时间。首先说明我碰到的问题:1.application id not found.2.找不到对应的bundle问题.主要是围绕这两个问题查了很多资料,原来不了解osgi,后来查了osgi相关的概念,总算理解了一些,但是当时问题还是没有解...

2011-03-11 17:15:05 748 1

原创 RCP程序中提示无法访问直接访问某个类时的解决办法

当提示无法直接访问类时,可以在插件对应的manifest中直接加入类所在的bundle名称.,如果还不行,还要检查要import的bundle是否export了对应的package。目前我对osgi还不是很了解,但我估计这是osgi的某种机制。看来学好RCP,对osgi的了解是必要的。...

2011-03-09 17:35:10 133

原创 java Windows平台下的中\t的陷阱

通常情况下,我们测试某一个代码的时候,会新建某个目录,经常我们会命名testXXX,然后我们会将测试的资源放入该文件夹,在程序中我们硬编码加载该文件夹中的资源,但是很奇怪的是我们有时加载不到该资源,路径检查了很多次,都是没问题的。tricky的地方就在于能够\t是转义字符,而且eclipse中只有在输入值发生编译错误时能够提示错误,而此时testXXX是字符串是不会出现编译错误的,因此此时...

2011-03-09 17:25:57 150

原创 SRM 499 DIV2

250的和500的偏简单,就不说了,500的想明白了很简单,代码如下:[code="java"]import java.util.Arrays;public class ColorfulRabbits { //easy problem! public int getMinimum(int[] replies) { int ans=0; Arrays....

2011-03-09 17:00:43 96

原创 程序设计上的思维定势

今天在TC上做题,500pts的题目不难,但是陷阱很多。很多时候我们判断条件边界条件时会用-1来判断,但是如果-1值本身也是在结果集中,就不能再将-1值作为边界的条件了。但是因为经常写程序时-1是作为一个定界的值,久而久之,就会习惯性的使用该值作为判定条件,而不会的去仔细的检查该值会不会出现在结果集中。这大概是程序设计上的一种思维定势吧。 教训就是:不能想当然的解决问题,任何程序...

2011-03-01 09:45:11 179

原创 半年的工作总结

来公司半年了,工作一直没什么进展,想写的几个软件没写成,想学的知识没学成,想做的事情没做,想看的几本书没看完成,基本上照这么下去,我就废了。还是晚上回去要好好看几本书。...

2011-02-18 17:42:02 99

原创 关于软件安装的可用性的一点想法

好几次安装了公司的软件,但是还是感觉不好用,关键的地方在于很多时候操作失败了,比如安装过程的初始化数据库的时候,如果数据库初始化失败,但是在数据库中依然存留了之前脚本创建的表,这样很容易在数据库留下了垃圾数据。另外一个感觉不好用的地方是软件的安装程序,windows based的安装软件做的好的,都有一个功能,比如之前已经安装了某个软件,但是这次你想添加某个软件的功能或重新做一遍初始化的操...

2011-02-17 17:10:57 127

原创 TreeMap中使用的陷阱之一

今天做TC,用到了TreeMap,用到了其中的一个方法pollFirstEntry(),但是发现这个方法是since 1.6的,而TC只支持到1.5的jdk,我试着改为先getFirstEntry().getKey(),然后对这个key做了一点操作,然后再remove(key),然后再put(key,value),结果发现pollFirstEntry能得到正确的结果,但用后一种却得不到正确的结果,...

2011-01-28 10:59:40 114

原创 关于创业的看法

毕业的前几天一直和dirty同学谈过创业的问题,dirty说:要知耻,不能让人看不起,要不断的学习。这半年来感觉没什么进展,有时候感觉大家都是在那混口饭吃,没有人和我有同样的想法,有时候如吴军研究员说的,找到一个志同道合的人还是蛮难的,stanford有那种环境,但我我没处在那种环境。想想自己,还是先做打工仔的好,还是想做it farmer的好,但有时候,想做一个好的farmer也...

2011-01-25 10:10:56 142

原创 关于数据模型的组织问题

有时候看bad code也是一件好事,至少能刺激自己多想一些问题,这几天最大的收获就是对工程中的数据有了比较深入的体会,其实组织数据模型还是需要很强的功力的。数据模型的组织我觉得有以下几点比较重要:1.模型的架构(这个很难,包括数据结构etc)2.数据的缓存与备份。我感觉如果不是做分布式计算那种,或者cache那种为了提高性能,保存多份数据不是一个明智的做法,因为你得解决数据的同步...

2011-01-25 09:56:49 221

原创 关于git与cvs的几点看法

首先我觉得GIT确实好用,二者之间有些概念是相似的,GIT相比CVS来说,确实有很多优势。不过GIT很多地方确实比CVS要快,首先体现在分支的快速建立上,确实快速很多。因为GIT建立的分支代价是相当的小。代码的提交上GIT确实也快很多(抛开网速,服务器性能的原因),因为它是直接比较快照的,代码差异比较更快更容易,唯一疑惑的地方是它是基于SHA算法做摘要的,但是目前据说SHA...

2011-01-21 12:25:18 194

原创 最近要读的书-2011-1-21

mar一下,给自己定格目标,很多书目前都没读,应该趁这段时间赶紧将其读完,然后徐图发展。应该要读的有以下几种类型:1.计算机基础书籍:算法,设计模式,计算机底层os,编译器的知识。2.专攻某个方向的知识:如分布式系统,信息搜索这块的。我最近发现自己对信息搜索这块有一些天赋,O(∩_∩)O哈哈~、3.工具的熟悉,现在的程序员不可能不用工具来做开发,既然有工具可以让事情变得...

2011-01-21 11:04:47 100

原创 关于软件工具的看法

之前和dirty同学聊过这个话题:开源世界的工具有时候多的我们无法选择,无从下手选择哪个工具好,有时候工具多了并不是件好事,并且每个公司的情况不同,有时候每个工具不是拿来就能用的,我们需要对他进行改造。最近发现公司的测试用例库没有创建,积累太少了。想选一个测试用例管理工具,可是有些工具不是太复杂(需要增加学习成本,还有些可能是收费的),就是比较不适合公司本身的情景,自己想写一个,不过简单够...

2011-01-21 10:32:21 98

原创 应该给自己定一个方向了

自己感兴趣的有两个方向,一个是图形学,还有一个是信息搜索机器学习这块,但我不知道应该专注哪个,但肯定不能都专注,那我就没时间都学完这两门所有的东西并且将其贯通了。当然计算机的基础课程还是要学的,比如继续加强coding能力,继续加强对软件工程的理解,继续加强算法能力,继续学习底层的技术,数据库,os等。...

2011-01-20 16:24:13 85

原创 关于软件测试用例库的一点看法

关于测试用例库我有几点想法:1.首先我们代码库的代码经常是非常丑的(所以我才需要不断的重构)。2.每次测试时如果我们能够保存一个测试用例将是非常好的一个习惯。首先从代码上看,应该说每个测试用例对应了代码的一处地方。因此实际上就将代码与测试用例关联起来了。3.如果我们坚持构建测试用例库,好处如下:a.测试用例库对所有的组内成员开放,所以,不单是测试人员能够做测试。...

2011-01-19 17:18:43 454

原创 代码之丑1的思考

这篇文章让我想起了软件工程中的一个重要原则:职责驱动设计。对于架构师来说,可能是在架构层面做这种规划,在往下细分到程序员,对于程序员就是在代码层面做这种规划了。不同的人有不同的关注点,但本质都是一样的:简洁,有效,可靠,职责驱动。...

2010-12-30 11:12:08 182

原创 代码之丑8的思考

代码之丑8这篇真经典,对于很多程序员来说很有价值。实际上他谈的是程序中的不一致性导致的程序本身的含糊,这是非常危险的。我最近比较大的体会就是软件中不一致性(如同软件工程中文档或规范的不明确)会导致大量的问题,这种代码中不一致性导致后期维护的程序员不能够快速的重用既有的代码。郑老师也说由于本身前期项目的原因,有人会说改变这种现象代价很高,我觉得这是一种权衡,如果现在不做断臂的...

2010-12-30 11:07:44 91

原创 Override在1.5不能用于接口中的方法

今天改了eclipse中的compiler level,发现原来在接口中的Override 注释都报错,原来是1.5与1.6在这个地方有区别,1.5不支持在interface的方法上加Override ,1.6修正了它改为了可以在实现interface的方法上加这个注解...

2010-12-30 10:23:23 96

原创 今天刚看了中国的富豪排行榜

看了今天的富豪排行,我觉得有点悲哀。中国能上线的富豪很少有科技出身的(比如前十位),但美国就不同,盖茨和甲骨文的那个哥们排在前两位,咱们国家和人家比一比,确实层次差了太多。我感觉目前中国发展实在不正常,房地产就是一群人吸血的工具。。。。我不喜欢中国的上线中的几个人,尤其是gtm,整个一OEM大王,和huawei的rzf比起来骨气可差多了,不,应该说,这两个人不能放在一起比较...

2010-12-30 09:08:41 160

原创 TreeMap代码也读了

今天看TreeMap的代码,发现里面用的虽然是搜索二叉树,但又用到了平衡二叉树,是RB Tree!Cool!

2010-12-29 15:16:01 94

原创 LinkedList源代码

LinkedList源代码我也看完了,我感觉还算比较简单,就是指针指来指去的有点绕,弄懂了就不难了。不过竟然还让我发现了1.6中还增加了一个降序的迭代器。cool。。。...

2010-12-27 16:41:39 77

原创 LinkedHashMap源代码解析

LinkedHashMap源代码比较简单,由于LinkedHashMap继承自HashMap,Hash和存放那部分操作和HashMap是相同的。只要看懂了HashMap那部分代码,这个都不难看懂。唯一与HashMap的区别就是在里面还维护了由header构成头指针形成的一个双向链表。每次addEntry和remove的时候要维护这个链表。唯一困惑的地方是containsValue那...

2010-12-27 15:57:36 95

原创 代码之丑4的思考

这篇文章说的其实是重复造成代码的code smell,这点深有体会,现在的项目中之前的程序员很多地方都是拷贝黏贴,造成大量的重复,这样其实坏处很多:1.代码code smell加重,代码显得冗余啰嗦,为以后的代码阅读和维护人员造成不便。这一点正如郑老师讲的。2.代码膨胀(记得看过云风的blog,他说大话的核心代码只有10w(?)左右),现在很多项目本身不是特别大,但代码却非常多,这...

2010-12-27 10:06:58 185

原创 代码之丑3的思考

这篇文章的核心思想实际依然是对语句块的一种重构,其实简单来说,就是郑老师说的写代码不能平铺直叙,这样写代码是体力活,简单的运用一些编程技巧其实会很是代码简洁干净很多。其实我觉得要真是用体力写代码的话,不但自己以后维护代码体力,关键是让接手维护代码的人感觉更体力,而且这种体力是成倍的增加,以为代码多了,代码乱了。...

2010-12-27 09:54:11 166

原创 代码之丑6的思考

第六篇文章里其实讲的是核心思想就是要将变量的声明与使用尽量放在一起,这其实很有道理,这样才能便于查看在函数使用的地方变量在哪里初始化与声明,更容易的阅读和控制代码。之前项目的程序员应该之前用过c,将所有的变量放在函数的起始地方进行声明,我觉得这样非常不好。正如郑老师讲的,如果出现大段的变量声明与使用分家,实际上很可能意味着这个函数需要重构为更小的函数。最后一句话我觉得说得很...

2010-12-27 09:48:41 151

原创 关于代码之丑9的思考

最近一直在关注代码之丑系列的文章,郑老师之前开篇说的挺有意思,之前有代码之美系列的文章了,因此他准备写些关于代码之丑的文章,很精辟,就像模式与反模式的关系一样。看了看,觉得很有收获。第9个讲的是是否允许多层缩进的问题,很有启发。不过我觉得多层缩进的造成的问题其实是代码变得很乱,实际上可能造成单个函数体很大,郑老师这篇文章其实核心的思想还是说需要将函数进行拆分,否则大段的语句...

2010-12-27 09:35:08 201

原创 关于类库函数设计中的一点哲学

在类库中很多函数设计很巧妙,至今我还在体会他们的设计哲学是怎么样的,比如关于LinkedList的,里面有一个函数:[code="java"]public E getFirst() { if (size==0) throw new NoSuchElementException(); return header.next.element; }[/code...

2010-12-24 17:00:01 97

原创 LinkedList中addAll(int index, Collection<? extends E> c)函数分析

[code="java"] public boolean addAll(int index, Collection

2010-12-24 16:33:21 653

原创 对LinkedList源代码中entry函数的一点启示

看下entry的代码:[code="java"] /** * Returns the indexed entry. */ private Entry entry(int index) { if (index < 0 || index >= size) throw new IndexOutOfBoundsExcep...

2010-12-24 16:24:07 99

原创 git使用讨论

git这个工具说是分布式的,但我看了看,很多地方还是值得商量的,不是每个公司就一定适合拿这个工具来作版本管理,就拿所谓的分布式来说吧,其实很多公司还是做的是集中式管理(特别是很多小公司,中型公司也有),就是基本上整个开发部门地点比较集中,我觉得从管理上来说集中式的那种版本管理可能更好,不用所谓的分布式,而且git目前我感觉可用的第三方工具不是很多,而且大家这么几年都习惯用中式那种版本管理系统,如果...

2010-12-24 12:00:43 110

原创 ArrayList源代码分析

有一个比较Tricky的地方是toArray方法,看下面的代码:[code="java"]public T[] toArray(T[] a) { if (a.length < size) // Make a new array of a's runtime type, but my contents: return (...

2010-12-23 10:28:03 68

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除