自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談?dòng)妹艚莘椒ㄟM(jìn)行軟件重用

開(kāi)發(fā) 項(xiàng)目管理
最近在極限編程Yahoo討論組上,有些用戶討論了軟件重用與XP實(shí)踐——只在必要的時(shí)候才寫代碼——二者的明顯沖突。Ron Jeffries和其他人一起探討了代碼重用的成本與收益,以及在敏捷環(huán)境中何時(shí)重用,如何重用。

Brandon Olivares發(fā)起了討論。他說(shuō),他剛剛在某些代碼上用了30小時(shí)的時(shí)間,然后覺(jué)得這些代碼可能會(huì)被重用,于是就覺(jué)得很矛盾,不知道是不是該把這些代碼抽象出來(lái),這樣其他項(xiàng)目就有可能也用得到。

按照我個(gè)人理解來(lái)看,XP不鼓勵(lì)假想某些東西可能會(huì)被用到,除非確實(shí)到了要用那個(gè)東西的時(shí)間點(diǎn)上。還是我的個(gè)人理解,剛才所說(shuō)的東西也包括提取代碼以供日后重用,XP提倡的是到了出現(xiàn)重復(fù)的時(shí)候再去做重構(gòu)。
軟件重用長(zhǎng)期以來(lái)一直被極力宣揚(yáng)為可以大量節(jié)省時(shí)間,也許另一個(gè)項(xiàng)目中的人可以重用你的代碼,而不用重新開(kāi)發(fā)。Brandon想知道其他人都是怎么決定在什么時(shí)候抽象代碼加以泛化的。

Ron Jeffries***個(gè)回復(fù),他講了為什么跨團(tuán)隊(duì)重用的做法比初看起來(lái)要困難且昂貴得多:

我必須得給它打包,要是就我自己用的話這活就不用干了;我得給它寫文檔;我得讓它更加抗造,把周邊的一些問(wèn)題去掉;我得給它提供支持,回答很多問(wèn)題;我得訓(xùn)練別人用它。

如果我做了這些事情,代價(jià)就很高;如果我不做,別人用我的東西就很困難,給他們帶不來(lái)多少幫助。

因?yàn)檫@些原因,Ron采取的是這種做法:

我只做適當(dāng)?shù)某橄螅瑝蜃约河镁秃?。如果我以后在一個(gè)稍微不同的環(huán)境下還需要用的話,我就會(huì)改進(jìn)抽象。不過(guò)除非我的項(xiàng)目目標(biāo)是給其他項(xiàng)目構(gòu)建成品,我就不會(huì)浪費(fèi)時(shí)間和金錢去給其他項(xiàng)目做東西。
還有一位認(rèn)為,如果所有的項(xiàng)目都共享一套通用構(gòu)建系統(tǒng)和測(cè)試套件,那重用就會(huì)容易一些。在這樣的環(huán)境中,如果某個(gè)團(tuán)隊(duì)打算重用某些可以泛化的代碼,這個(gè)構(gòu)建系統(tǒng)就可以保證他們不會(huì)給其他需要這些代碼的團(tuán)隊(duì)造成障礙。

George Dinwiddie、Ralph E. Johnson等人推薦到第二次(乃至更晚)用到同樣代碼的時(shí)候再做泛化。Adam Sroka把這個(gè)叫做“演化重用”,他認(rèn)為這種方法比“為重用而設(shè)計(jì)”效率更高。一名叫做Tim的人發(fā)帖說(shuō),他這樣給業(yè)務(wù)人員解釋:“***次,你是給編碼買單;第二次,你是給重用買單;第三次,它就是免費(fèi)的了。”

George指出,更困難的地方在于怎么讓其他團(tuán)隊(duì)意識(shí)到有些代碼可以重用。幫助大家發(fā)現(xiàn)良機(jī)的溝通成本可能會(huì)很高。Jeff Langr說(shuō),讓開(kāi)發(fā)人員跨團(tuán)隊(duì)結(jié)對(duì),可以解決這個(gè)問(wèn)題。

Scott Ambler也加入了交流,他提到,開(kāi)源也是重用的一種形式,它已經(jīng)取得了巨大成功。他同時(shí)也提到,代碼庫(kù)、開(kāi)發(fā)工具包乃至mash-up這些都是軟件重用的成功案例。

【編輯推薦】

  1. 對(duì)話敏捷專家麥天志:敏捷開(kāi)發(fā)現(xiàn)狀及發(fā)展之路
  2. 對(duì)敏捷開(kāi)發(fā)的五大誤解
  3. 不一樣的敏捷開(kāi)發(fā)實(shí)踐
責(zé)任編輯:彭凡 來(lái)源: infoQ
相關(guān)推薦

2010-01-06 09:17:57

軟件重用

2009-06-17 15:25:59

Java學(xué)習(xí)

2011-05-31 17:35:45

測(cè)試自動(dòng)化QTP

2010-02-02 13:04:03

C++頭文件

2011-06-08 17:15:46

QTP腳本

2010-07-07 16:21:40

重用

2013-01-28 10:11:24

敏捷設(shè)計(jì)敏捷開(kāi)發(fā)

2017-03-17 08:15:17

敏捷軟件開(kāi)發(fā)軟件開(kāi)發(fā)

2016-02-23 15:41:08

LeangooSaaS

2015-01-15 17:41:54

soa云計(jì)算BPEL

2009-07-17 17:25:31

敏捷開(kāi)發(fā)

2012-11-14 15:38:23

統(tǒng)計(jì)教學(xué)醫(yī)學(xué)統(tǒng)計(jì)學(xué)六西格瑪

2011-01-12 14:01:04

互聯(lián)網(wǎng)

2009-06-15 17:45:20

LINQ分組統(tǒng)計(jì)

2012-11-19 17:25:38

軟件加密加密算法加密

2024-11-07 12:14:36

2012-11-15 10:19:56

IBMdw

2014-09-03 09:52:45

開(kāi)源

2010-04-13 10:49:32

2022-04-29 13:23:20

敏捷開(kāi)發(fā)軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)