![讓開發(fā)自動(dòng)化- 除掉構(gòu)建腳本中的氣味_第1頁(yè)](http://file4.renrendoc.com/view/f7eba40ac8968de6f55ec637637e7b9d/f7eba40ac8968de6f55ec637637e7b9d1.gif)
![讓開發(fā)自動(dòng)化- 除掉構(gòu)建腳本中的氣味_第2頁(yè)](http://file4.renrendoc.com/view/f7eba40ac8968de6f55ec637637e7b9d/f7eba40ac8968de6f55ec637637e7b9d2.gif)
![讓開發(fā)自動(dòng)化- 除掉構(gòu)建腳本中的氣味_第3頁(yè)](http://file4.renrendoc.com/view/f7eba40ac8968de6f55ec637637e7b9d/f7eba40ac8968de6f55ec637637e7b9d3.gif)
![讓開發(fā)自動(dòng)化- 除掉構(gòu)建腳本中的氣味_第4頁(yè)](http://file4.renrendoc.com/view/f7eba40ac8968de6f55ec637637e7b9d/f7eba40ac8968de6f55ec637637e7b9d4.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)讓開發(fā)自動(dòng)化:除掉構(gòu)建腳本中的氣味讓開發(fā)自動(dòng)化:除掉構(gòu)建腳本中的氣味
發(fā)表于:2023-04-03來源::點(diǎn)擊數(shù):標(biāo)簽:自動(dòng)化
您把多少時(shí)間花在維護(hù)項(xiàng)目構(gòu)建腳本上?也許遠(yuǎn)遠(yuǎn)超出您預(yù)期的或者可以忍受的時(shí)間。其實(shí)大可不必遭受如此痛苦的經(jīng)歷。在這一期的讓開發(fā)自動(dòng)化中,開發(fā)自動(dòng)化專家PaulDuvall將演示如何改進(jìn)很多常見的妨礙團(tuán)隊(duì)創(chuàng)建一致的、可重復(fù)的、可維護(hù)的構(gòu)建的實(shí)踐。
您把多少時(shí)間花在維護(hù)項(xiàng)目構(gòu)建腳本上?也許遠(yuǎn)遠(yuǎn)超出您預(yù)期的或者可以忍受的時(shí)間。其實(shí)大可不必遭受如此痛苦的經(jīng)歷。在這一期的讓開發(fā)自動(dòng)化中,開發(fā)自動(dòng)化專家PaulDuvall將演示如何改進(jìn)很多常見的妨礙團(tuán)隊(duì)創(chuàng)建一致的、可重復(fù)的、可維護(hù)的構(gòu)建的實(shí)踐。當(dāng)描述代碼之類的東西時(shí),我不喜歡“氣味(smell)”這個(gè)詞。因?yàn)橛脭M人的手法來談?wù)摫忍睾妥止?jié)往往令人覺得很怪異。并不是說“氣味”這個(gè)詞不能準(zhǔn)確地反映出某種表明代碼可能有錯(cuò)誤的癥狀,只是我覺得這樣聽起來很滑稽。然而,我依然選擇再次用這種令人厭煩的方式來描述軟件構(gòu)建,坦白說,這是因?yàn)檫@些年我見過的很多構(gòu)建腳本都散發(fā)著難聞的氣味。
在創(chuàng)建構(gòu)建腳本時(shí),即使是偉大的程序員也常常會(huì)遇到困難。就好像最近才學(xué)會(huì)如何編寫程序性代碼似的——他們還會(huì)編寫龐大的單塊構(gòu)建文件、通過復(fù)制-粘貼編寫代碼、對(duì)屬性進(jìn)行硬編碼等等。我總是很想知道為什么會(huì)這樣。也許是因?yàn)闃?gòu)建腳本沒有被編譯成客戶最終會(huì)使用的東西?然而我們都知道,要?jiǎng)?chuàng)建客戶最終使用的代碼,構(gòu)建腳本是中心,如果那些腳本敗絮其中,那么要想有效地創(chuàng)建軟件,就需要克服重重挑戰(zhàn)。
幸運(yùn)的是,您可以輕松地在構(gòu)建(不管是Ant、Maven還是定制的)之上部署一些實(shí)踐,它們雖然可以幫助您創(chuàng)建一致的、可重復(fù)的、可維護(hù)的構(gòu)建,但其過程會(huì)很長(zhǎng)。學(xué)習(xí)如何創(chuàng)建更好的構(gòu)建腳本的一種有效的方法是搞清楚哪些事情不要去做,理解其中的道理,然后看看做事的正確方法。在本文中,我將詳細(xì)論述您應(yīng)該避免的9種最常見的構(gòu)建中的氣味,為什么應(yīng)該避免它們,以及如何修復(fù)它們:
惟IDE的構(gòu)建復(fù)制-粘貼式的編寫腳本方法冗長(zhǎng)的目標(biāo)龐大的構(gòu)建文件沒有清理干凈硬編碼的值測(cè)試失敗還能構(gòu)建成功魔力機(jī)格式的缺失關(guān)于本系列
作為一名開發(fā)人員,我們的工作就是為用戶將過程自動(dòng)化。然而,我們當(dāng)中有很多人卻忽視了將我們自己的開發(fā)過程自動(dòng)化的機(jī)會(huì)。為此,我編寫了讓開發(fā)自動(dòng)化這個(gè)系列的文章,專門探索軟件開發(fā)過程自動(dòng)化的實(shí)際應(yīng)用,并教您何時(shí)以及如何成功地應(yīng)用自動(dòng)化。這里無意給出完整的列表,不過這份列表的確代表了近年來我讀過的和寫過的構(gòu)建腳本中,我遇到的較為常見的一些氣味。有些工具,例如Maven,是為處理與構(gòu)建有關(guān)的很多管道而設(shè)計(jì)的,它們可以幫助減輕部分氣味。但是無論使用什么工具,還是有很多問題會(huì)發(fā)生。
避免惟IDE的構(gòu)建
惟IDE(IDE-only)的構(gòu)建是指只能通過開發(fā)人員的IDE執(zhí)行的構(gòu)建,不幸的是,這似乎在構(gòu)建中很常見。惟IDE的構(gòu)建的問題是,它助長(zhǎng)了“在我的計(jì)算機(jī)上能運(yùn)行”問題,即軟件在開發(fā)人員的環(huán)境中可以運(yùn)行,但是在任何其他人的環(huán)境中就不能運(yùn)行。而且,由于惟IDE構(gòu)建自動(dòng)化程度不是很高,因而為集成到持續(xù)集成(ContinuousIntegration)環(huán)境帶來極大的挑戰(zhàn)。實(shí)際上,沒有人為的干預(yù),惟IDE常常無法自動(dòng)化。
我們要清楚:使用IDE來執(zhí)行構(gòu)建并沒有錯(cuò),但是IDE不應(yīng)該成為能構(gòu)建軟件的惟一環(huán)境。特別是,一個(gè)完全用腳本編寫的構(gòu)建,可以使開發(fā)團(tuán)隊(duì)能夠使用多種IDE,因?yàn)橹淮嬖趶腎DE到構(gòu)建的依賴性,而不存在相反方向的依賴性,如圖1所示:
圖1.IDE與構(gòu)建的依賴關(guān)系
惟IDE的構(gòu)建有礙自動(dòng)化,清除的惟一方法就是創(chuàng)建可編寫腳本的構(gòu)建。有足夠的文檔和太多的書籍可以為您提供指導(dǎo)(見參考資料),而像Maven之類的項(xiàng)目也為從頭開始定義構(gòu)建提供了極大的方便。不管采用何種方法,都是選擇一種構(gòu)建平臺(tái),然后盡快地讓項(xiàng)目成為可編寫腳本的。
回頁(yè)首
復(fù)制-粘貼就像廉價(jià)的香水
復(fù)制代碼是軟件項(xiàng)目當(dāng)中一個(gè)常見的問題。實(shí)際上,甚至很多流行的開放源碼項(xiàng)目都存在20%到30%的復(fù)制代碼。代碼復(fù)制令軟件程序更難于維護(hù),同理,構(gòu)建腳本中的復(fù)制代碼也存在這樣的問題。例如,想象一下,假設(shè)您需要通過Ant的fileset類型引用特定的文件,如清單1所示:
清單1.復(fù)制-粘貼Ant腳本
filesetdir="./brewery/src"includename="**/*.java"/excludename="**/*.groovy"http://fileset
如果需要在其他地方引用這組文件,例如為了編譯、檢查或生成文檔,那么最終您可能會(huì)在多個(gè)地方使用相同的fileset。如果在將來某個(gè)時(shí)候,您需要對(duì)那個(gè)fileset做出修改(比如說排除.groovy文件),那么最終可能需要在多個(gè)地方做更改。顯然,這不是可維護(hù)的解決方案。然而,要除掉這股氣味其實(shí)很簡(jiǎn)單。
如清單2所示,通過Ant的patternset類型可以引用一個(gè)邏輯名稱,以表示所需要的文件。那么,當(dāng)需要向fileset添加(或排除)文件時(shí),只需更改一次。
清單2.復(fù)制-粘貼Ant腳本
patternsetid="sources.pattern"includename="**/*.java"/excludename="**/*.groovy"http://patternset...filesetdir="./brewery/src"patternsetrefid="sources.pattern"http://fileset
對(duì)于精通
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園網(wǎng)中的網(wǎng)絡(luò)通信協(xié)議與優(yōu)化實(shí)踐
- 二零二五年度個(gè)人藝術(shù)品市場(chǎng)分析私人借款合同
- 2025年度旅游代理傭金合同電子版模板
- 2025年度酒店員工考勤與薪酬聘用合同
- 二零二五年度茶葉產(chǎn)業(yè)人才培養(yǎng)合作協(xié)議電子版
- 2025年度電子版?zhèn)€人養(yǎng)老保障借款協(xié)議
- 2025年度餐飲店財(cái)務(wù)管理股東合作協(xié)議書
- 二零二五年度汽車抵押汽車消費(fèi)貸款協(xié)議
- 二零二五年度教育機(jī)構(gòu)教師借調(diào)與資源共享合同
- 2025年度高端寫字樓租賃期限延長(zhǎng)及裝修改造補(bǔ)充協(xié)議
- 小學(xué)六年級(jí)數(shù)學(xué)上冊(cè)《簡(jiǎn)便計(jì)算》練習(xí)題(310題-附答案)
- 2024年河南省《輔警招聘考試必刷500題》考試題庫(kù)及答案【全優(yōu)】
- 安全隱患報(bào)告和舉報(bào)獎(jiǎng)勵(lì)制度
- 地理標(biāo)志培訓(xùn)課件
- 2023行政主管年終工作報(bào)告五篇
- 2024年中國(guó)養(yǎng)老產(chǎn)業(yè)商學(xué)研究報(bào)告-銀發(fā)經(jīng)濟(jì)專題
- 培訓(xùn)如何上好一堂課
- 高教版2023年中職教科書《語(yǔ)文》(基礎(chǔ)模塊)下冊(cè)教案全冊(cè)
- 2024醫(yī)療銷售年度計(jì)劃
- 《化妝知識(shí)講座》課件
- 稅務(wù)局個(gè)人所得稅綜合所得匯算清繳
評(píng)論
0/150
提交評(píng)論