接触了一些采用Linux/Unix工具的架构的应用以后,我发现我越来越喜欢松散的架构。即除了接口(UI),然后是算法,最后是面向领域的工具或DSL。而Microsoft的架构大都反其道而行之,原因是:Microsoft想让使用者用起来更傻瓜化,但是否能达到目的就不一定了。

 

对于数据交换的接口(Interface)层面,尽量用同通用的数据格式,如果是函数调用就用string,char,int之类的,如果是文件就用Plain Text或者其他Human-Readable的格式。

 

松散架构的有点主要有两个:

1,最小化关注点

2,面向领域(问题域)来解决问题

 

1,最小化关注点

实现最小化关注的前提是:简单,通用数据格式,协议。在同一个时刻只解决一个问题。而这时接口,协议不能成为解决问题的累赘。还有就是适当的拆分问题,问题的拆分取决于问题域。而不是业务的解决方案域。Linux/Unix工具本身这点做的就很好,拆分的很干净。而这反过来就会促进问题的划分。通过适当拆分,简单通用数据格式,我们只解决该解决的问题——而不是因为解决方案而引入的问题,比如:数据转换,数据传输对象,阻抗匹配等等。

 

2,面向问题域解决问题

也就是采用面向领域的解决方案解决领域内的问题。采用合适的Unix工具:文本处理用Awk,Sed,Regular Expression;网络获取用wget;查找文件或过滤用grep,find;自动化处理用Bash Scripting或者Ruby/Python等等。总之我们总能够找到一个非常容易处理领域问题的语言或工具,不多不少地解决当前问题。

 

通过松散的架构,最终得到的应用看上去没有Microsoft的巨无霸强壮,但实际上坚强无比。还有一个不那么明显但却非常重要的优点是这种架构可以Evolution,随着时间的推移这种架构容易调整成面向领域的架构,不多不少地解决架构该解决的问题,多的把他裁掉,少的把他补上。之所以可这样是因为架构是松散的,不是谁一定要谁依赖于谁,不离不弃对爱情是好的,对架构来说是种灾难。

posted @ 2012-02-06 11:40 Jerry Chou 阅读(11) 评论(0) 编辑

篮球不打了,最近又迷上了打乒乓。作为一项运动,在谈论技巧之前讲的都是基本功,我打篮球时是对着我家冰箱练出来的,现在是对着我家的餐桌。来讲讲基本功吧。

1,利用好腰部力量

在用腰的时候注意重心的移动,引拍时重心从左角滑向右脚,出拍时重心由右脚回到左脚。

 

2,当对方发正旋时,球向右端飞去,所以你的拍面要向左。

反旋正好相反,球是向左飞去,在接球时拍面向右。

 

3,下旋球

先找感觉,在模仿球星的发球。比如看:

http://v.youku.com/v_show/id_XNjc2NzM5MzI=.html

注意马琳在发球前拿拍的姿势。从下向上摩擦,这样下旋力度才比较大。

 

4,接球

接下旋用搓

posted @ 2012-02-05 21:36 Jerry Chou 阅读(6) 评论(0) 编辑

转眼年就过完了,今天坐车回苏州。现在科技也发达,我现在就是坐在动车上敲字。每年过年都想到许多事,也都有想记录过,但是事情一过也就忘记了。昨天晚上做了一个梦,倒是值得拿来说说。

不知什么原因,我妈和我爸说了几句,爸有些不高兴便独自一个人走出家门,我也随着父亲出门。没有多久我就看到,一些人蹲在那里笑,我们继续向前走。走了不一会儿,我的手里多出了把起子,我身边的一个哥们(已经不是我爸,而换成了一个玩的哥们)拿着我的起子去打树上的梨子,我让他不要打,因为是一个熟人家的。打了几个梨子后,那个哥们停手了。我们继续向前走。走啊走。几个会功夫的人拿着菜刀在跑,我手中的起子也变成了菜刀,我左手拿刀,右手扶着地快跑,不多会儿就要战斗了。此时我心想:其实英雄也不好过,真出来混了就没有回头路了。我跟一个会功夫的人打,这时我的菜刀变成了了削铅笔的小刀,但是我依然功夫高超,跟那个哥们打了起来,明显我的功夫高出那个人一大截,,几次我有机会将那个人搞定,但是我没有,只是点到为止。不过那个人依旧不领情,还是向我砍来,我心里已经不想忍了,准备反击,谁知——他妈的,我醒了。

 

这是这个春节里最怪异的梦。除此之外春节好像也别无其它。家人依旧忙碌,弟弟还是读书。跟弟弟看了些《机器猫》我有时在想:是不是我们也可以有时光机,再有我现在是不是坐着时光机回来的。因为明显,很快一切会有变化。

posted @ 2012-01-30 13:54 Jerry Chou 阅读(9) 评论(0) 编辑

1, Select the revision that you want merge to the trunk

a, show revisions

image

b,select the revision that you want to merge

image

 

2,select the trunk as destination

image

 

3,commit in trunk code base to put in to effect

posted @ 2012-01-18 12:02 Jerry Chou 阅读(13) 评论(0) 编辑

铁路订票网站常常挂掉,那些技术宅们又有写头了。对技术的选用比如caoz写的这篇,再如对架构的设计云风写的这篇。我这篇是扯蛋打酱油的。如果想看技术分析请看caoz和云风的。

1,What is key point of online railway tickets booking system.

铁路订票网站挂掉的最基本原因是什么呢?技术不行,人们老是刷屏。我想并不是这些,最根本的原因我想是:铁路车票不够,无论你是否在解决技术上的难题,你都需要将这点牢记在心。正真的解决之道也很简单了:1,增加产出量;2,减少需求量。对应的分别就是:提高运输能力,不单单是火车,还有汽车,私家车等等运输工具。其次,减少需求量。让文化去包容,假期政策上的倾斜,减少人员的流动。人员为什么要流动,没事干了?主要问题还是地域间的经济差距,这个说开了就大了去了,容易扯着蛋。

 

2,What’s more?

由此引申出的一个问题就是:在分配一个不是足够的东西的时候,怎么样保持相对的公平性?基本上许多东西都是不够用的,除去人们贪婪的特性以外,有些东西却确实稀缺。没有绝对的公平,那么如何实现相对的公平呢?对于铁路订票系统来说:怎么样解决相对公平的问题也是系统设计是需要考虑的。就就需要在策略上保持机会均等,每一个上网买票的人有着相对均等的机会。其实一个很少的解决方案也很简单那就是:类似彩票的中奖,这从古代至今我认为人们在解决分配不足东西时最为机会均等的实现方式。

 

3,What does the online booking mean?

相对于传统订票过程,网上订票真正减少的过程是去车站售票窗口的来回路程。这也是网上订票真正的意义。

 

后记:脑子不好使了,刚才想到很少,由于打断一下,几乎损失怠净。

posted @ 2012-01-12 10:48 Jerry Chou 阅读(20) 评论(0) 编辑
摘要: 英语中对于国籍,国家的表述是不一样的,我时常迷糊于此。前些日子我发现了一本英语奇书《Practical English Usage》,这本书回答了我许多英语中的疑问。下面的内容也就是将该书的第364条抄一下。 1,Introduction In order to refer to a nation or region and its affairs it is usually necessar...阅读全文
posted @ 2012-01-10 10:31 Jerry Chou 阅读(17) 评论(0) 编辑
摘要: 1,缘起 最近工作上遇到一个问题,即将一组数据,比如[A,B,C,D,E]其中的两个B,E按随机排列,其他的仍在原来的位置: 原始数组:[A,B,C,D,E] 随机字母:[B,D] 可能结果:[A,B,C,D,E],[A,D,C,B,E] 在解决这个问题的过程中,需要解决的一个问题是,怎么样让一个数组随机排序?上网一查,这也是计算机科学基础问题,也称之为洗牌算法(Shuf...阅读全文
posted @ 2012-01-04 09:48 Jerry Chou 阅读(41) 评论(0) 编辑
摘要: 今天的最后一天是在小娟家过的,在乡下很容易知道什么是冬天。因为四季的分明是从颜色上就可以看出来的,你春天来的是绿色,而冬天里你很难见到绿色,而我们住的小区里基本上种植的也是四季常青的植物,让人不太容易分辨这是什么季节。在外面走走,很容易地就想到了小时候,小时在外婆家的时候。 那时小,好处就是什么不懂,也不需懂。只知道过年好,放假好,可以出去玩。外婆家隔壁有我一位小哥哥,那时我们到冬天了,就...阅读全文
posted @ 2011-12-31 17:25 Jerry Chou 阅读(10) 评论(0) 编辑
摘要: 自从将博客从ChinaUnix搬家到cnblogs后,除了技术相关的以外我已经很少写一些别的东西了。原因是我想保持技术和生活的分离,但生活总是存在,时常也需要一个地方说些东西。我也尝试过在QQ空间中写一些东西,但QQ空间要登陆,除此之外有些东西我不想写给特定的人看,也不想自己在写的时候想到会有人看——虽然我知道自己将文章发布出来总是会被人看到的,丑媳妇还要见公婆呢。 既然技术与生活不能分离...阅读全文
posted @ 2011-12-29 15:08 Jerry Chou 阅读(9) 评论(1) 编辑
摘要: 1,常见的数学符号及含义 为什么要使用数学符号?因为数学符号是简洁的,表义的,准确的。 2,求和 3,方差(variance) 方差是实际值(r)与标准值(s)差的平方,即(r-s)^2 方差和反映的是数据的波动程度,方差和越小,数据波动越小,越稳定。 4,导数(derivative) 微分学是微积分的重要组成部分,基本概念是导数和微分。 *导数,研究函数...阅读全文
posted @ 2011-11-30 10:22 Jerry Chou 阅读(27) 评论(0) 编辑