南京有四家Starbucks,分别是东方商城店、大洋百货店、1912店和北极阁店。我在南京待了8个月,除了最后一家我没有去过外,其余全都去过。粗
略的估计一下,总共去过Starbucks不下40次,喝过店堂咖啡不下50杯,买咖啡豆3包,杯子两个,点心尝过不下10种(显然每种只吃过一枚),由
于南京Starbucks没什么特别的熟客,所以我这样的记录,已经可以排上TOP10了。
如果有人问我南京最让我感到舒服的地方在哪?那么我只能说,家、单位、Starbucks。所谓家,只是租的房子而已,不认识几个邻居,所谓单位,不过出
差办事而已,不认识几个同事,唯独Starbucks的服务员认识的多,比我的邻居和同事加起来还多。我觉得Starbucks“第三空间”的营销对我来
说最有效不过,事实上我把Starbucks当成一种寻找灵感的场所。对于学习来说公司太死板了,家里太安逸了,只有Starbucks可以读下有内涵的
书;对于工作来说公司不安静,家里没感觉,只有Starbucks可以想清楚平时想不清楚的问题;对于交友来说公司和家都不可能,只有Starbucks
最有品味。可以说我在南京除了在家、公司和在交通工具上的时间,剩下时间的80%都是在Starbucks渡过的,真的要走了,却难免有些舍不得。
但是,当要我评价南京这三家Starbucks所提供的服务时,我突然想不到什么褒奖的话了。我总是发现一些弄不明白的奇怪现象。
东方店是我第一次去的店,因为恰好在新街口的有力位置,标志又比较大,容易被发现,不好的一点就是店面太小,有些拥挤,来往的客人杂乱,三教九流什么都
有。更让我不明白的是,我第一次去的时候就和里面一个服务员谈的猛投机,把跟咖啡有关的一切都谈了,她还教会了我很多我不懂的东西,我买了一包豆子一个杯
子以表示感谢。奇怪的是从那以后我每次去她都不认识我,然后我每次去都要再跟她聊一遍之前聊过的东西,实在很搞笑,像遇到了某部电影中患有失忆症的女主
角。虽然她的态度依然跟第一次认识一样好,可这种事情我还是头一回遇到,实在不知道该怎么办才好。
后来我主要的去处就是1912店,这家店的优点就是人少,空旷,屋顶高,非常符合开放式办公场所的要求。我跟这里的每一个店员都很熟,跟店长也聊过一次。
我喜欢跟这里的人聊天,要知道,我通常是他们从开门的时候(上午11点)坐到晚上8点,如果没人聊天,仅仅是读书和写东西,那将是多么枯燥的一天啊。不知
道是不是不善于聊天的缘故,我发现她们在聊天时都不太放的开,其实她们的水平和内涵可能要高于她们给客人的感觉,她们中的一些给客人的感觉是平庸的南京女
孩,另一些把自己打扮的很时尚并更愿意跟老外聊天。我曾建议Starbucks为她们的店员加薪,以鼓励她们多读一些有内涵的杂志和了解一些重要的新闻便
于和客人交流。如果我是Starbucks的咨询服务供应商,我会建议她们在开下一个店时以更高的薪水聘用学历更高和更有品味的男性服务生,而且由于
Starbucks的定位是“第三空间”而不是“休闲场所”,所以服务生的性别和长相并不重要。其实1912店仅有一个服务员给我的影响最好,成熟中带有
一点理性,老成中带有一点随和,给人一种驾驭生活的自然感,可惜半个月前以薪水为主要理由离开了Starbucks,到附近一个地产商那里做物业去了。还
有一个叫Apple的女孩,看起来很像她的名字,很可爱也平易近人。
令我奇怪的还不是这些,我在最后一两个月里惊奇的发现,她们对我的态度正在逐渐下降。当我刚成为这里的“超级熟客”时,每一个人都对我非常好,只要有空就
会主动跟我讲话,跟我分享工作的心得。但是最后的一段时间里,因为我也不知道的原因,她们对我越来越冷淡,以前一些基本的要求比如加热已经冷了的咖啡也变
的吞吞吐吐一脸不情愿的感觉。当然,我的感觉也可能随心情而变得不太准确,因为我之前来的时候多数心情不太好,现在来的时候多数心情很好。但我也觉得可能
另有原因,或者是我的一些琐碎的小事做的不对导致的累积效果,比如下面一件事情。
不久前我在1912店居然认识了一个大洋店的服务员,当然她也是以顾客的身份来的,她跟本店的服务员都很熟,这使我忽视了她们存在略微的竞争关系,而后来
我们聊的很投机,我跟多数学管理出身的本科生都能聊的很投机。后来我去过一次大洋店,那是我去的唯一一次,那里的缺点是太吵,人很多,几乎可以跟KFC、
PizzaHut这样呼吸困难的场所媲美。后来我曾想把博客园的一次4人规模的聚会定在那里,可惜沙发已经被坐满了,我们被迫换了地方。
写到这里,我突然发现我对刚刚所说的问题其实没有发言权,因为我只是一个普通的顾客,没有投资经验,没有开店经验,也没有为这类企业做过咨询,也许她们有
着某些特殊的苦衷我不知道,如果本文对南京Starbucks有任何冒犯的地方,敬请原谅。如果再要我为Starbucks提一次建议,我可能不会再提起
任何与服务员有关的问题,我可能会说:“请让所有的Starbucks店面都通上Wi-Fi,谢谢。”
posted @
2005-09-04 20:59 Brian Sun 阅读(4431) |
评论 (16) |
编辑 收藏
“居住在一个洞穴之中,有一条长长的甬道通向外面,它跟洞穴内部一样宽。他们从孩提时代就在这里,双腿和脖子皆被锁住,所以总是在同一地点。因为被锁住也
不能回头,只能看到眼前的事物。跟他们隔有一段距离的后上方,有一堆火在燃烧。在火和囚徒之间,有一条高过两者的路……” ——柏拉图《理想国》
这将导致一个结果,就是在洞穴中的人即使他们都可以交流,都有思辩能力,都有人类与生具来的理性和道德观念,他们也依然会认为他们所看到的就是真实的世界,即使这个世界是无声的。苏格拉底说“这是难以避免的。”
1。Matrix I(译:黑客帝国/母体/矩阵/二十二世纪杀人网络)
肉体被作为庄稼一样在surface种植,灵魂在AI中享受欲望的折磨,这正是对能源的追求从来没有停止过的人类,这既是极大的讽刺,也是历史的终结——
撒旦为上帝的子民创造了另一个上帝!因为人类从生下来开始,身体所接收到的所有信号都是来自Matrix的电子信号——通过插在脑后的管子——所以死都不
知道自己一辈子都躺在培养皿里,这就是洞穴寓言。片中著名的一句对白是“——Why do my eyes hurt?”“——You've
never used them
before.”千万不要以为洞穴寓言就是“井底之蛙”,其实柏拉图的思想跟中国古代的老祖宗们的想法是很不一样的,或者说背道而驰。中国人强调不要用肉
眼看世界,要用心眼,而柏拉图却说不要用心眼,要用肉眼——是的,你可能never used them before!
2。Matrix I & II & III(译:黑客帝国/母体/矩阵)
是的,我没有搞错。我一直认为黑客帝国I是一部电影,而黑客帝国I加II加III合起来是另一部电影!这部电影讲述了在未来的世界(当然,是否是未来的世
界还需要证明,考,难道是现实世界?!),AI创造了两个虚拟现实环境,黑学者(比如我)们称之为虚拟现实游戏,就像未来版的RPG,一个称之为
Matrix,另一个称之为Zion,人们首先在Matrix中玩,玩的好的人继续玩,玩的不太好的人(比如头疼)可能会被选中玩另一个游戏Zion。具
有反抗意识的人通常会被选中,但是结局是什么,取决于你的多次“选择”。"Choice" is more important than
"Real"!但是,如果你要问“哪一个世界是真的?”那么不好意思,you asked the wrong question!
3。The Thirteenth Floor(译:第十三层楼)
人类创造了一个虚拟现实游戏(跟上面讲的是同一个概念),游戏中的AI玩家居然发明了同样的一个游戏!也就是说AI发明了AI,这就像机器制造机器一样,
是人类一个时代的结束。现在的问题是“哪一个世界是真的?”我不知道导演是否想到了这一层,但至少影迷想到了!如果电影中男主角到的最后一个世界是真实世
界的话,那么他怎么可能通过杀死他自己而互换位置呢?这只有一个可能,那就是——没有真实的世界!那我们现在的世界会不会也是?。。。。呵呵,
sorry,joke!是不是有够“洞穴寓言”啊?!是不是比“洞穴寓言”还“洞穴寓言”啊?除了这个想法在当时比较新颖以外,这部电影没什么其它优点
了。
4。Avalon (译:阿瓦隆)
AI的起源在哪里?我觉得这是评价某个硬科幻的思路够不够科幻的一个重要标志。“第十三层楼”认为AI是某个天才科学家的发明,这不符合人类目前的社会和
历史原理;“我,机器人”和“黑客帝国”认为人类为了解放生产力和提高人民的生活水平而创造了AI,已经比较符合实际可能的情况了;但是,
“Avalon”更强,他认为人类为了娱乐而创造了AI,想想看,现在世界上最先进的芯片技术在哪里?在Intel吗?不是,在显卡芯片制造商的手里!这
不正是为了娱乐业而发展的技术吗?个人认为这种想法更符合现实状况,这使得在数十年或数百年后这部电影所说的故事成为现实的可能性大大增加。
不好意思,有点跑题。“Avalon”告诉我们,未来的人类大都沉浸于一部游戏之中,游戏里的人分不清真实的世界与虚幻的世界,只有女主角还好。但是,影
片的结局却告诉我们其实女主角所在的那个世界也是虚幻的世界。ok,所以同黑客I&II&III一样,没有真实的世界,每个人都处在岩洞
之中,并认为影子就是世界。
5。Island (译:逃出克隆岛)
新片,昨晚才看的。与前几部电影不同,这部片子不是讲人工智能的。它描述了人类为了拯救自己而创造了很多个克隆人,克隆人们从小就生活在一个笼子里(地下
军事掩体),他们被欺骗说外面的世界被污染了,我甚至怀疑骗他们的人还拍了部科幻电影告诉他们这是真实的记录,有点类似韩国动画片“晴空战士”。最终他们
还是怀疑自己一直被欺骗,并逃了出来,当看到外面的世界时,他们惊呆了,因为他们的智商相当于15岁的孩子,且从未见过红绿灯,也不懂性。与洞穴寓言不同
的是,他们仅仅是人骗人,而不是肉体骗灵魂,也不是灵魂骗肉体,所以难免故事情节会有些单调。更令人气氛的是,这部电影充满了微软公司的广告,包括醒目的
Xbox的绿色标志和MSN的蝴蝶标志。Michael Bay的行为应该收到全球影迷的声讨!
看电影的泡泡
posted @
2005-09-03 15:51 Brian Sun 阅读(6080) |
评论 (5) |
编辑 收藏
还记得我的文章吗?http://www.blogjava.net/briansun/archive/2005/03/21/2274.html
现在,有两件事情需要补充:
1。我当时(3月份)的猜测已经得到证实,Borland已经宣布作为独立软件的JBuilder已经走到了它生命的尽头,下一个版本的JBuilder
(可能是2006,今年年底将发行Beta版)将建立在Eclipse的基础之上。也就是说作为Eclipse对头的JBuilder已不复存在,现在的
JBuilder将是以一组Eclipse的插件形式提供给它忠实的用户和粉丝的。
2。BEA已经把AspectWerks贡献给AspectJ这个已经不是新闻了,但是直到今天我才意识到这一战略的真正含义!原本AspectJ由
IBM一手主导的情况已经被改变了(施乐已经交出了AspectJ整个开发小组,现在的领导人是IBM的Adrian
Colyer),现在的AspectJ是由IBM和BEA联合控制的产品。看看有关AspectJ
5的随便一篇报道吧,长期以来在AOP领域内的楚河汉界——语法方面和XML方面——转眼便成了一条通天大道!而AspectJ昔日的最大竞争对手今天也
手拉手肩并肩的走在了一起,就好像那些战火和硝烟只存在于日记中一样。
2004年,AOP的创始人Kiczales曾有过一段访谈,大概介绍了AOP的标准化之路,其中给出了两条道路供世人选择:以AspectJ为标准,或
者,以AspectJ来制定标准,现在看来IBM和BEA已经代表人类作出了选择。想到这。。。。。。我真的无话可说了。
而且,BEA的野心还不仅仅局限于此。“在开源的世界里,什么是贡献?”这个问题不好回答,但是下面这个问题要简单一些:“靠昆虫传媒的花为什么都要好看
一些?”BEA贡献出AspectWerks的代价是得到了整个AspectJ,并且它已经多次表示将在JRockit中全面支持AspectJ了!设想
一下这是什么样的局面吧,作为中间件巨头的BEA,现在已经具备了随时可以将它庞大的产品线全方位的平移到轻量级容器的路线上去了,因为它可以从虚拟机的
级别支持AOP,釜底抽薪式的对所有开源容器发起新一轮的剿匪运动!IBM怎么办?IBM也没办法啊,除了应招之外还能干什么,好在IBM的精力全在这方
面了,又有AspectJ的主控制权。再假想一下——最后一次假想,如果IBM和BEA联手转向轻量级容器。。。。。。宁可。。。不要让。。。漏网!——
嘘,小声点!
写日记的泡泡
posted @
2005-09-02 17:23 Brian Sun 阅读(2815) |
评论 (5) |
编辑 收藏
1。随处可见猜想。
在未来的软件开发过程中,AOP将以一种基础编程能力的形式出现,与OOP共同发展,成为主流开发环境的一个组成部分。而目前为止,AOP只是作为一种开发工具、或运行时代码而存在。到了那个时候,可能没有哪个产品声称:“我使用了AOP”,因为没有哪个产品没有使用AOP,就像现在没有哪个产品没有使用OOP一样。就算你的源代码中没有应用到编程语言的AOP能力,你也可能调用了某个应用了AOP的基础库。事实上,AOP之父Kiczales认为AOP可能首先在操作系统上有一定规模的应用。
2。语言级猜想。
AOP的真正实现是在一个特定的语言基础上的。比如数年之后,人类开始普遍使用K语言(K是J的后一个字母),K语言在语言本身上就可以编织和横切。此时AOP才得到真正的成熟,因为程序员在编写代码时可能根本不知道自己用到的是曾经的OO还是现在的AO,只有了解K语言虚拟机构造和背后实现的人才知道。但是,可能由于人固有的思维方式的问题吧,AOP仍然不会比OOP要使用的更多,甚至有可能仍然是Kiczales所提到的15% Solution!但是,从语言的角度去实现AOP也许会给人类的编程观念带来巨大的变化,这种变化就像OO所带来的一样。
3。存在AOD/AOA猜想。
OOP对人类的影响远不如它的两个弟弟OOA/OOD,后两者已经为整个软件开发行业带来了一次意义深远的革命,它至少使得全世界开发团队的人数扩大了10倍,开发工具和平台的复杂程度增加了10倍,完成客户某些简单要求的成本降低了90%,唯一的遗憾的是,软件开发的效率几乎没有数量级上的变化(依据《没有银弹》)。既然存在AOP,我们猜想也会存在AOD/AOA,比如会存在面向方面的重构手段,面向方面的设计模式,面向方面的最佳实践,面向方面的过程管理,以及在UML的未来版本中看到为面向方向而专门做的改进,甚至添加一个新的UML图类型。当这些东西都产生的时候,AOP才真正发展到了鼎盛时期。
4。可执行用例猜想。
AOP是一个广泛适用的充满想象空间的新技术,但是目前人们对AOP的研究方向过于狭窄,大部分声称正在研究AOP的开源项目其实是把AOP当成一个辅助工具来使用,这些项目中又有相当一部分是在做企业开发环境下的容器,他们并没有针对AOP本身进行开发。事实上,依照Jacbson的说法,AOP将直接导致软件的开发分为两种形式——对模块的开发和对用例的开发,现在的用例仅仅是图纸,必须要转变为OO代码才能执行,但是一旦有了AOP,AOP可以直接依据用例的定义,将多个不同的模块(可能来自不同的开发单位)连接起来,形成方面,而方面本身是可以执行的(语言级猜想),所以用例也就不再是图纸而是可以执行的了。这对于以UML为核心的现代软件过程来说,是个极好的信号。
5。标准化猜想。
OO的成功经验告诉我们,要想取得最后的胜利,就要一致对外,统一了内部的概念,剩下的争论就只有实现问题了。我个人认为,多数OOP语言在概念上都是一致的,这种概念被语言学称之为语义,多数OOP的语义来自Smalltalk和C++这些早期尝试者,少数来自Java这种在技术的成熟期涌现出的商业产品。AOP目前还面临着这个问题。业界对AOP的标准化过程有两个猜想,一是由AspectJ领头,各大AOP实现都以AspectJ的语义作为研究问题的基本用语,设计和实现沿用现在的思路;另一个猜想是由权威组织,(开源、商业、或全球研究组织),如Eclipse/IBM/OOPSLA等等拿出一个统一的AOP语义内核,所有AOP项目都以该内核为基础开发。Java虚拟机是前一种思路的成功案例,后者则以XML为代表。
6。全静态编织猜想。
下面讨论一个实际的技术问题。时下多数AOP项目采用的编织技术无外乎两种:静态编织和动态编织。前者是指在编译前(预编译期)、编译期、和编译后编织,后者是指在运行期编织。Kiczales认为虽然没有明显的技术缺陷,但动态编织可能会面临一些发展远景的问题,他称之为“软件的演化问题”。不知道我对大师观点的理解是不是准确,我认为由于被编织的代码是在变化(发展)中的,我们总是希望这种变化对编织本身的影响最小,这时静态编织面临的问题最多就是重新编译,而动态编织可能不会那么简单。此外,全静态编织会导致另一个优点——这听起来有点奇怪——就是能力较弱,因为全静态编织继承了OO语言本身的约束,比如Java的约束和.NET之CLR的约束等等,这对于更规范的使用开发利器是大有好处的。“应该对人类准备大规模应用的每一种新工具小心钳制。”
7。AOP的诞生之迷猜想。
Kiczales先生在从事AOP的研究和开发之前也曾接触过其它对OOP的改良研究,其中包括反射和元对象技术。事实上,心平气和的说,后两者的变通能力和灵活程度都在前者之上,但是正因为如此,语言学家们认为,这些技术并不能有效的改善OOP的弊端,甚至还有可能引狼入室,带来新的“狼人问题”。后来,当Kiczales发现AOP时,他明白这才是人们真正需要的,他认为他们抓住了问题的咽喉。时至今日,AOP的实现技术已经千姿百态,百家争鸣了,但是,AOP创立之初的种种想法也在这种百花争艳中渐渐被人们遗忘,现在利用反射、元对象技术以及种种双刃剑式的技术来实现AOP的想法已经像争抢参院席位一样争夺市场的认可,这是事物的发展还是理想的倒退?AOP何时才能回归它的本原?上天为它安排的命运究竟如何,我们拭目以待。
最近,我和我的几个朋友正在组织一批开源斗士们合作编写AOP.NET,这是一个开源软件,在博客园上可以看到部分有关该项目的消息。但是由于种种原因,我们对一些基本的问题还没有达成共识,本文来自我对AOP的一贯看法,也是我对社团里很多问题的一个集中性回答吧。
开源泡泡
(转载本文需注明出处:Brian Sun @ 爬树的泡泡[http://www.blogjava.net/briansun])
posted @
2005-08-31 13:53 Brian Sun 阅读(4219) |
评论 (3) |
编辑 收藏
这一天必须要写一篇blog,这是我对自己的要求,因为这一天对我来说太不平常了。
首先要庆祝一下中国情人节,因为七夕是按农历算的,而后面我要说的几个纪念日都是按西历算的,所以这在同一天纯属巧合。记得我在今年西洋情人节的那一天也
写过一篇blog,呵呵,算是呼应一下吧。祝愿天下所有的请人都能过好这一天,尤其是中国的请人,不要吵架,不要闹别扭,不要过得太平庸免得后悔,不要在
这一天表白免得被据了以后终生难忘,不要在这一天去太远的地方玩,别忘了小偷们也想过好情人节,最后,一定要记住,日子是慢慢过的,所以不要花太多钱,哈
哈。
这一天之所以对我的一生都有巨大的影响,其实真正的原因发生在1995年。那一年我小学毕业,按照(我家里的)惯例,我要在假期学一样东西。从小学到初中
我学过国际象棋,学过英语(那时候小学是不教英语的),学过数学竞赛(我拿过不少奖,自己赞一下),学过骑车,学过游泳,其中数学竞赛成绩最好,但是每一
样都对我的一生产生了巨大影响,让我受用终生。下面该学什么也是家里一直争议的话题,父亲在这件事情上具有最终决定权,他很想让我学电脑,但是说实话,电
脑是什么,我们家没人知道。后来父亲大约花了几百块买了一台“小霸王学习机”,现在看来就是一个有QWERTY键盘的游戏机,但是有些学习功能,比如五笔
字型,广告是成龙做的,很有吸引力。我整个七月份就在家里玩学习机,玩的很开心,父亲发现我的指法越来越熟练,觉得我学电脑可能会有天赋,就给我报名参加
了一个学习班,他哪里知道,我后来学习的东西同指法几乎没什么关系。
学习班是由父亲的一个朋友办的,我在后来的很多年中都跟他保持密切的联系,他是那种入门很早的人但是有点玩世不恭的人,其实他没有教过我一天课,但我仍然认为
他是我的启蒙老师。学习期共有15天,安排的很有意思,5天DOS,5天五笔字型、汉字系统和字处理软件(UCDOS/WPS),最后5天Basic,老
师在考虑要不要教Foxbase,后来决定还是basic,容易让人接受,也许我应该认认真真感谢一下这个决策,如果当年我学的真的是foxbase,我
一定会听不懂或者因为无聊而不会走向编程的道路的。
我一下子就被Basic的世界吸引了,一行一行有意义的单词和数学公式的组合,竟然能“跑”出一个自动化的程序来,太神奇了,我立即被这种力量征服了,并
且在未来的10年中从未停止过对这种力量的追求。后来的一个老师说,人类发明每一样东西都是对人的一种自然属性的延伸,我觉得很有道理,人类发明汽车是对
人脚的延伸,发明望远镜是对眼睛的延伸,发明电话是对耳朵和发声能力的延伸,而发明电脑则是对思维能力的延伸。对于一个在小学时就对丰富多彩的数学世界充
满兴趣的人来说,对思维能力的延伸是多么必要而有价值的一件事情啊。
这一期学习班是从8月1日到15日,所以如果我记得没错的话,10年前的今天我第一次接触了编程!这难道不是个值得庆祝的日子吗!
学习班的最后一天是多媒体电脑的演示,因为当时刚刚出现VCD2.0,MPEG协议也刚刚引进国内,所以用电脑放出来的清晰电影实在令人着迷,(所谓清
晰,是指在13寸弧屏上的效果),看完侏罗纪公园一之后,学习班就结束了,人们也回家了,只有我还在一台80286上用basic写各种各样有趣的东西。
刚刚提到的那个老师给了我一项任务——写一个统计成绩和平均分的程序,可惜当时不懂得保存,这个程序现在已经失传了,但它确实是我写的第一个软件。
因为接触了编程语言和排序算法,从某种意义上说也就算是个完整的程序员了。开学以后我就报名参加了中学生计算机竞赛,恰好竞赛也是编程性质的,很多年以后
我才知道省里的竞赛AOI(Anhui Olympics of
Infomation)是仿NOI(National...)的,而NOI是仿IOI(International...)的,而IOI则是仿ACM
ICPC(国际大学生编程竞赛)的。在竞赛班上的学习对我的启发和帮助就不言而喻了,你可以想象一个初中生每天都跟离散数学、组合数学、图论、数据结构、
Quick Basic/Turbo Pascal/Turbo
C、和一些叫不出名字的算法(比如笛曲克斯拉)打交道的样子吗?这些都使我至今收益,其中最值得赞一下的成绩就是连续3年在本市的竞赛中夺魁,但是由于本省人才济济,以数十分之差
(数十分在竞赛中不到一个TestCase)没能进入省队,后来进入省队的几个人都拿了全国金牌并参加了国际竞赛,还有人拿了国际金牌。我想假如我在别的
省可能已经进了国家队,但是我仍然不后悔,那样我不会很早学OO,不会选文科,也不见得会有现在的独特思维方式。
成绩也常常伴随着失败存在。第一次参加竞赛的失败使我看清了Basic语言本身的缺陷,这使我决定要学习一种纯面向过程语言,Pascal语言由于描述算
法和数据结构的能力及其在竞赛中的普及程度首当其冲,但我没有选,而是去安徽大学学了C语言,这也是一次对我后来发展路线产生巨大影响的决策,而这个决策
也发生在8月,安大的这一期培训班,也是在8月中旬。
除了这两件事情之外,今天还有一个值得纪念的地方,那就是半年前的今天——2005年2月11日,我写了自己的第一篇blog,哈
哈,dudu别急着感动,那篇文章好像是批评BlogJava的。:) Blog是我职业生涯非常重要的一件事,以前常常苦于有想法没机会表达,不表达自己都记不住,或者由于没有被语言化而使得很多
想法都转瞬即逝,或流于表面不能深入思考,blog真是个好东西。
不多说了,该吃中饭了,回到我们前面的话题,我小时候就想知道牛郎织女到底是一年见一次还是一天见一次呢,天上一日地上一年啊,哈哈,搞不懂。
posted @
2005-08-11 12:00 Brian Sun 阅读(2092) |
评论 (9) |
编辑 收藏
摘要: {关键字}
测试驱动开发/Test Driven Development/TDD
测试用例/TestCase/TC
设计/Design
重构/Refactoring
{目录}
TDD的目标
TDD的优点
TDD的步骤
FAQ
Best Practise
关于单元测试
实例:Fibonacci数列
关于本文的写作
后记:Martin Fowler在中国
鸣谢
什么时候重构?
什么时候设计?
什么时候增加新的TestCase?
TestCase该怎么写?
TDD能帮助我消除Bug吗?
我该为一个Feature编写TestCase还是为一个类编写TestCase?
什么时候应该将全部测试都运行一遍?
什么时候改进一个TestCase?
。。。。。。
(转载本文需注明出处:Brian Sun @ 爬树的泡泡[http://www.briansun.com])
阅读全文
posted @
2005-07-31 02:08 Brian Sun 阅读(15300) |
评论 (26) |
编辑 收藏
英文名:About Face 2.0 - The Essentials Of Interaction Design
中文名:软件观念革命——交互设计精髓
作者:Alan Cooper,Robert M. Reimann
泡泡的评价:
本书第一版几乎引发了一张全球软件界的革命,然而这次革命的影响却由于种种原因未能在今天的多数软件中体现,这不是人类的悲哀,这是我们要为之奋斗的事
业。自从我们选择入了软件这一行,我们就有义务为用户提供经过出色设计的软件,可尽管如此,我们当中仍然有很多人根本不知道什么叫设计。本书的作者
Alan Cooper为微软拿到了为数不多的几个Jolt大奖中的一个——Visual
Basic2.0,也为我们提供了为数不多的几本好书中的一本——About
Face2.0。我们崇拜大师,并不因为他们是上帝,而是因为他们是上帝的布道者;我们渴望设计,并不因为设计代表一切,而是因为一切都依靠设计。书的扉
页上写着:“因为设计,所以出色”。
China-pub的简介:
本书是一本由一位在交互设计前沿有着10年设计咨询经验及25年计算机工业界经验的卓越权威撰写的设计数字化产品行为的启蒙书。它探索了一个独特的设计领
域,即复杂系统行为的设计——特别是软件激活技术。本书论述一种具有革命意义的设计观念——人类驱动设计过程。
本书是一本难得的大师经典之作,应该是一本产品规划师、界面设计师以及可用性工程职业人员或者程序员都想得到的书。
目录:
第一篇 了解你的用户
第一部分 弥合差距
1 目标导向设计
2 实现模型和心智模型
3 新手. 专家和中间用户
4 理解用户:定性研究
5 用户建模:人物角色和目标
6 脚本提纲:将目标转换为设计
7 综合好的设计:原理和模式
第二篇 设计行为和形式
第二部分 除去障碍,达到目标
8 软件姿态
9 和谐与流
10 消除附加工作
11 导航和调整
12 理解撤销
13 重新思考“ Files ”和“ Save ”
第三部分 提供高效能和愉悦
14 设计体贴的软件
15 设计智能的软件
16 改进数据检索
17 改进数据输入
18 为不同的需要进行设计
第四部分 应用视觉设计原理
19 外观设计
20 隐喻. 习惯用法和启示
第三篇 交互细节
第五部分 鼠标和操作
21 直接操作和定点设备
22 选 择
23 拖 放
24 操作控件. 对象和连接
第六部分 控件及其行为
25 窗口行为
26 使用控件
27 菜单:教学向量
28 使用菜单
29 使用工具条和工具提示
30 使用对话框
31 对话框礼节
32 创建更好的控件
第七部分 与用户的交流
33 消除错误
34 通知和确认
35 与用户的其他交流方式
36 安装过程
第八部分 超越桌面的设计
37 Web 设计
38 嵌入式系统的设计
posted @
2005-07-29 13:29 Brian Sun 阅读(3356) |
评论 (2) |
编辑 收藏
1。项目概述简单的说就是“WHAT IS”。向任何对该项目感兴趣的角色传达这些基本的必要的信息。
2。风险列表以头脑风暴的方式列出项目可能遇到的所有风险。风险列表一定要是客观的,既不能推卸责任也不能表决心献殷勤,要实事求是。
3。用例需求的规范表现形式。用例并不一定要用UML用例图来表示,但是颗粒度是用例最难以把握的问题之一。
4。设计图通常用于总体设计,可以是UML图,也可以是CRC卡,还可以是更灵活的一些东西,视项目组成员的习惯和水平而定。
5。构建工具如Ant脚本,目的是实现每日构建。
6。版本管理悲观锁如VSS或乐观锁如CVS/SVN,都无所谓,关键是要能管理不同的分支和历史工作成果。
7。测试用例按TDD的说法,测试用例应该打成包,随产品已经发布,这样在每次修改代码之后或发布一个新版本之前都可以确保之前的代码仍然是有效的。
8。产品包括二进制发布包和所有导致该发布包的源代码或原始配置文件。
9。发布说明简述这一版与上一版的不同。当然还要包括版权声明、其它商品的版权声明、和许可证。
10。开发计划和迭代计划项目过程中产生的制品,为日后开发其它项目提供参考资料。
RUP泡泡
posted @
2005-07-22 09:46 Brian Sun 阅读(2131) |
评论 (4) |
编辑 收藏
近100年来美国经济学界和管理学界的主流理论和理论框架,都会或多或少的在其它领域的主流理论和理论框架中产生映射,这是很多主修经管专业的学生改行进入其它领域后总的心得。在下不才,也是其中一员,并且也有一点自己的心得。
最近十年管理学界对体验经济的理论层出不穷,形成理论界的一大热点。总的来说,体验经济是将未来的经济模式,同产品经济、商品经济和服务经济相区别,对这个概念不了解的朋友可以先看一个写在《体验经济》一书扉页上的这个案例:
Rebecca的妈妈小时候过生日,Rebecca的奶奶自己亲手做蛋糕为她庆祝,她的原料比如奶油、鸡蛋、面粉等等都是从邻街的小店里面一美分一美分买来的。Rebecca小时候过生日,妈妈打电话给附近的一家蛋糕店,蛋糕店立即送来的美味可口的蛋糕,这样Rebecca可以请邻居家的小孩来过Party,这个蛋糕只要花十几美元。现在Rebecca的女儿过生日,Rebecca将整个生日交给Disney公司去办,公司的姐姐们带Rebecca的女儿和她的小伙伴们去城郊的一个小山坡野营。在那里,孩子们学会了自己搭帐篷,挤牛奶,采野生的葡萄酿酒,整理破旧的茅草屋。在一天的猎奇旅程之后,公司送每一位孩子回家,Rebecca付给了他们一张$146的支票。
尽管体验经济首先是在餐饮、旅游、娱乐、零售等行业首先发展并扩散开来,但是我相信,它迟早会在软件领域展露头角。我的这种想法由来已久,在最近一段时间里这个想法被激发,导致我写这篇文章,我认为体验经济至少应该在下面四个方面对软件界有所帮助:
1)近似帮助的导航。
如果你还没有下载Eclipse 3.1,那么你还不能真真了解我的意思。看看Eclipse的Million Downloads Challenge吧,3.1版正式版推出的第一天全球下载量就接近20万份,这绝不是宣传的效果,而是全世界的软件开发人员和关注软件界成长的人们共同的精神支柱。3.1版在易用性上又有大幅度的提高,随处可见的Html风格的说明信息,从一个对话框到另一个对话框的“超链接”,首选项的搜索与过滤,首选项的编辑导航(前进、后退等),FastView可以变成内嵌Frame,任意输入框里的工具条,任意输入框里的感叹号、问号和小红叉,等等等等,无一不在3.0版已经很“花里胡梢”的界面上再“锦上添花”。并且,知道内情的人都知道,这些对用户眼球产生极大刺激的小技量,对于Eclipse来说是多么的轻而易举。这么说吧,这些东西放在你的应用程序里面叫做“特性”,放在Eclipse里面叫做“对特性的应用”。
2)软件为什么不能用画的。
既然标准控件可以拖到窗体里变成代码,为什么用户不能用笔画一些代码出来呢?我想未来的软件应该会以某种“更自由”的方式向用户提供体验。比如,用户可以画一个圆作为输入框;用户可以画一条线来表示状态条;用户可以画一个图标或写一个单词,再和一个程序定义好的Action建立链接;用户可以画一个小人提供导航;用户可以规定什么样的状态用什么样的符号表示;用户还可以规定在哪里可以显示固定的及时帮助,什么时候可以显示浮动的及时帮助;最后,用户被要求画一个区域(可能是不规则的多边形)来把刚才画的那些东西装进入,这个区域就是我们所说的窗体(想想很多播放器都支持不规则的图形作为skin)。
3)同时面对新手和熟练工人。
关于气泡式的及时帮助,业界有很多的争议,这些争议大都来自不同领域的不同需求。比如一个面向客户的财务系统,开发者可能希望随时随地都能让使用者知道下一步该怎么办(或者这一步该怎么办),可是一个面向企业内部的财务系统,投资商则更愿意花费少许培训费用来使该系统的使用者更加熟练,这些费用可能会比在软件中加入大量的帮助更为经济,更重要的是,去除这些气泡往往会提高使用者的效率,给企业带来更多的好处。所以体验经济要求我们的软件理念能在两种模式之间自由切换,甚至可能会同时体现在同一个系统上,比如某个在线游戏,新手希望能随时随地得到提示,而老玩家则希望在某个选项页上关掉这些提示——以速度取胜。
4)功能微调和界面微调。
多数软件已经开始向Extendable转变了,少数精英已经开始向Pluginable(这是我自己造的词,被画上红线别怪我,呵呵)转变了。有图形处理和媒体制作软件,如Photoshop、Fireworks、Flash,有开发工具IDE,如Eclipse、SharpDevelop,有浏览器如Firefox,有小工具如我正在使用的EmEditor等等,在SourceForge的排行榜第一名上待了很久不愿下来的Azureus - Java BitTorrent Client也是Pluginable的。更有令人惊奇的,有一个叫Java Plugin Framework(JPF)的项目可以为所有Java软件增加Pluginable的能力,这个项目吸收了Eclipse的思想,但是比Eclipse的插件平台更通用,更具扩展性,也更严格。至于界面上的微调,Eclipse也为我们作出了榜样,它可以允许成千上万个View和Editor并存在同一个窗体里,并提供了最大化、最小化、FastView、内部Frame等多种展现形式,(意思是说它们不会太挤),甚至可以在界面上搜索和过滤这些parts,这样做的主要目的是将用户工作中能遇到的交互事件划分成更细小的颗粒。我认为未来的软件能让用户在更小的颗粒度上调整UI,比如某个用户会在用软件时自言自语:“这个的Label我不喜欢,我要变成Icon;那里有个Table太繁琐了,换个饼图看看;哦,对了,这里有个讨厌的文字框,小样儿,我早就看你不爽了,干掉,直接写进log吧!”
在本文的最后我还要告诉大家的是,虽然很多软件用XP结尾来标称自己是“用户体验版”,比如Windows xp和Office xp,但是我仍然认为体验经济的时代要求未能很好的表现在当前的主流应用中,无论是操作系统、办公软件、在线应用,或者ERP,但是我们已经可以在一些游戏、及时消息软件或大师作品中看到一点希望。重复本文开头时的论点,我相信体验经济在软件的时代即将到来,如果您手上正在做的软件没有考虑这一点,那么还是请考虑一下吧,我们都不希望在这次浪潮中国产软件再次落后,如果要我给出一个理由来支撑我的观点,那我只想说——这是经济学的规律。
(转载本文需注明出处:Brian Sun @ 爬树的泡泡[http://www.blogjava.net/briansun])
posted @
2005-07-21 10:38 Brian Sun 阅读(4169) |
评论 (10) |
编辑 收藏
NXUnit是一个基于.NET
Framework的具有NUnit风格的XML单元测试框架。它是对NUnit的一个扩展,使你可以简单的在XML应用程序中加入断言,使你可以集中精
力在你的XML应用程序中的业务逻辑,使你提升测试驱动开发(TDD)的技巧,使你可以直接比较两个XML字符串或流,或者断言它们相等,就像使用
xUnit断言两个整数是否相等一样简单。如果没有NXUnit,你就必须把注意力集中在XML字符串中的空格、空节点、空属性、节点序、属性序、注释等
等。在某些方面,NXUnit有些像XmlUnit。
NXUnit的当前版本是2005年7月的
NXUnit 1.0rc1,下面是该版本的8个特性,这些特性你都可以在XMLAssert类中找到相应的方法:
1。断言两个XML输入是否相等。
2。比较两个XML输入并找出它们的不同点。
3。断言两个XML输入的XML定义是否相等。
4。断言两个XML输入的文档类型是否相等。
5。断言一个XML输入是否有效。
6。断言一个XPath表达式在一个XML输入上执行返回的值是否是期望值。
7。断言一个XPath表达式在一个XML输入上是否存在。
8。断言一个XML输入是否包含另一个XML输入。
并且,你可以改变一个XMLAssert实例的属性来配置一个断言或比较,目的在于:
1。忽略节点和属性名称中的大小写。
2。忽略XML注释。
3。忽略XML定义或文档类型。
4。忽略空的节点或属性。
5。忽略节点和属性的顺序。
6。忽略不重要的空白。
posted @
2005-07-20 10:09 Brian Sun 阅读(2503) |
评论 (5) |
编辑 收藏