南京有四家Starbucks,分別是東方商城店、大洋百貨店、1912店和北極閣店。我在南京待了8個(gè)月,除了最后一家我沒(méi)有去過(guò)外,其余全都去過(guò)。粗
略的估計(jì)一下,總共去過(guò)Starbucks不下40次,喝過(guò)店堂咖啡不下50杯,買咖啡豆3包,杯子兩個(gè),點(diǎn)心嘗過(guò)不下10種(顯然每種只吃過(guò)一枚),由
于南京Starbucks沒(méi)什么特別的熟客,所以我這樣的記錄,已經(jīng)可以排上TOP10了。
如果有人問(wèn)我南京最讓我感到舒服的地方在哪?那么我只能說(shuō),家、單位、Starbucks。所謂家,只是租的房子而已,不認(rèn)識(shí)幾個(gè)鄰居,所謂單位,不過(guò)出
差辦事而已,不認(rèn)識(shí)幾個(gè)同事,唯獨(dú)Starbucks的服務(wù)員認(rèn)識(shí)的多,比我的鄰居和同事加起來(lái)還多。我覺(jué)得Starbucks“第三空間”的營(yíng)銷對(duì)我來(lái)
說(shuō)最有效不過(guò),事實(shí)上我把Starbucks當(dāng)成一種尋找靈感的場(chǎng)所。對(duì)于學(xué)習(xí)來(lái)說(shuō)公司太死板了,家里太安逸了,只有Starbucks可以讀下有內(nèi)涵的
書;對(duì)于工作來(lái)說(shuō)公司不安靜,家里沒(méi)感覺(jué),只有Starbucks可以想清楚平時(shí)想不清楚的問(wèn)題;對(duì)于交友來(lái)說(shuō)公司和家都不可能,只有Starbucks
最有品味。可以說(shuō)我在南京除了在家、公司和在交通工具上的時(shí)間,剩下時(shí)間的80%都是在Starbucks渡過(guò)的,真的要走了,卻難免有些舍不得。
但是,當(dāng)要我評(píng)價(jià)南京這三家Starbucks所提供的服務(wù)時(shí),我突然想不到什么褒獎(jiǎng)的話了。我總是發(fā)現(xiàn)一些弄不明白的奇怪現(xiàn)象。
東方店是我第一次去的店,因?yàn)榍『迷谛陆挚诘挠辛ξ恢茫瑯?biāo)志又比較大,容易被發(fā)現(xiàn),不好的一點(diǎn)就是店面太小,有些擁擠,來(lái)往的客人雜亂,三教九流什么都
有。更讓我不明白的是,我第一次去的時(shí)候就和里面一個(gè)服務(wù)員談的猛投機(jī),把跟咖啡有關(guān)的一切都談了,她還教會(huì)了我很多我不懂的東西,我買了一包豆子一個(gè)杯
子以表示感謝。奇怪的是從那以后我每次去她都不認(rèn)識(shí)我,然后我每次去都要再跟她聊一遍之前聊過(guò)的東西,實(shí)在很搞笑,像遇到了某部電影中患有失憶癥的女主
角。雖然她的態(tài)度依然跟第一次認(rèn)識(shí)一樣好,可這種事情我還是頭一回遇到,實(shí)在不知道該怎么辦才好。
后來(lái)我主要的去處就是1912店,這家店的優(yōu)點(diǎn)就是人少,空曠,屋頂高,非常符合開(kāi)放式辦公場(chǎng)所的要求。我跟這里的每一個(gè)店員都很熟,跟店長(zhǎng)也聊過(guò)一次。
我喜歡跟這里的人聊天,要知道,我通常是他們從開(kāi)門的時(shí)候(上午11點(diǎn))坐到晚上8點(diǎn),如果沒(méi)人聊天,僅僅是讀書和寫東西,那將是多么枯燥的一天啊。不知
道是不是不善于聊天的緣故,我發(fā)現(xiàn)她們?cè)诹奶鞎r(shí)都不太放的開(kāi),其實(shí)她們的水平和內(nèi)涵可能要高于她們給客人的感覺(jué),她們中的一些給客人的感覺(jué)是平庸的南京女
孩,另一些把自己打扮的很時(shí)尚并更愿意跟老外聊天。我曾建議Starbucks為她們的店員加薪,以鼓勵(lì)她們多讀一些有內(nèi)涵的雜志和了解一些重要的新聞便
于和客人交流。如果我是Starbucks的咨詢服務(wù)供應(yīng)商,我會(huì)建議她們?cè)陂_(kāi)下一個(gè)店時(shí)以更高的薪水聘用學(xué)歷更高和更有品味的男性服務(wù)生,而且由于
Starbucks的定位是“第三空間”而不是“休閑場(chǎng)所”,所以服務(wù)生的性別和長(zhǎng)相并不重要。其實(shí)1912店僅有一個(gè)服務(wù)員給我的影響最好,成熟中帶有
一點(diǎn)理性,老成中帶有一點(diǎn)隨和,給人一種駕馭生活的自然感,可惜半個(gè)月前以薪水為主要理由離開(kāi)了Starbucks,到附近一個(gè)地產(chǎn)商那里做物業(yè)去了。還
有一個(gè)叫Apple的女孩,看起來(lái)很像她的名字,很可愛(ài)也平易近人。
令我奇怪的還不是這些,我在最后一兩個(gè)月里驚奇的發(fā)現(xiàn),她們對(duì)我的態(tài)度正在逐漸下降。當(dāng)我剛成為這里的“超級(jí)熟客”時(shí),每一個(gè)人都對(duì)我非常好,只要有空就
會(huì)主動(dòng)跟我講話,跟我分享工作的心得。但是最后的一段時(shí)間里,因?yàn)槲乙膊恢赖脑颍齻儗?duì)我越來(lái)越冷淡,以前一些基本的要求比如加熱已經(jīng)冷了的咖啡也變
的吞吞吐吐一臉不情愿的感覺(jué)。當(dāng)然,我的感覺(jué)也可能隨心情而變得不太準(zhǔn)確,因?yàn)槲抑皝?lái)的時(shí)候多數(shù)心情不太好,現(xiàn)在來(lái)的時(shí)候多數(shù)心情很好。但我也覺(jué)得可能
另有原因,或者是我的一些瑣碎的小事做的不對(duì)導(dǎo)致的累積效果,比如下面一件事情。
不久前我在1912店居然認(rèn)識(shí)了一個(gè)大洋店的服務(wù)員,當(dāng)然她也是以顧客的身份來(lái)的,她跟本店的服務(wù)員都很熟,這使我忽視了她們存在略微的競(jìng)爭(zhēng)關(guān)系,而后來(lái)
我們聊的很投機(jī),我跟多數(shù)學(xué)管理出身的本科生都能聊的很投機(jī)。后來(lái)我去過(guò)一次大洋店,那是我去的唯一一次,那里的缺點(diǎn)是太吵,人很多,幾乎可以跟KFC、
PizzaHut這樣呼吸困難的場(chǎng)所媲美。后來(lái)我曾想把博客園的一次4人規(guī)模的聚會(huì)定在那里,可惜沙發(fā)已經(jīng)被坐滿了,我們被迫換了地方。
寫到這里,我突然發(fā)現(xiàn)我對(duì)剛剛所說(shuō)的問(wèn)題其實(shí)沒(méi)有發(fā)言權(quán),因?yàn)槲抑皇且粋€(gè)普通的顧客,沒(méi)有投資經(jīng)驗(yàn),沒(méi)有開(kāi)店經(jīng)驗(yàn),也沒(méi)有為這類企業(yè)做過(guò)咨詢,也許她們有
著某些特殊的苦衷我不知道,如果本文對(duì)南京Starbucks有任何冒犯的地方,敬請(qǐng)?jiān)彙H绻僖覟镾tarbucks提一次建議,我可能不會(huì)再提起
任何與服務(wù)員有關(guān)的問(wèn)題,我可能會(huì)說(shuō):“請(qǐng)讓所有的Starbucks店面都通上Wi-Fi,謝謝。”
posted @
2005-09-04 20:59 Brian Sun 閱讀(4450) |
評(píng)論 (16) |
編輯 收藏
“居住在一個(gè)洞穴之中,有一條長(zhǎng)長(zhǎng)的甬道通向外面,它跟洞穴內(nèi)部一樣寬。他們從孩提時(shí)代就在這里,雙腿和脖子皆被鎖住,所以總是在同一地點(diǎn)。因?yàn)楸绘i住也
不能回頭,只能看到眼前的事物。跟他們隔有一段距離的后上方,有一堆火在燃燒。在火和囚徒之間,有一條高過(guò)兩者的路……” ——柏拉圖《理想國(guó)》
這將導(dǎo)致一個(gè)結(jié)果,就是在洞穴中的人即使他們都可以交流,都有思辯能力,都有人類與生具來(lái)的理性和道德觀念,他們也依然會(huì)認(rèn)為他們所看到的就是真實(shí)的世界,即使這個(gè)世界是無(wú)聲的。蘇格拉底說(shuō)“這是難以避免的。”
1。Matrix I(譯:黑客帝國(guó)/母體/矩陣/二十二世紀(jì)殺人網(wǎng)絡(luò))
肉體被作為莊稼一樣在surface種植,靈魂在AI中享受欲望的折磨,這正是對(duì)能源的追求從來(lái)沒(méi)有停止過(guò)的人類,這既是極大的諷刺,也是歷史的終結(jié)——
撒旦為上帝的子民創(chuàng)造了另一個(gè)上帝!因?yàn)槿祟悘纳聛?lái)開(kāi)始,身體所接收到的所有信號(hào)都是來(lái)自Matrix的電子信號(hào)——通過(guò)插在腦后的管子——所以死都不
知道自己一輩子都躺在培養(yǎng)皿里,這就是洞穴寓言。片中著名的一句對(duì)白是“——Why do my eyes hurt?”“——You've
never used them
before.”千萬(wàn)不要以為洞穴寓言就是“井底之蛙”,其實(shí)柏拉圖的思想跟中國(guó)古代的老祖宗們的想法是很不一樣的,或者說(shuō)背道而馳。中國(guó)人強(qiáng)調(diào)不要用肉
眼看世界,要用心眼,而柏拉圖卻說(shuō)不要用心眼,要用肉眼——是的,你可能never used them before!
2。Matrix I & II & III(譯:黑客帝國(guó)/母體/矩陣)
是的,我沒(méi)有搞錯(cuò)。我一直認(rèn)為黑客帝國(guó)I是一部電影,而黑客帝國(guó)I加II加III合起來(lái)是另一部電影!這部電影講述了在未來(lái)的世界(當(dāng)然,是否是未來(lái)的世
界還需要證明,考,難道是現(xiàn)實(shí)世界?!),AI創(chuàng)造了兩個(gè)虛擬現(xiàn)實(shí)環(huán)境,黑學(xué)者(比如我)們稱之為虛擬現(xiàn)實(shí)游戲,就像未來(lái)版的RPG,一個(gè)稱之為
Matrix,另一個(gè)稱之為Zion,人們首先在Matrix中玩,玩的好的人繼續(xù)玩,玩的不太好的人(比如頭疼)可能會(huì)被選中玩另一個(gè)游戲Zion。具
有反抗意識(shí)的人通常會(huì)被選中,但是結(jié)局是什么,取決于你的多次“選擇”。"Choice" is more important than
"Real"!但是,如果你要問(wèn)“哪一個(gè)世界是真的?”那么不好意思,you asked the wrong question!
3。The Thirteenth Floor(譯:第十三層樓)
人類創(chuàng)造了一個(gè)虛擬現(xiàn)實(shí)游戲(跟上面講的是同一個(gè)概念),游戲中的AI玩家居然發(fā)明了同樣的一個(gè)游戲!也就是說(shuō)AI發(fā)明了AI,這就像機(jī)器制造機(jī)器一樣,
是人類一個(gè)時(shí)代的結(jié)束。現(xiàn)在的問(wèn)題是“哪一個(gè)世界是真的?”我不知道導(dǎo)演是否想到了這一層,但至少影迷想到了!如果電影中男主角到的最后一個(gè)世界是真實(shí)世
界的話,那么他怎么可能通過(guò)殺死他自己而互換位置呢?這只有一個(gè)可能,那就是——沒(méi)有真實(shí)的世界!那我們現(xiàn)在的世界會(huì)不會(huì)也是?。。。。呵呵,
sorry,joke!是不是有夠“洞穴寓言”啊?!是不是比“洞穴寓言”還“洞穴寓言”啊?除了這個(gè)想法在當(dāng)時(shí)比較新穎以外,這部電影沒(méi)什么其它優(yōu)點(diǎn)
了。
4。Avalon (譯:阿瓦隆)
AI的起源在哪里?我覺(jué)得這是評(píng)價(jià)某個(gè)硬科幻的思路夠不夠科幻的一個(gè)重要標(biāo)志。“第十三層樓”認(rèn)為AI是某個(gè)天才科學(xué)家的發(fā)明,這不符合人類目前的社會(huì)和
歷史原理;“我,機(jī)器人”和“黑客帝國(guó)”認(rèn)為人類為了解放生產(chǎn)力和提高人民的生活水平而創(chuàng)造了AI,已經(jīng)比較符合實(shí)際可能的情況了;但是,
“Avalon”更強(qiáng),他認(rèn)為人類為了娛樂(lè)而創(chuàng)造了AI,想想看,現(xiàn)在世界上最先進(jìn)的芯片技術(shù)在哪里?在Intel嗎?不是,在顯卡芯片制造商的手里!這
不正是為了娛樂(lè)業(yè)而發(fā)展的技術(shù)嗎?個(gè)人認(rèn)為這種想法更符合現(xiàn)實(shí)狀況,這使得在數(shù)十年或數(shù)百年后這部電影所說(shuō)的故事成為現(xiàn)實(shí)的可能性大大增加。
不好意思,有點(diǎn)跑題。“Avalon”告訴我們,未來(lái)的人類大都沉浸于一部游戲之中,游戲里的人分不清真實(shí)的世界與虛幻的世界,只有女主角還好。但是,影
片的結(jié)局卻告訴我們其實(shí)女主角所在的那個(gè)世界也是虛幻的世界。ok,所以同黑客I&II&III一樣,沒(méi)有真實(shí)的世界,每個(gè)人都處在巖洞
之中,并認(rèn)為影子就是世界。
5。Island (譯:逃出克隆島)
新片,昨晚才看的。與前幾部電影不同,這部片子不是講人工智能的。它描述了人類為了拯救自己而創(chuàng)造了很多個(gè)克隆人,克隆人們從小就生活在一個(gè)籠子里(地下
軍事掩體),他們被欺騙說(shuō)外面的世界被污染了,我甚至懷疑騙他們的人還拍了部科幻電影告訴他們這是真實(shí)的記錄,有點(diǎn)類似韓國(guó)動(dòng)畫片“晴空戰(zhàn)士”。最終他們
還是懷疑自己一直被欺騙,并逃了出來(lái),當(dāng)看到外面的世界時(shí),他們驚呆了,因?yàn)樗麄兊闹巧滔喈?dāng)于15歲的孩子,且從未見(jiàn)過(guò)紅綠燈,也不懂性。與洞穴寓言不同
的是,他們僅僅是人騙人,而不是肉體騙靈魂,也不是靈魂騙肉體,所以難免故事情節(jié)會(huì)有些單調(diào)。更令人氣氛的是,這部電影充滿了微軟公司的廣告,包括醒目的
Xbox的綠色標(biāo)志和MSN的蝴蝶標(biāo)志。Michael Bay的行為應(yīng)該收到全球影迷的聲討!
看電影的泡泡
posted @
2005-09-03 15:51 Brian Sun 閱讀(6110) |
評(píng)論 (5) |
編輯 收藏
還記得我的文章嗎?http://www.aygfsteel.com/briansun/archive/2005/03/21/2274.html
現(xiàn)在,有兩件事情需要補(bǔ)充:
1。我當(dāng)時(shí)(3月份)的猜測(cè)已經(jīng)得到證實(shí),Borland已經(jīng)宣布作為獨(dú)立軟件的JBuilder已經(jīng)走到了它生命的盡頭,下一個(gè)版本的JBuilder
(可能是2006,今年年底將發(fā)行Beta版)將建立在Eclipse的基礎(chǔ)之上。也就是說(shuō)作為Eclipse對(duì)頭的JBuilder已不復(fù)存在,現(xiàn)在的
JBuilder將是以一組Eclipse的插件形式提供給它忠實(shí)的用戶和粉絲的。
2。BEA已經(jīng)把AspectWerks貢獻(xiàn)給AspectJ這個(gè)已經(jīng)不是新聞了,但是直到今天我才意識(shí)到這一戰(zhàn)略的真正含義!原本AspectJ由
IBM一手主導(dǎo)的情況已經(jīng)被改變了(施樂(lè)已經(jīng)交出了AspectJ整個(gè)開(kāi)發(fā)小組,現(xiàn)在的領(lǐng)導(dǎo)人是IBM的Adrian
Colyer),現(xiàn)在的AspectJ是由IBM和BEA聯(lián)合控制的產(chǎn)品。看看有關(guān)AspectJ
5的隨便一篇報(bào)道吧,長(zhǎng)期以來(lái)在AOP領(lǐng)域內(nèi)的楚河漢界——語(yǔ)法方面和XML方面——轉(zhuǎn)眼便成了一條通天大道!而AspectJ昔日的最大競(jìng)爭(zhēng)對(duì)手今天也
手拉手肩并肩的走在了一起,就好像那些戰(zhàn)火和硝煙只存在于日記中一樣。
2004年,AOP的創(chuàng)始人Kiczales曾有過(guò)一段訪談,大概介紹了AOP的標(biāo)準(zhǔn)化之路,其中給出了兩條道路供世人選擇:以AspectJ為標(biāo)準(zhǔn),或
者,以AspectJ來(lái)制定標(biāo)準(zhǔn),現(xiàn)在看來(lái)IBM和BEA已經(jīng)代表人類作出了選擇。想到這。。。。。。我真的無(wú)話可說(shuō)了。
而且,BEA的野心還不僅僅局限于此。“在開(kāi)源的世界里,什么是貢獻(xiàn)?”這個(gè)問(wèn)題不好回答,但是下面這個(gè)問(wèn)題要簡(jiǎn)單一些:“靠昆蟲傳媒的花為什么都要好看
一些?”BEA貢獻(xiàn)出AspectWerks的代價(jià)是得到了整個(gè)AspectJ,并且它已經(jīng)多次表示將在JRockit中全面支持AspectJ了!設(shè)想
一下這是什么樣的局面吧,作為中間件巨頭的BEA,現(xiàn)在已經(jīng)具備了隨時(shí)可以將它龐大的產(chǎn)品線全方位的平移到輕量級(jí)容器的路線上去了,因?yàn)樗梢詮奶摂M機(jī)的
級(jí)別支持AOP,釜底抽薪式的對(duì)所有開(kāi)源容器發(fā)起新一輪的剿匪運(yùn)動(dòng)!IBM怎么辦?IBM也沒(méi)辦法啊,除了應(yīng)招之外還能干什么,好在IBM的精力全在這方
面了,又有AspectJ的主控制權(quán)。再假想一下——最后一次假想,如果IBM和BEA聯(lián)手轉(zhuǎn)向輕量級(jí)容器。。。。。。寧可。。。不要讓。。。漏網(wǎng)!——
噓,小聲點(diǎn)!
寫日記的泡泡
posted @
2005-09-02 17:23 Brian Sun 閱讀(2832) |
評(píng)論 (5) |
編輯 收藏
1。隨處可見(jiàn)猜想。
在未來(lái)的軟件開(kāi)發(fā)過(guò)程中,AOP將以一種基礎(chǔ)編程能力的形式出現(xiàn),與OOP共同發(fā)展,成為主流開(kāi)發(fā)環(huán)境的一個(gè)組成部分。而目前為止,AOP只是作為一種開(kāi)發(fā)工具、或運(yùn)行時(shí)代碼而存在。到了那個(gè)時(shí)候,可能沒(méi)有哪個(gè)產(chǎn)品聲稱:“我使用了AOP”,因?yàn)闆](méi)有哪個(gè)產(chǎn)品沒(méi)有使用AOP,就像現(xiàn)在沒(méi)有哪個(gè)產(chǎn)品沒(méi)有使用OOP一樣。就算你的源代碼中沒(méi)有應(yīng)用到編程語(yǔ)言的AOP能力,你也可能調(diào)用了某個(gè)應(yīng)用了AOP的基礎(chǔ)庫(kù)。事實(shí)上,AOP之父Kiczales認(rèn)為AOP可能首先在操作系統(tǒng)上有一定規(guī)模的應(yīng)用。
2。語(yǔ)言級(jí)猜想。
AOP的真正實(shí)現(xiàn)是在一個(gè)特定的語(yǔ)言基礎(chǔ)上的。比如數(shù)年之后,人類開(kāi)始普遍使用K語(yǔ)言(K是J的后一個(gè)字母),K語(yǔ)言在語(yǔ)言本身上就可以編織和橫切。此時(shí)AOP才得到真正的成熟,因?yàn)槌绦騿T在編寫代碼時(shí)可能根本不知道自己用到的是曾經(jīng)的OO還是現(xiàn)在的AO,只有了解K語(yǔ)言虛擬機(jī)構(gòu)造和背后實(shí)現(xiàn)的人才知道。但是,可能由于人固有的思維方式的問(wèn)題吧,AOP仍然不會(huì)比OOP要使用的更多,甚至有可能仍然是Kiczales所提到的15% Solution!但是,從語(yǔ)言的角度去實(shí)現(xiàn)AOP也許會(huì)給人類的編程觀念帶來(lái)巨大的變化,這種變化就像OO所帶來(lái)的一樣。
3。存在AOD/AOA猜想。
OOP對(duì)人類的影響遠(yuǎn)不如它的兩個(gè)弟弟OOA/OOD,后兩者已經(jīng)為整個(gè)軟件開(kāi)發(fā)行業(yè)帶來(lái)了一次意義深遠(yuǎn)的革命,它至少使得全世界開(kāi)發(fā)團(tuán)隊(duì)的人數(shù)擴(kuò)大了10倍,開(kāi)發(fā)工具和平臺(tái)的復(fù)雜程度增加了10倍,完成客戶某些簡(jiǎn)單要求的成本降低了90%,唯一的遺憾的是,軟件開(kāi)發(fā)的效率幾乎沒(méi)有數(shù)量級(jí)上的變化(依據(jù)《沒(méi)有銀彈》)。既然存在AOP,我們猜想也會(huì)存在AOD/AOA,比如會(huì)存在面向方面的重構(gòu)手段,面向方面的設(shè)計(jì)模式,面向方面的最佳實(shí)踐,面向方面的過(guò)程管理,以及在UML的未來(lái)版本中看到為面向方向而專門做的改進(jìn),甚至添加一個(gè)新的UML圖類型。當(dāng)這些東西都產(chǎn)生的時(shí)候,AOP才真正發(fā)展到了鼎盛時(shí)期。
4。可執(zhí)行用例猜想。
AOP是一個(gè)廣泛適用的充滿想象空間的新技術(shù),但是目前人們對(duì)AOP的研究方向過(guò)于狹窄,大部分聲稱正在研究AOP的開(kāi)源項(xiàng)目其實(shí)是把AOP當(dāng)成一個(gè)輔助工具來(lái)使用,這些項(xiàng)目中又有相當(dāng)一部分是在做企業(yè)開(kāi)發(fā)環(huán)境下的容器,他們并沒(méi)有針對(duì)AOP本身進(jìn)行開(kāi)發(fā)。事實(shí)上,依照J(rèn)acbson的說(shuō)法,AOP將直接導(dǎo)致軟件的開(kāi)發(fā)分為兩種形式——對(duì)模塊的開(kāi)發(fā)和對(duì)用例的開(kāi)發(fā),現(xiàn)在的用例僅僅是圖紙,必須要轉(zhuǎn)變?yōu)镺O代碼才能執(zhí)行,但是一旦有了AOP,AOP可以直接依據(jù)用例的定義,將多個(gè)不同的模塊(可能來(lái)自不同的開(kāi)發(fā)單位)連接起來(lái),形成方面,而方面本身是可以執(zhí)行的(語(yǔ)言級(jí)猜想),所以用例也就不再是圖紙而是可以執(zhí)行的了。這對(duì)于以UML為核心的現(xiàn)代軟件過(guò)程來(lái)說(shuō),是個(gè)極好的信號(hào)。
5。標(biāo)準(zhǔn)化猜想。
OO的成功經(jīng)驗(yàn)告訴我們,要想取得最后的勝利,就要一致對(duì)外,統(tǒng)一了內(nèi)部的概念,剩下的爭(zhēng)論就只有實(shí)現(xiàn)問(wèn)題了。我個(gè)人認(rèn)為,多數(shù)OOP語(yǔ)言在概念上都是一致的,這種概念被語(yǔ)言學(xué)稱之為語(yǔ)義,多數(shù)OOP的語(yǔ)義來(lái)自Smalltalk和C++這些早期嘗試者,少數(shù)來(lái)自Java這種在技術(shù)的成熟期涌現(xiàn)出的商業(yè)產(chǎn)品。AOP目前還面臨著這個(gè)問(wèn)題。業(yè)界對(duì)AOP的標(biāo)準(zhǔn)化過(guò)程有兩個(gè)猜想,一是由AspectJ領(lǐng)頭,各大AOP實(shí)現(xiàn)都以AspectJ的語(yǔ)義作為研究問(wèn)題的基本用語(yǔ),設(shè)計(jì)和實(shí)現(xiàn)沿用現(xiàn)在的思路;另一個(gè)猜想是由權(quán)威組織,(開(kāi)源、商業(yè)、或全球研究組織),如Eclipse/IBM/OOPSLA等等拿出一個(gè)統(tǒng)一的AOP語(yǔ)義內(nèi)核,所有AOP項(xiàng)目都以該內(nèi)核為基礎(chǔ)開(kāi)發(fā)。Java虛擬機(jī)是前一種思路的成功案例,后者則以XML為代表。
6。全靜態(tài)編織猜想。
下面討論一個(gè)實(shí)際的技術(shù)問(wèn)題。時(shí)下多數(shù)AOP項(xiàng)目采用的編織技術(shù)無(wú)外乎兩種:靜態(tài)編織和動(dòng)態(tài)編織。前者是指在編譯前(預(yù)編譯期)、編譯期、和編譯后編織,后者是指在運(yùn)行期編織。Kiczales認(rèn)為雖然沒(méi)有明顯的技術(shù)缺陷,但動(dòng)態(tài)編織可能會(huì)面臨一些發(fā)展遠(yuǎn)景的問(wèn)題,他稱之為“軟件的演化問(wèn)題”。不知道我對(duì)大師觀點(diǎn)的理解是不是準(zhǔn)確,我認(rèn)為由于被編織的代碼是在變化(發(fā)展)中的,我們總是希望這種變化對(duì)編織本身的影響最小,這時(shí)靜態(tài)編織面臨的問(wèn)題最多就是重新編譯,而動(dòng)態(tài)編織可能不會(huì)那么簡(jiǎn)單。此外,全靜態(tài)編織會(huì)導(dǎo)致另一個(gè)優(yōu)點(diǎn)——這聽(tīng)起來(lái)有點(diǎn)奇怪——就是能力較弱,因?yàn)槿o態(tài)編織繼承了OO語(yǔ)言本身的約束,比如Java的約束和.NET之CLR的約束等等,這對(duì)于更規(guī)范的使用開(kāi)發(fā)利器是大有好處的。“應(yīng)該對(duì)人類準(zhǔn)備大規(guī)模應(yīng)用的每一種新工具小心鉗制。”
7。AOP的誕生之迷猜想。
Kiczales先生在從事AOP的研究和開(kāi)發(fā)之前也曾接觸過(guò)其它對(duì)OOP的改良研究,其中包括反射和元對(duì)象技術(shù)。事實(shí)上,心平氣和的說(shuō),后兩者的變通能力和靈活程度都在前者之上,但是正因?yàn)槿绱耍Z(yǔ)言學(xué)家們認(rèn)為,這些技術(shù)并不能有效的改善OOP的弊端,甚至還有可能引狼入室,帶來(lái)新的“狼人問(wèn)題”。后來(lái),當(dāng)Kiczales發(fā)現(xiàn)AOP時(shí),他明白這才是人們真正需要的,他認(rèn)為他們抓住了問(wèn)題的咽喉。時(shí)至今日,AOP的實(shí)現(xiàn)技術(shù)已經(jīng)千姿百態(tài),百家爭(zhēng)鳴了,但是,AOP創(chuàng)立之初的種種想法也在這種百花爭(zhēng)艷中漸漸被人們遺忘,現(xiàn)在利用反射、元對(duì)象技術(shù)以及種種雙刃劍式的技術(shù)來(lái)實(shí)現(xiàn)AOP的想法已經(jīng)像爭(zhēng)搶參院席位一樣爭(zhēng)奪市場(chǎng)的認(rèn)可,這是事物的發(fā)展還是理想的倒退?AOP何時(shí)才能回歸它的本原?上天為它安排的命運(yùn)究竟如何,我們拭目以待。
最近,我和我的幾個(gè)朋友正在組織一批開(kāi)源斗士們合作編寫AOP.NET,這是一個(gè)開(kāi)源軟件,在博客園上可以看到部分有關(guān)該項(xiàng)目的消息。但是由于種種原因,我們對(duì)一些基本的問(wèn)題還沒(méi)有達(dá)成共識(shí),本文來(lái)自我對(duì)AOP的一貫看法,也是我對(duì)社團(tuán)里很多問(wèn)題的一個(gè)集中性回答吧。
開(kāi)源泡泡
(轉(zhuǎn)載本文需注明出處:Brian Sun @ 爬樹(shù)的泡泡[http://www.aygfsteel.com/briansun])
posted @
2005-08-31 13:53 Brian Sun 閱讀(4235) |
評(píng)論 (3) |
編輯 收藏
這一天必須要寫一篇blog,這是我對(duì)自己的要求,因?yàn)檫@一天對(duì)我來(lái)說(shuō)太不平常了。
首先要慶祝一下中國(guó)情人節(jié),因?yàn)槠呦κ前崔r(nóng)歷算的,而后面我要說(shuō)的幾個(gè)紀(jì)念日都是按西歷算的,所以這在同一天純屬巧合。記得我在今年西洋情人節(jié)的那一天也
寫過(guò)一篇blog,呵呵,算是呼應(yīng)一下吧。祝愿天下所有的請(qǐng)人都能過(guò)好這一天,尤其是中國(guó)的請(qǐng)人,不要吵架,不要鬧別扭,不要過(guò)得太平庸免得后悔,不要在
這一天表白免得被據(jù)了以后終生難忘,不要在這一天去太遠(yuǎn)的地方玩,別忘了小偷們也想過(guò)好情人節(jié),最后,一定要記住,日子是慢慢過(guò)的,所以不要花太多錢,哈
哈。
這一天之所以對(duì)我的一生都有巨大的影響,其實(shí)真正的原因發(fā)生在1995年。那一年我小學(xué)畢業(yè),按照(我家里的)慣例,我要在假期學(xué)一樣?xùn)|西。從小學(xué)到初中
我學(xué)過(guò)國(guó)際象棋,學(xué)過(guò)英語(yǔ)(那時(shí)候小學(xué)是不教英語(yǔ)的),學(xué)過(guò)數(shù)學(xué)競(jìng)賽(我拿過(guò)不少獎(jiǎng),自己贊一下),學(xué)過(guò)騎車,學(xué)過(guò)游泳,其中數(shù)學(xué)競(jìng)賽成績(jī)最好,但是每一
樣都對(duì)我的一生產(chǎn)生了巨大影響,讓我受用終生。下面該學(xué)什么也是家里一直爭(zhēng)議的話題,父親在這件事情上具有最終決定權(quán),他很想讓我學(xué)電腦,但是說(shuō)實(shí)話,電
腦是什么,我們家沒(méi)人知道。后來(lái)父親大約花了幾百塊買了一臺(tái)“小霸王學(xué)習(xí)機(jī)”,現(xiàn)在看來(lái)就是一個(gè)有QWERTY鍵盤的游戲機(jī),但是有些學(xué)習(xí)功能,比如五筆
字型,廣告是成龍做的,很有吸引力。我整個(gè)七月份就在家里玩學(xué)習(xí)機(jī),玩的很開(kāi)心,父親發(fā)現(xiàn)我的指法越來(lái)越熟練,覺(jué)得我學(xué)電腦可能會(huì)有天賦,就給我報(bào)名參加
了一個(gè)學(xué)習(xí)班,他哪里知道,我后來(lái)學(xué)習(xí)的東西同指法幾乎沒(méi)什么關(guān)系。
學(xué)習(xí)班是由父親的一個(gè)朋友辦的,我在后來(lái)的很多年中都跟他保持密切的聯(lián)系,他是那種入門很早的人但是有點(diǎn)玩世不恭的人,其實(shí)他沒(méi)有教過(guò)我一天課,但我仍然認(rèn)為
他是我的啟蒙老師。學(xué)習(xí)期共有15天,安排的很有意思,5天DOS,5天五筆字型、漢字系統(tǒng)和字處理軟件(UCDOS/WPS),最后5天Basic,老
師在考慮要不要教Foxbase,后來(lái)決定還是basic,容易讓人接受,也許我應(yīng)該認(rèn)認(rèn)真真感謝一下這個(gè)決策,如果當(dāng)年我學(xué)的真的是foxbase,我
一定會(huì)聽(tīng)不懂或者因?yàn)闊o(wú)聊而不會(huì)走向編程的道路的。
我一下子就被Basic的世界吸引了,一行一行有意義的單詞和數(shù)學(xué)公式的組合,竟然能“跑”出一個(gè)自動(dòng)化的程序來(lái),太神奇了,我立即被這種力量征服了,并
且在未來(lái)的10年中從未停止過(guò)對(duì)這種力量的追求。后來(lái)的一個(gè)老師說(shuō),人類發(fā)明每一樣?xùn)|西都是對(duì)人的一種自然屬性的延伸,我覺(jué)得很有道理,人類發(fā)明汽車是對(duì)
人腳的延伸,發(fā)明望遠(yuǎn)鏡是對(duì)眼睛的延伸,發(fā)明電話是對(duì)耳朵和發(fā)聲能力的延伸,而發(fā)明電腦則是對(duì)思維能力的延伸。對(duì)于一個(gè)在小學(xué)時(shí)就對(duì)豐富多彩的數(shù)學(xué)世界充
滿興趣的人來(lái)說(shuō),對(duì)思維能力的延伸是多么必要而有價(jià)值的一件事情啊。
這一期學(xué)習(xí)班是從8月1日到15日,所以如果我記得沒(méi)錯(cuò)的話,10年前的今天我第一次接觸了編程!這難道不是個(gè)值得慶祝的日子嗎!
學(xué)習(xí)班的最后一天是多媒體電腦的演示,因?yàn)楫?dāng)時(shí)剛剛出現(xiàn)VCD2.0,MPEG協(xié)議也剛剛引進(jìn)國(guó)內(nèi),所以用電腦放出來(lái)的清晰電影實(shí)在令人著迷,(所謂清
晰,是指在13寸弧屏上的效果),看完侏羅紀(jì)公園一之后,學(xué)習(xí)班就結(jié)束了,人們也回家了,只有我還在一臺(tái)80286上用basic寫各種各樣有趣的東西。
剛剛提到的那個(gè)老師給了我一項(xiàng)任務(wù)——寫一個(gè)統(tǒng)計(jì)成績(jī)和平均分的程序,可惜當(dāng)時(shí)不懂得保存,這個(gè)程序現(xiàn)在已經(jīng)失傳了,但它確實(shí)是我寫的第一個(gè)軟件。
因?yàn)榻佑|了編程語(yǔ)言和排序算法,從某種意義上說(shuō)也就算是個(gè)完整的程序員了。開(kāi)學(xué)以后我就報(bào)名參加了中學(xué)生計(jì)算機(jī)競(jìng)賽,恰好競(jìng)賽也是編程性質(zhì)的,很多年以后
我才知道省里的競(jìng)賽AOI(Anhui Olympics of
Infomation)是仿NOI(National...)的,而NOI是仿IOI(International...)的,而IOI則是仿ACM
ICPC(國(guó)際大學(xué)生編程競(jìng)賽)的。在競(jìng)賽班上的學(xué)習(xí)對(duì)我的啟發(fā)和幫助就不言而喻了,你可以想象一個(gè)初中生每天都跟離散數(shù)學(xué)、組合數(shù)學(xué)、圖論、數(shù)據(jù)結(jié)構(gòu)、
Quick Basic/Turbo Pascal/Turbo
C、和一些叫不出名字的算法(比如笛曲克斯拉)打交道的樣子嗎?這些都使我至今收益,其中最值得贊一下的成績(jī)就是連續(xù)3年在本市的競(jìng)賽中奪魁,但是由于本省人才濟(jì)濟(jì),以數(shù)十分之差
(數(shù)十分在競(jìng)賽中不到一個(gè)TestCase)沒(méi)能進(jìn)入省隊(duì),后來(lái)進(jìn)入省隊(duì)的幾個(gè)人都拿了全國(guó)金牌并參加了國(guó)際競(jìng)賽,還有人拿了國(guó)際金牌。我想假如我在別的
省可能已經(jīng)進(jìn)了國(guó)家隊(duì),但是我仍然不后悔,那樣我不會(huì)很早學(xué)OO,不會(huì)選文科,也不見(jiàn)得會(huì)有現(xiàn)在的獨(dú)特思維方式。
成績(jī)也常常伴隨著失敗存在。第一次參加競(jìng)賽的失敗使我看清了Basic語(yǔ)言本身的缺陷,這使我決定要學(xué)習(xí)一種純面向過(guò)程語(yǔ)言,Pascal語(yǔ)言由于描述算
法和數(shù)據(jù)結(jié)構(gòu)的能力及其在競(jìng)賽中的普及程度首當(dāng)其沖,但我沒(méi)有選,而是去安徽大學(xué)學(xué)了C語(yǔ)言,這也是一次對(duì)我后來(lái)發(fā)展路線產(chǎn)生巨大影響的決策,而這個(gè)決策
也發(fā)生在8月,安大的這一期培訓(xùn)班,也是在8月中旬。
除了這兩件事情之外,今天還有一個(gè)值得紀(jì)念的地方,那就是半年前的今天——2005年2月11日,我寫了自己的第一篇blog,哈
哈,dudu別急著感動(dòng),那篇文章好像是批評(píng)BlogJava的。:) Blog是我職業(yè)生涯非常重要的一件事,以前常常苦于有想法沒(méi)機(jī)會(huì)表達(dá),不表達(dá)自己都記不住,或者由于沒(méi)有被語(yǔ)言化而使得很多
想法都轉(zhuǎn)瞬即逝,或流于表面不能深入思考,blog真是個(gè)好東西。
不多說(shuō)了,該吃中飯了,回到我們前面的話題,我小時(shí)候就想知道牛郎織女到底是一年見(jiàn)一次還是一天見(jiàn)一次呢,天上一日地上一年啊,哈哈,搞不懂。
posted @
2005-08-11 12:00 Brian Sun 閱讀(2111) |
評(píng)論 (9) |
編輯 收藏
摘要: {關(guān)鍵字}
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)/Test Driven Development/TDD
測(cè)試用例/TestCase/TC
設(shè)計(jì)/Design
重構(gòu)/Refactoring
{目錄}
TDD的目標(biāo)
TDD的優(yōu)點(diǎn)
TDD的步驟
FAQ
Best Practise
關(guān)于單元測(cè)試
實(shí)例:Fibonacci數(shù)列
關(guān)于本文的寫作
后記:Martin Fowler在中國(guó)
鳴謝
什么時(shí)候重構(gòu)?
什么時(shí)候設(shè)計(jì)?
什么時(shí)候增加新的TestCase?
TestCase該怎么寫?
TDD能幫助我消除Bug嗎?
我該為一個(gè)Feature編寫TestCase還是為一個(gè)類編寫TestCase?
什么時(shí)候應(yīng)該將全部測(cè)試都運(yùn)行一遍?
什么時(shí)候改進(jìn)一個(gè)TestCase?
。。。。。。
(轉(zhuǎn)載本文需注明出處:Brian Sun @ 爬樹(shù)的泡泡[http://www.briansun.com])
閱讀全文
posted @
2005-07-31 02:08 Brian Sun 閱讀(15326) |
評(píng)論 (26) |
編輯 收藏
英文名:About Face 2.0 - The Essentials Of Interaction Design
中文名:軟件觀念革命——交互設(shè)計(jì)精髓
作者:Alan Cooper,Robert M. Reimann
泡泡的評(píng)價(jià):
本書第一版幾乎引發(fā)了一張全球軟件界的革命,然而這次革命的影響卻由于種種原因未能在今天的多數(shù)軟件中體現(xiàn),這不是人類的悲哀,這是我們要為之奮斗的事
業(yè)。自從我們選擇入了軟件這一行,我們就有義務(wù)為用戶提供經(jīng)過(guò)出色設(shè)計(jì)的軟件,可盡管如此,我們當(dāng)中仍然有很多人根本不知道什么叫設(shè)計(jì)。本書的作者
Alan Cooper為微軟拿到了為數(shù)不多的幾個(gè)Jolt大獎(jiǎng)中的一個(gè)——Visual
Basic2.0,也為我們提供了為數(shù)不多的幾本好書中的一本——About
Face2.0。我們崇拜大師,并不因?yàn)樗麄兪巧系郏且驗(yàn)樗麄兪巧系鄣牟嫉勒撸晃覀兛释O(shè)計(jì),并不因?yàn)樵O(shè)計(jì)代表一切,而是因?yàn)橐磺卸家揽吭O(shè)計(jì)。書的扉
頁(yè)上寫著:“因?yàn)樵O(shè)計(jì),所以出色”。
China-pub的簡(jiǎn)介:
本書是一本由一位在交互設(shè)計(jì)前沿有著10年設(shè)計(jì)咨詢經(jīng)驗(yàn)及25年計(jì)算機(jī)工業(yè)界經(jīng)驗(yàn)的卓越權(quán)威撰寫的設(shè)計(jì)數(shù)字化產(chǎn)品行為的啟蒙書。它探索了一個(gè)獨(dú)特的設(shè)計(jì)領(lǐng)
域,即復(fù)雜系統(tǒng)行為的設(shè)計(jì)——特別是軟件激活技術(shù)。本書論述一種具有革命意義的設(shè)計(jì)觀念——人類驅(qū)動(dòng)設(shè)計(jì)過(guò)程。
本書是一本難得的大師經(jīng)典之作,應(yīng)該是一本產(chǎn)品規(guī)劃師、界面設(shè)計(jì)師以及可用性工程職業(yè)人員或者程序員都想得到的書。
目錄:
第一篇 了解你的用戶
第一部分 彌合差距
1 目標(biāo)導(dǎo)向設(shè)計(jì)
2 實(shí)現(xiàn)模型和心智模型
3 新手. 專家和中間用戶
4 理解用戶:定性研究
5 用戶建模:人物角色和目標(biāo)
6 腳本提綱:將目標(biāo)轉(zhuǎn)換為設(shè)計(jì)
7 綜合好的設(shè)計(jì):原理和模式
第二篇 設(shè)計(jì)行為和形式
第二部分 除去障礙,達(dá)到目標(biāo)
8 軟件姿態(tài)
9 和諧與流
10 消除附加工作
11 導(dǎo)航和調(diào)整
12 理解撤銷
13 重新思考“ Files ”和“ Save ”
第三部分 提供高效能和愉悅
14 設(shè)計(jì)體貼的軟件
15 設(shè)計(jì)智能的軟件
16 改進(jìn)數(shù)據(jù)檢索
17 改進(jìn)數(shù)據(jù)輸入
18 為不同的需要進(jìn)行設(shè)計(jì)
第四部分 應(yīng)用視覺(jué)設(shè)計(jì)原理
19 外觀設(shè)計(jì)
20 隱喻. 習(xí)慣用法和啟示
第三篇 交互細(xì)節(jié)
第五部分 鼠標(biāo)和操作
21 直接操作和定點(diǎn)設(shè)備
22 選 擇
23 拖 放
24 操作控件. 對(duì)象和連接
第六部分 控件及其行為
25 窗口行為
26 使用控件
27 菜單:教學(xué)向量
28 使用菜單
29 使用工具條和工具提示
30 使用對(duì)話框
31 對(duì)話框禮節(jié)
32 創(chuàng)建更好的控件
第七部分 與用戶的交流
33 消除錯(cuò)誤
34 通知和確認(rèn)
35 與用戶的其他交流方式
36 安裝過(guò)程
第八部分 超越桌面的設(shè)計(jì)
37 Web 設(shè)計(jì)
38 嵌入式系統(tǒng)的設(shè)計(jì)
posted @
2005-07-29 13:29 Brian Sun 閱讀(3378) |
評(píng)論 (2) |
編輯 收藏
1。項(xiàng)目概述簡(jiǎn)單的說(shuō)就是“WHAT IS”。向任何對(duì)該項(xiàng)目感興趣的角色傳達(dá)這些基本的必要的信息。
2。風(fēng)險(xiǎn)列表以頭腦風(fēng)暴的方式列出項(xiàng)目可能遇到的所有風(fēng)險(xiǎn)。風(fēng)險(xiǎn)列表一定要是客觀的,既不能推卸責(zé)任也不能表決心獻(xiàn)殷勤,要實(shí)事求是。
3。用例需求的規(guī)范表現(xiàn)形式。用例并不一定要用UML用例圖來(lái)表示,但是顆粒度是用例最難以把握的問(wèn)題之一。
4。設(shè)計(jì)圖通常用于總體設(shè)計(jì),可以是UML圖,也可以是CRC卡,還可以是更靈活的一些東西,視項(xiàng)目組成員的習(xí)慣和水平而定。
5。構(gòu)建工具如Ant腳本,目的是實(shí)現(xiàn)每日構(gòu)建。
6。版本管理悲觀鎖如VSS或樂(lè)觀鎖如CVS/SVN,都無(wú)所謂,關(guān)鍵是要能管理不同的分支和歷史工作成果。
7。測(cè)試用例按TDD的說(shuō)法,測(cè)試用例應(yīng)該打成包,隨產(chǎn)品已經(jīng)發(fā)布,這樣在每次修改代碼之后或發(fā)布一個(gè)新版本之前都可以確保之前的代碼仍然是有效的。
8。產(chǎn)品包括二進(jìn)制發(fā)布包和所有導(dǎo)致該發(fā)布包的源代碼或原始配置文件。
9。發(fā)布說(shuō)明簡(jiǎn)述這一版與上一版的不同。當(dāng)然還要包括版權(quán)聲明、其它商品的版權(quán)聲明、和許可證。
10。開(kāi)發(fā)計(jì)劃和迭代計(jì)劃項(xiàng)目過(guò)程中產(chǎn)生的制品,為日后開(kāi)發(fā)其它項(xiàng)目提供參考資料。
RUP泡泡
posted @
2005-07-22 09:46 Brian Sun 閱讀(2150) |
評(píng)論 (4) |
編輯 收藏
近100年來(lái)美國(guó)經(jīng)濟(jì)學(xué)界和管理學(xué)界的主流理論和理論框架,都會(huì)或多或少的在其它領(lǐng)域的主流理論和理論框架中產(chǎn)生映射,這是很多主修經(jīng)管專業(yè)的學(xué)生改行進(jìn)入其它領(lǐng)域后總的心得。在下不才,也是其中一員,并且也有一點(diǎn)自己的心得。
最近十年管理學(xué)界對(duì)體驗(yàn)經(jīng)濟(jì)的理論層出不窮,形成理論界的一大熱點(diǎn)。總的來(lái)說(shuō),體驗(yàn)經(jīng)濟(jì)是將未來(lái)的經(jīng)濟(jì)模式,同產(chǎn)品經(jīng)濟(jì)、商品經(jīng)濟(jì)和服務(wù)經(jīng)濟(jì)相區(qū)別,對(duì)這個(gè)概念不了解的朋友可以先看一個(gè)寫在《體驗(yàn)經(jīng)濟(jì)》一書扉頁(yè)上的這個(gè)案例:
Rebecca的媽媽小時(shí)候過(guò)生日,Rebecca的奶奶自己親手做蛋糕為她慶祝,她的原料比如奶油、雞蛋、面粉等等都是從鄰街的小店里面一美分一美分買來(lái)的。Rebecca小時(shí)候過(guò)生日,媽媽打電話給附近的一家蛋糕店,蛋糕店立即送來(lái)的美味可口的蛋糕,這樣Rebecca可以請(qǐng)鄰居家的小孩來(lái)過(guò)Party,這個(gè)蛋糕只要花十幾美元。現(xiàn)在Rebecca的女兒過(guò)生日,Rebecca將整個(gè)生日交給Disney公司去辦,公司的姐姐們帶Rebecca的女兒和她的小伙伴們?nèi)コ墙嫉囊粋€(gè)小山坡野營(yíng)。在那里,孩子們學(xué)會(huì)了自己搭帳篷,擠牛奶,采野生的葡萄釀酒,整理破舊的茅草屋。在一天的獵奇旅程之后,公司送每一位孩子回家,Rebecca付給了他們一張$146的支票。
盡管體驗(yàn)經(jīng)濟(jì)首先是在餐飲、旅游、娛樂(lè)、零售等行業(yè)首先發(fā)展并擴(kuò)散開(kāi)來(lái),但是我相信,它遲早會(huì)在軟件領(lǐng)域展露頭角。我的這種想法由來(lái)已久,在最近一段時(shí)間里這個(gè)想法被激發(fā),導(dǎo)致我寫這篇文章,我認(rèn)為體驗(yàn)經(jīng)濟(jì)至少應(yīng)該在下面四個(gè)方面對(duì)軟件界有所幫助:
1)近似幫助的導(dǎo)航。
如果你還沒(méi)有下載Eclipse 3.1,那么你還不能真真了解我的意思。看看Eclipse的Million Downloads Challenge吧,3.1版正式版推出的第一天全球下載量就接近20萬(wàn)份,這絕不是宣傳的效果,而是全世界的軟件開(kāi)發(fā)人員和關(guān)注軟件界成長(zhǎng)的人們共同的精神支柱。3.1版在易用性上又有大幅度的提高,隨處可見(jiàn)的Html風(fēng)格的說(shuō)明信息,從一個(gè)對(duì)話框到另一個(gè)對(duì)話框的“超鏈接”,首選項(xiàng)的搜索與過(guò)濾,首選項(xiàng)的編輯導(dǎo)航(前進(jìn)、后退等),F(xiàn)astView可以變成內(nèi)嵌Frame,任意輸入框里的工具條,任意輸入框里的感嘆號(hào)、問(wèn)號(hào)和小紅叉,等等等等,無(wú)一不在3.0版已經(jīng)很“花里胡梢”的界面上再“錦上添花”。并且,知道內(nèi)情的人都知道,這些對(duì)用戶眼球產(chǎn)生極大刺激的小技量,對(duì)于Eclipse來(lái)說(shuō)是多么的輕而易舉。這么說(shuō)吧,這些東西放在你的應(yīng)用程序里面叫做“特性”,放在Eclipse里面叫做“對(duì)特性的應(yīng)用”。
2)軟件為什么不能用畫的。
既然標(biāo)準(zhǔn)控件可以拖到窗體里變成代碼,為什么用戶不能用筆畫一些代碼出來(lái)呢?我想未來(lái)的軟件應(yīng)該會(huì)以某種“更自由”的方式向用戶提供體驗(yàn)。比如,用戶可以畫一個(gè)圓作為輸入框;用戶可以畫一條線來(lái)表示狀態(tài)條;用戶可以畫一個(gè)圖標(biāo)或?qū)懸粋€(gè)單詞,再和一個(gè)程序定義好的Action建立鏈接;用戶可以畫一個(gè)小人提供導(dǎo)航;用戶可以規(guī)定什么樣的狀態(tài)用什么樣的符號(hào)表示;用戶還可以規(guī)定在哪里可以顯示固定的及時(shí)幫助,什么時(shí)候可以顯示浮動(dòng)的及時(shí)幫助;最后,用戶被要求畫一個(gè)區(qū)域(可能是不規(guī)則的多邊形)來(lái)把剛才畫的那些東西裝進(jìn)入,這個(gè)區(qū)域就是我們所說(shuō)的窗體(想想很多播放器都支持不規(guī)則的圖形作為skin)。
3)同時(shí)面對(duì)新手和熟練工人。
關(guān)于氣泡式的及時(shí)幫助,業(yè)界有很多的爭(zhēng)議,這些爭(zhēng)議大都來(lái)自不同領(lǐng)域的不同需求。比如一個(gè)面向客戶的財(cái)務(wù)系統(tǒng),開(kāi)發(fā)者可能希望隨時(shí)隨地都能讓使用者知道下一步該怎么辦(或者這一步該怎么辦),可是一個(gè)面向企業(yè)內(nèi)部的財(cái)務(wù)系統(tǒng),投資商則更愿意花費(fèi)少許培訓(xùn)費(fèi)用來(lái)使該系統(tǒng)的使用者更加熟練,這些費(fèi)用可能會(huì)比在軟件中加入大量的幫助更為經(jīng)濟(jì),更重要的是,去除這些氣泡往往會(huì)提高使用者的效率,給企業(yè)帶來(lái)更多的好處。所以體驗(yàn)經(jīng)濟(jì)要求我們的軟件理念能在兩種模式之間自由切換,甚至可能會(huì)同時(shí)體現(xiàn)在同一個(gè)系統(tǒng)上,比如某個(gè)在線游戲,新手希望能隨時(shí)隨地得到提示,而老玩家則希望在某個(gè)選項(xiàng)頁(yè)上關(guān)掉這些提示——以速度取勝。
4)功能微調(diào)和界面微調(diào)。
多數(shù)軟件已經(jīng)開(kāi)始向Extendable轉(zhuǎn)變了,少數(shù)精英已經(jīng)開(kāi)始向Pluginable(這是我自己造的詞,被畫上紅線別怪我,呵呵)轉(zhuǎn)變了。有圖形處理和媒體制作軟件,如Photoshop、Fireworks、Flash,有開(kāi)發(fā)工具IDE,如Eclipse、SharpDevelop,有瀏覽器如Firefox,有小工具如我正在使用的EmEditor等等,在SourceForge的排行榜第一名上待了很久不愿下來(lái)的Azureus - Java BitTorrent Client也是Pluginable的。更有令人驚奇的,有一個(gè)叫Java Plugin Framework(JPF)的項(xiàng)目可以為所有Java軟件增加Pluginable的能力,這個(gè)項(xiàng)目吸收了Eclipse的思想,但是比Eclipse的插件平臺(tái)更通用,更具擴(kuò)展性,也更嚴(yán)格。至于界面上的微調(diào),Eclipse也為我們作出了榜樣,它可以允許成千上萬(wàn)個(gè)View和Editor并存在同一個(gè)窗體里,并提供了最大化、最小化、FastView、內(nèi)部Frame等多種展現(xiàn)形式,(意思是說(shuō)它們不會(huì)太擠),甚至可以在界面上搜索和過(guò)濾這些parts,這樣做的主要目的是將用戶工作中能遇到的交互事件劃分成更細(xì)小的顆粒。我認(rèn)為未來(lái)的軟件能讓用戶在更小的顆粒度上調(diào)整UI,比如某個(gè)用戶會(huì)在用軟件時(shí)自言自語(yǔ):“這個(gè)的Label我不喜歡,我要變成Icon;那里有個(gè)Table太繁瑣了,換個(gè)餅圖看看;哦,對(duì)了,這里有個(gè)討厭的文字框,小樣兒,我早就看你不爽了,干掉,直接寫進(jìn)log吧!”
在本文的最后我還要告訴大家的是,雖然很多軟件用XP結(jié)尾來(lái)標(biāo)稱自己是“用戶體驗(yàn)版”,比如Windows xp和Office xp,但是我仍然認(rèn)為體驗(yàn)經(jīng)濟(jì)的時(shí)代要求未能很好的表現(xiàn)在當(dāng)前的主流應(yīng)用中,無(wú)論是操作系統(tǒng)、辦公軟件、在線應(yīng)用,或者ERP,但是我們已經(jīng)可以在一些游戲、及時(shí)消息軟件或大師作品中看到一點(diǎn)希望。重復(fù)本文開(kāi)頭時(shí)的論點(diǎn),我相信體驗(yàn)經(jīng)濟(jì)在軟件的時(shí)代即將到來(lái),如果您手上正在做的軟件沒(méi)有考慮這一點(diǎn),那么還是請(qǐng)考慮一下吧,我們都不希望在這次浪潮中國(guó)產(chǎn)軟件再次落后,如果要我給出一個(gè)理由來(lái)支撐我的觀點(diǎn),那我只想說(shuō)——這是經(jīng)濟(jì)學(xué)的規(guī)律。
(轉(zhuǎn)載本文需注明出處:Brian Sun @ 爬樹(shù)的泡泡[http://www.aygfsteel.com/briansun])
posted @
2005-07-21 10:38 Brian Sun 閱讀(4178) |
評(píng)論 (10) |
編輯 收藏
NXUnit是一個(gè)基于.NET
Framework的具有NUnit風(fēng)格的XML單元測(cè)試框架。它是對(duì)NUnit的一個(gè)擴(kuò)展,使你可以簡(jiǎn)單的在XML應(yīng)用程序中加入斷言,使你可以集中精
力在你的XML應(yīng)用程序中的業(yè)務(wù)邏輯,使你提升測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(TDD)的技巧,使你可以直接比較兩個(gè)XML字符串或流,或者斷言它們相等,就像使用
xUnit斷言兩個(gè)整數(shù)是否相等一樣簡(jiǎn)單。如果沒(méi)有NXUnit,你就必須把注意力集中在XML字符串中的空格、空節(jié)點(diǎn)、空屬性、節(jié)點(diǎn)序、屬性序、注釋等
等。在某些方面,NXUnit有些像XmlUnit。
NXUnit的當(dāng)前版本是2005年7月的
NXUnit 1.0rc1,下面是該版本的8個(gè)特性,這些特性你都可以在XMLAssert類中找到相應(yīng)的方法:
1。斷言兩個(gè)XML輸入是否相等。
2。比較兩個(gè)XML輸入并找出它們的不同點(diǎn)。
3。斷言兩個(gè)XML輸入的XML定義是否相等。
4。斷言兩個(gè)XML輸入的文檔類型是否相等。
5。斷言一個(gè)XML輸入是否有效。
6。斷言一個(gè)XPath表達(dá)式在一個(gè)XML輸入上執(zhí)行返回的值是否是期望值。
7。斷言一個(gè)XPath表達(dá)式在一個(gè)XML輸入上是否存在。
8。斷言一個(gè)XML輸入是否包含另一個(gè)XML輸入。
并且,你可以改變一個(gè)XMLAssert實(shí)例的屬性來(lái)配置一個(gè)斷言或比較,目的在于:
1。忽略節(jié)點(diǎn)和屬性名稱中的大小寫。
2。忽略XML注釋。
3。忽略XML定義或文檔類型。
4。忽略空的節(jié)點(diǎn)或?qū)傩浴?br>
5。忽略節(jié)點(diǎn)和屬性的順序。
6。忽略不重要的空白。
posted @
2005-07-20 10:09 Brian Sun 閱讀(2519) |
評(píng)論 (5) |
編輯 收藏