Archive for September, 2008

public interface RequestProcessorFactoryFactory

Saturday, September 20th, 2008

beans曾经在 reddit 上看到这个 Apache 的 FactoryFactory ,觉得很好笑,只是想,大概这样的名字就是严格按照某些设计模式做出来的吧。不过笑过之后也并没有去细想。

最近自己开始用起 Java 来,因为以前学过这个语言,所以很容易就上手了,之后差不多很多东西都很自然,直到有一天我发现自己不小心做了一个叫做 FeatureCollectionFactory 的接口出来,才觉得似乎是该好好想一想了。

有一些东西,自己以前也时常听到或者看到,但是觉得太“企业级”了或者太“Java”了,并没有去关注。比如 Factory 这个东西,为什么会需要 Factory 呢?我觉得,主要就是因为 new 语句太“死板”了,比如:

Fruit fruit = new Fruit();

这里后面可以写 new Apple()new Pear() 或者是 new Grape() 什么的,但是无论是写任意一个,都必须要作为一个语句写死了,在编译的时候就完全确定了,但是有时候希望具体创建什么对象要等到运行时才能确定。于是就有了 Factory 。

Read the rest of this page »

很鹾的“电话面试”

Friday, September 19th, 2008

因为朋友的推荐,阴差阳错地联系上了 Microsoft Ireland ,之前有两道题目,大约算一种海选的机制吧,很简单的,昨晚之后提交回去就可以了。后来说要约电话面试,最近也比较忙,约了两次在定在今晚十点钟,也就是爱尔兰时间的下午三点。

其实我是好好准备的,因为寝室的电话我都怀疑能不能用,还是只能用手机,准备了耳机线和话筒,纸、笔之类的,常见的我觉得会问到的问题都大致想了一下。可是有一个地方我确实是三番五次地忽略掉了——时间。其实最近几天 MSTC 在纳新,昨天我还在面试别人,一般如果遇到觉得合适的但是预感到有可能会很忙的那种人,我们都会问诸如“你能投入多少时间到社团里来”之类的问题。

Read the rest of this page »

下一个路口

Wednesday, September 17th, 2008

零时迷子似乎很久没有来写 blog 了,大概一眼望去,页面上似乎没什么技术文章,所以一直想写一篇,但是我酝酿了很久很久的这篇文章却由于最近一直在忙一些其他的事情,相关的东西还没有做出来,也一直迟迟不好写。不过还是决定来写一篇好了,关于生活的。

这也算是一个路口吧,一路走来总是这样的。寝室的四个人,一个已经搬到了考研寝室,几乎再也没有见过了;一个在外面实习刚刚回来,屋里的东西还没有收拾好似乎又出门去了,大概是为找工作而奔波吧?一个一边扎入实验室,一边为留洋的 PhD 之路而忙碌;我也在实验室,可是每当我骑车经过林荫道的时候,总是恍惚觉得搬到玉泉来之后,生活似乎发生了一些剧变,然而,更令人不安的是,这就像是暴风雨来临之前的乌云那样重重地压下来,让人有些喘不过气来。暴风雨过后是一篇狼藉还是晴空万里?不管怎样,总之又会是另一个样子了。

最近是 MSTC 秋学期纳新的最后阶段,昨天刚刚面试过了许多新人,许多人都很厉害,MSTC 这个舞台会让他们展示出自己的精彩。所以面试这些人其实也是比较累的了,晚上回来没做什么就直接睡了。可是半夜两点多的时候不知为何醒过来了,一直都睡不着,便起床来开始 coding 。在夜深人静的时候写程序,似乎很久没有过这样的感觉了。直到不知道什么时候发现天已经完全亮了,世界便又开始喧嚣起来。

突然之间觉得前不久看过一篇 blog ,有些感触,便开始找,找来找去,最后发现是石老师以前的 blog 上的一篇文章“真令人伤感”:

真令人伤感,每过几年就是离别时。

我站在窗前,无奈的看着朋友们为了工作奔走,
而不能帮上哪怕一点忙。
就像十年前,就像六年前,就像三年前
就像每一次与人擦肩而过却故意目不斜视。
但这一次也许好一点,毕竟我们以后可能还能时常相聚,
而不像现在只能看着从前的好友的博客独自伤感。
那种陌生,令人心碎。

Read the rest of this page »

程序优化中的测不准原理

Tuesday, September 2nd, 2008

optimize在《The Art of Computer Programming》一书中有这样一句话:

Premature optimization is the root of all evil in programming.

相信大家肯定都已经耳熟能详了,也大都清楚我在“Ruby: 提升性能的几点尝试”中提到的优化程序应该走的基本步骤。虽然如此,这样的情况还是时常发生:花力气把代码大改一番之后发现性能并没有得到什么提升的时候,才开始悔恨自己没有先跑一遍 profiler 。可是如果只是机械地去重复“找出程序热点”、“优化热点”的步骤的话,实际上并没有掌握优化的真谛。

例如下面是我用 Valgrind 分析程序得到的一个结果报告:

Read the rest of this page »