malphi

          follow my heart

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            2 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(1)

          我參與的團(tuán)隊(duì)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          2005年12月7日 #

               很意外我選擇了一個(gè)自己還算比較感興趣的論文課題TDD(測(cè)試驅(qū)動(dòng)開(kāi)發(fā)),而導(dǎo)師讓我挑選的另外一個(gè)主題性能測(cè)試一不太感興趣,二大概想了想不同的軟件和硬件環(huán)境可以搭配出無(wú)限種的測(cè)試環(huán)境,這樣的試驗(yàn)和研究實(shí)在是讓人頭疼,而且根據(jù)測(cè)不準(zhǔn)原理,萬(wàn)一答辯時(shí)老頭跟我較真說(shuō):我怎么保證我的測(cè)試用例是正確的?我只能回答不能保證;再問(wèn)我既然測(cè)試用例都不正確由它測(cè)試出來(lái)的程序怎么能是正確的?那時(shí)候我只能無(wú)奈加無(wú)語(yǔ)了。
              所以選擇了TDD。經(jīng)過(guò)了一段時(shí)間才發(fā)現(xiàn),原來(lái)測(cè)試雖然復(fù)雜尚有可操作的余地,而這個(gè)掛著測(cè)試之名但不是測(cè)試的東西讓我思前想后沒(méi)有覓得門(mén)路。最開(kāi)始看來(lái)TDD這個(gè)名詞的提出,以為內(nèi)容是驅(qū)動(dòng)程序的測(cè)試呢,心想這種東西實(shí)在無(wú)聊,不知道也罷。看過(guò)之后才知,TDD正所謂掛羊頭賣(mài)狗肉者,重點(diǎn)不是測(cè)試而是開(kāi)發(fā),其實(shí)是開(kāi)發(fā)方法而非測(cè)試方法,這里驅(qū)動(dòng)二字實(shí)為動(dòng)詞而非名詞,意指:由測(cè)試驅(qū)動(dòng)的、帶動(dòng)的開(kāi)發(fā)。不知當(dāng)初誰(shuí)人最先翻譯成此,實(shí)在誤人子弟。
              TDD是XP方法學(xué)中很重要的一部分,倡導(dǎo)測(cè)試先行,由測(cè)試驅(qū)動(dòng)代碼開(kāi)發(fā)。沒(méi)有代碼測(cè)試什么?最初我也是這樣理解。但實(shí)際上TDD是一個(gè)非常fantastic的東西,加上現(xiàn)在的編譯器十分智能,代碼自然而然運(yùn)用而生。舉個(gè)簡(jiǎn)單的例子:
              我就寫(xiě)一個(gè)狗叫的程序,具體怎么寫(xiě)先不管,先寫(xiě)測(cè)試:
              Dog xiaobai = new Dog(); //創(chuàng)建一只小狗-小白
                  assertEquals("wangwang!",xiaobai.bark() ) //判斷小白的吠聲是不是汪汪
          好了,測(cè)試寫(xiě)完,run一下,肯定是red bar,同時(shí)編譯器會(huì)告訴你,沒(méi)有發(fā)現(xiàn)Dog這個(gè)類(lèi),很簡(jiǎn)單,創(chuàng)建一個(gè),如果你的編譯器夠智能的話(huà)你都不用寫(xiě) class Dog這句話(huà),點(diǎn)一下錯(cuò)誤提示的解決方法就可以了。接著,還有錯(cuò)誤,bay這個(gè)方法不存在,編譯器還會(huì)提示你:是否創(chuàng)建一個(gè)呢?OK,創(chuàng)建一個(gè):public String bark(){ return "wangwang";} 再run一下,OK,測(cè)試通過(guò),是green bar,好了,現(xiàn)在看看是不是想要的代碼都出來(lái)了?
             所以說(shuō)TDD是個(gè)很妙的東西,amazing。然而我的大腦并不妙,還是找不到切入點(diǎn),TDD這么大的樹(shù)林里我還都沒(méi)有發(fā)現(xiàn)自己要打的那只鳥(niǎo),更別提逮到它了。總之埋頭苦干,繼續(xù)努力了。
          posted @ 2005-12-07 20:31 嗎啡 閱讀(296) | 評(píng)論 (1)編輯 收藏

              我是一個(gè)典型的Borland Nation,網(wǎng)名的由來(lái)也和Borland的主力開(kāi)發(fā)工具有關(guān),一是非常喜歡Delphi這個(gè)工具,而是開(kāi)始只會(huì)使用這個(gè)工具(有點(diǎn)汗顏)。由于D一慣的卓越品質(zhì),使其他IDE顯得一無(wú)是處,當(dāng)時(shí)也沒(méi)有什么J和dot擾局,著實(shí)輝煌了一把。我從version 5開(kāi)始用的,前一陣我還下了古董級(jí)的D1,10多年前的東西,居然支持C/S,實(shí)在是一個(gè)超時(shí)代的產(chǎn)品。讓我的Borland情結(jié)也一直延續(xù)至今。
              我用的時(shí)間最長(zhǎng)的是D6,后面的version發(fā)布的太過(guò)倉(cāng)促,有些是過(guò)渡產(chǎn)品,有些不完善,好不容易下決心改2005了又發(fā)現(xiàn)常常有crash的情況,只好作罷。對(duì)于1年1更新的舉動(dòng)也表示理解,Development工具的市場(chǎng)硝煙彌漫,小小的Borland要想面對(duì)M、S、O之流的弱肉強(qiáng)食不得不加快自己奔跑的速度。
              然而新的IDE越來(lái)越龐大,越來(lái)越?jīng)]有個(gè)性和特色,Borland引以為傲的東西幾乎喪失殆盡。看看2006代號(hào)dexter的龐然大物,可以寫(xiě)delphi,C++,C#,.Net 。。。唯一不能寫(xiě)的語(yǔ)言就是java,免得強(qiáng)了自己jbuilder的市場(chǎng)。這樣的東西到底是否實(shí)用?有沒(méi)有想過(guò)如此開(kāi)發(fā)環(huán)境需要怎樣的硬件才能run的順暢?IT界特別是軟件界一種以簡(jiǎn)單為美,code越easy越好,為什么Borland要反其道行之?如果我只是一個(gè)win32開(kāi)發(fā)者,只會(huì)delphi語(yǔ)言,那么其他的功能對(duì)我有什么用呢?看看現(xiàn)在大紅大紫的eclipse,環(huán)境單一,需要其他功能嗎?自己安裝插件,控制權(quán)在自己手中。我想Borland是不是該想一想發(fā)展的方向是否正確了,輝煌時(shí)期是靠前沿的技術(shù)靠特色成為一面旗幟,而現(xiàn)在,只能成為誰(shuí)都不敢得罪的在J2EE/.Net兩座大山中間騎墻頭的小跟班。唉,成千上萬(wàn)的Nations估計(jì)心涼的很。
              我一直以為,簡(jiǎn)單才是美。
          posted @ 2005-12-07 15:04 嗎啡 閱讀(265) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 井研县| 天柱县| 萝北县| 鄯善县| 晋城| 故城县| 乌什县| 金堂县| 繁昌县| 阿图什市| 师宗县| 三门县| 桐梓县| 沧源| 洪湖市| 英吉沙县| 鲜城| 台前县| 双流县| 那坡县| 玉门市| 墨竹工卡县| 岳阳县| 蕉岭县| 南漳县| 金山区| 磴口县| 文化| 桑植县| 鸡泽县| 庆阳市| 莱西市| 阿克| 五原县| 从化市| 尼勒克县| 吉安县| 银川市| 襄汾县| 郯城县| 稻城县|