Monthly Archives: November 2008

web架构的典范——eBay的架构。

最近因为一个朋友到eBay缘故,同时因为另一个朋友的要求,开始看一些web开发的资料,看到了这篇对eBay的架构介绍,电子商务的巨无霸——eBay,现有两亿多用户。每天执行260亿条SQL。每周开发100KLOC新代码。早期代码从简单的Perl脚本演进为一个150MB的ISAPI DLL, 三百三十万行代码。成百上千程序员在同一套代码库上工作,最后每个类里的方法数目超过了编译器的上限!后来所用代码用Java重写,部署应用服务器,但大部分代码和J2EE无关。应用层基本上全部stateless bean,有意思,灰常有意思。你可以知道如何从应用和数据库分离->页面缓存静态化->页面片段缓存技术->数据缓存->水平扩展应用服务器。。。。。。让我完全抛弃web开发没有技术含量的偏念,自己实在是太浅薄了。

“国考”回来话”国考”

"国考"全称:中央机关及其直属机构公务员考试。神州大地上越来越热的一项考试,今年创纪录的77w+人参加考试,各岗位录取比例平均都在100:1左右吧,至于海关,国税等衙门更是炙手可热,录取比例基本都在X000:1。为什么这么多人的都想挤进这个队伍哪,呵呵,相信绝大多的同仁都是图的那份安逸和稳定,况且更有不可言说的收入,较高的社会地位。目前中国有7000w+的公务员,比例居世界第一。话说从头,早上,我冒着寒风,奔波了1个多小时,到达考场——甘泉外国语中学,只见校门外寒风中已经哆哆嗦嗦的密密麻麻的站着一片人了。闲话少说,直接进入考试,要说这国考真不是盖的,题目出的是相当有分量,从历史,地理,天文,哲学,文学,逻辑,数学,气候,建筑,计算机(有一题目说U盘格式化后的数据就会全部丢失,问对不对)。我已经很多年没解过那么多的一元,多元一次方程了。这一通算的昏天黑地,负责任的说,有些题目绝对比微软面试难,最终有超过20+的题目,全部选C拿下(媳妇儿居然全部选B),这个累啊。两个小时,140道题,杀人啊!诸位看君,此一测试曰《行政职业能力测验》,看来咱们的公务员都是全才啊!

中午不谈,报摊买了本《程序员》,在肯德基小憩。下午两点,《申论》考试,就是根据材料写官方发言稿,两个半小时,写了三篇小作文,一篇大作文,共计码了2000+的汉字。基本上大作文没写完,关于三农问题,农村改革的,匆匆收尾,“总之,农村改革,面临新的机遇与挑战,政策和科技是为之保驾护航的两大法宝,路在脚下,路在前方。。。。。。”

PS:今天共计在路上和休息期间看了《参考消息》,《晨报》,《南方周末》,《程序员》,很有收获。坐公车,地铁期间考察了甘泉地区附近的房价。晚上犒劳了自己一下,PaPa John吃了一顿。

年底review?

呵呵,凡是在IT这个圈子里混的,当然了你还必须是号称世界第X的外企才行,你就一定会经历这个,这里小的绝没有轻视那些startup的小公司,相反的,你看看那些名留IT史册的达人们无一不是从小公司出身,Ken Thompson,Dennis M. Riche双枪搞出Unix和C语言;Linus更是单枪匹马搞出linux kernel;Anders Hejlsberg一手做出Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主设计师;Bill Joy以一个研究生的身份折腾出了目前最流行的TCP/IP stack实现以及Sun的SPARC架构。。。。。。基本上,但凡是哪家公司折腾到了几万人,则只剩没完没了的bug fixing了,扯远了,看文章,每次看到这篇文章转载微软的工作评定FAQ,我都忍不住的想大笑,你尽可以把它换成Oracle,SAP,Autodesk, eBay。。。。。。

The Power of Recursion

各位农民工兄弟,今天我准备八卦一下递归,哪位不喜技术,可以闪了,我不会傻X到用求XX!的阶乘作为例子来解释,实际上今天的例子来源于目前正在做的一个项目,简单说来,需求很简单,设计一个简单的正则表达式实现,看到这儿,肯定有很多大人要扔砖头了,丫的这不是自己造轮子嘛,STL,ATL,Boost 那么多的正则表达式库不让你用?不比你好?俺这只是小项目,需求也很简单,就只是能匹配个*号?号啥的足以了,总不至于让我链接个N兆的工业库吧。闲话少说,翠花,上代码。

BOOL MatchString(LPCWSTR source, LPCWSTR expression)
{
    if(expression == NULL)
    {
        return (source == NULL);
    }
    if(*expression == L\’\’)
    {
        return (*source == L\’\’);
    }
    if(*expression == L\’*\’)
    {
        int sourceLen = lstrlen(source);
        for(int i=0; i<=sourceLen; i++)
        {
            if(MatchString(source + i,expression + 1))
                return TRUE;
        }
        return FALSE;
    }
    else if(*expression == L\’?\’)
    {
        for(int i=0; i<2; i++)
        {
            if(MatchString(source + i,expression + 1))
                return TRUE;
        }
        return FALSE;
    }
    else
    {
        if(*source == *expression)
        {
            return MatchString(++source,++expression);
        }
        else
        {
            return FALSE;
        }
    }
}

不详细解释了,递归就是清楚,想扩展啥的别的符号支持添几行代码就是了,如果你老人家楞要用别的方法实现,也不是不行,估计得耗上一阵功夫了,一个更好的实现,可以参考这里《Beautiful Code》,欢迎各位老大斧正。

九亭?家乐福?

按照平常来说,这两个词是无论如何也连不到一起,你总不能指望家乐福像卖口香糖一样卖奥林匹克花园吧,呵呵,最近一直在和这个楼盘纠结。事情是这样滴,自从两星期前,奥园在上海各大生活导报上登广告8888/m*m,你还等什么,跟白送一样之类的广告,22,23号只此一天,结果。。。。。。早上依然起的很晚,天气愈发的差比昨天,还下起雨来了。本来是心疼媳妇儿,我想一个人踏上漫漫征途从金桥到九亭,结果媳妇儿一定要和我一起,一周都忙着工作,周末应该呆在一起的,但是她又不想在这么差的天气去九亭,于是乎,巴拉巴拉巴拉的争执,结果,在楼下,吃了牛肉拉面后,媳妇儿果然一脸可爱跟我说,“老公,要不咱们今天别去了。。。。。。”。就此,开始了没完的往前走走,往回走走,博弈,讨论,期间还有,头疼,很累,困了之类的讨论,甚至上升到了,媳妇儿病了,老公应该不应该在家照顾的高度,呵呵,小女生的花招嘛,最终,我再一次投降了,到家乐福shopping了270+的杂物,回家。

周末结束了,呵呵,最后推荐一部老的美剧《Criminal Minds》(《犯罪心理》),还有电锯惊魂的新的一集,非常精彩,Vito应该喜欢看。

周末小记

周六,天有点阴,一如既往的到自然醒,发现自从经济危机以来,已经很久没去扫过街了,N多店据说在22,23号都在吐血大甩卖(其中还有M多的房地产楼盘),鬼才信他们降了多少,783路公交,一路到十里洋场,媳妇儿到了这种地方就像鱼儿游进大海,先是东方商厦试了试靴子,其中,暗地里评价了下服务员的态度,呵呵,一看见你无买意,她们马上晴转多云,然后转战主战场——新世界,此时我已经有点疲惫,基本处于“不错,嗯,还行,你看着办吧,就这个吧。。。。。。”。最终在一个蛮搞笑的牌子买了两件衣服,说它搞笑,是因为它的中文发音“波”,当然正经的应该是“播”,英文Broadcast,共计1200+,还好是折扣,最后实际620+拿下。然后媳妇儿一个电话呼了她的闺蜜到浦电“巴春”,再一次的被一个店名雷住了,我们刚进,N多的服务员冲我们喊,欢迎光临“哈你死”,我仔细地看了下它的英文,好像是Honeys什么的,小日本牌子的据说,没怎么逛,直接买了条女裤走人。此时我已经基本精疲力尽加头疼了开始,最后一起到同学家里小吃了个晚饭,踏上了回家的路途,果然,当晚,头很疼。。。。。。

处女贴

这一周,忙,忙的有点晕,今天共计喝了5杯可乐,四杯咖啡,这周解决了SelectText功能的正则表达式字符串支持,瞄了下Selenium的实现,用OllyDbg跟了下谷歌金山词霸下hook的过程,回家跟媳妇儿去吃了小砂锅,在夜市上花了15块买了个暖手宝,看了看我爱记歌词,流水一样。