出版時(shí)間:2008-5 出版社:電子工業(yè)出版社 作者:馬瑞克 頁(yè)數(shù):301 字?jǐn)?shù):374000
Tag標(biāo)簽:無(wú)
內(nèi)容概要
這是一本關(guān)于Ruby特性和技巧的書,特性會(huì)在項(xiàng)目需要用到的時(shí)候進(jìn)行介紹,每個(gè)部分也會(huì)在以前技巧的基礎(chǔ)上引入新的技巧。本書將向讀者介紹Ruby的一些基礎(chǔ)知識(shí),如何使用測(cè)試驅(qū)動(dòng)設(shè)計(jì)來(lái)穩(wěn)定可控地編寫腳本,如何使用應(yīng)用程序框架,如何處理常見錯(cuò)誤,等等。 書中包含大量精彩的訣竅、指導(dǎo)、警告、案例、隱喻、練習(xí)以及提問,對(duì)于那些想最大限度地利用測(cè)試自動(dòng)化的軟件測(cè)試從業(yè)者、分析師、程序員來(lái)說(shuō),本書極具參考價(jià)值。
書籍目錄
第1章 引言 1.1 關(guān)于本書結(jié)構(gòu) 1.2 全書梗概 1.3 售后服務(wù) 1.4 續(xù)篇 1.5 鳴謝第2章 起步 2.1 下載練習(xí)文件 2.2 從命令行開始 2.3 你需要安裝Ruby嗎 2.4 安裝Ruby 2.5 兩個(gè)基本工具 2.6 命令行提示符和irb提示符 2.7 是犯錯(cuò)的時(shí)候了第1部分 基礎(chǔ)知識(shí) 第3章 第一個(gè)腳本:比較文件清單 3.1 一個(gè)實(shí)戰(zhàn)腳本 3.2 Ruby世界 3.3 對(duì)象發(fā)送和接收消息 3.4 用變量來(lái)命名對(duì)象 3.5 比較數(shù)組 3.6 打印到屏幕 3.7 制作一個(gè)腳本 3.8 我們進(jìn)行到哪了 3.9 練習(xí) 第4章 Ruby語(yǔ)言細(xì)節(jié):數(shù)組 第5章 三處改進(jìn)和一處缺陷修正 5.1 命令行參數(shù) 5.2 忽略大小寫 5.3 方法 5.4 分割字符串 5.5 修正一個(gè)Bug 5.6 我們?cè)谀膬骸 ?.7 練習(xí)的前奏 5.8 練習(xí) 第6章 Ruby語(yǔ)言細(xì)節(jié):If、相等性判斷和Unless 6.1 if…elsif…else 6.2 什么時(shí)候?qū)ο笙嗟取 ?.3 if的一個(gè)快捷方式 6.4 unless 6.5 問號(hào)操作符第Ⅱ部分 一步一步編寫腳本 第7章 Chutn項(xiàng)目:輕松編寫腳本 7.1 演示項(xiàng)目 7.2 構(gòu)建解決方案 7.3 我們進(jìn)行到哪了 7.4 練習(xí) 第8章 Ruby語(yǔ)言細(xì)節(jié):布爾型 8.1 其他布爾運(yùn)算符 8.2 優(yōu)先級(jí) 8.3 所有對(duì)象皆為真值 8.4 通過(guò)布爾表達(dá)式選擇對(duì)象 第9章 利器在手,正則表達(dá)式 9.1 用正則表達(dá)式匹配字符串 9.2 用正則表達(dá)式解析字符串 9.3 重新排列數(shù)組 9.4 我們進(jìn)行到哪了 9.5 練習(xí) 第10章 Ruby語(yǔ)言細(xì)節(jié):正則表達(dá)式 10.1 特殊字符 10.2 分組和多選結(jié)構(gòu) 10.3 拆分字符串 10.4 幕后的變量 10.5 正則表達(dá)式選項(xiàng) 10.6 等等,還沒完呢 10.7 練習(xí) 第11章 用類捆綁數(shù)據(jù)和方法 11.1 在類里定義方法 11.2 用對(duì)象包含數(shù)據(jù) 11.3 我們進(jìn)行到哪了 11.4 練習(xí) 第12章 Ruby語(yǔ)言細(xì)節(jié):類(附帶介紹Symbol) 12.1 定義訪問方法 12.2 Self 12.3 類方法 12.4 類變量和全局變量 12.5 練習(xí)第Ⅲ部分 在活生生的世界中工作 第13章 用正則表達(dá)式刮取網(wǎng)頁(yè) 13.1 像處理文件一樣處理網(wǎng)頁(yè) 13.2 把注意力限定在網(wǎng)頁(yè)的有用部分 13.3 抽取標(biāo)題和作者 13.4 用散列表存儲(chǔ)有名數(shù)據(jù) 13.5 開始親緣圖書旅程 13.6 親自練習(xí) 第14章 其他使用Web應(yīng)用的方法 14.1 處理XHTML 14.2 驅(qū)動(dòng)瀏覽器 14.3 直接訪問底層協(xié)議 第15章 處理逗號(hào)分隔的數(shù)據(jù) 15.1 CSV庫(kù) 15.2 使用代碼塊進(jìn)行自動(dòng)清理 15.3 更多CSV操作 15.4 把所有這些應(yīng)用到affinity-trip.rb中 15.5 發(fā)現(xiàn)并理解標(biāo)準(zhǔn)庫(kù)中的類 15.6 用數(shù)據(jù)取代代碼 第16章 Ruby語(yǔ)言細(xì)節(jié):散列表 第17章 Ruby語(yǔ)言細(xì)節(jié):參數(shù)列表 17.1 可選參數(shù) 17.2 剩余參數(shù) 17.3 關(guān)鍵字參數(shù) 第18章 下載輔助腳本和應(yīng)用 18.1 尋找包 18.2 使用setup.rb 18.3 使用RubyGems 18.4 理解你所下載的 第19章 打磨你的腳本 19.1 加載路徑 19.2 避免文件名沖突 19.3 使用模塊避免類命名沖突 19.4 讓腳本替你完成工作 19.5 輕松自如的工作 19.6 rakefile 19.7 位置無(wú)關(guān)的測(cè)試 19.8 練習(xí) 第20章 Ruby語(yǔ)言細(xì)節(jié):模塊 20.1 嵌套模塊 20.2 包含模塊 20.3 類是模塊 第21章 當(dāng)腳本出現(xiàn)問題的時(shí)候 21.1 使用異常報(bào)告問題 21.2 一種錯(cuò)誤處理策略 21.3 異常處理選項(xiàng) 21.4 使用Block的方法 21.5 練習(xí)第Ⅳ部分 成為行家 第22章 框架:用填空法編寫腳本 22.1 使用watchdog腳本 22.2 繼承 22.3 收集用戶選擇 第23章 發(fā)現(xiàn)比創(chuàng)建更安全 23.1 Barker的故事 23.2 發(fā)生了什么?在哪兒發(fā)生? 23.3 用模塊替代超類 第24章最后總結(jié)第Ⅴ部分 書后附錄 附錄A 詞匯表 附錄B 練習(xí)答案 B.1 第3章練習(xí)答案 B.2 第5章練習(xí)答案 B.3 第7章練習(xí)答案 B.4 第9章練習(xí)答案 B.5 第10章練習(xí)答案 B.6 第11章練習(xí)答案 B.7 第12章練習(xí)答案 B.8 第21章練習(xí)答案 附錄C 參考文獻(xiàn)索引
章節(jié)摘錄
第1章 引言 鞋匠的孩子光著腳到處跑?! ∧切┎粡氖萝浖_發(fā)的人會(huì)發(fā)現(xiàn),大量的工具不斷涌現(xiàn),使得工作負(fù)擔(dān)不斷從人類轉(zhuǎn)移到計(jì)算機(jī)。但是軟件開發(fā)人員常常有不同的觀點(diǎn)。他們?nèi)諒?fù)一日地重復(fù)那些手工勞動(dòng):在一張工作臺(tái)前,一個(gè)測(cè)試人員正在用手工方式把測(cè)試數(shù)據(jù)輸入到數(shù)據(jù)庫(kù)里;在另外一張工作臺(tái),一個(gè)程序員正篩查版本控制系統(tǒng)的輸出結(jié)果,試圖找到想要的文件;在第三張工作臺(tái),一個(gè)商業(yè)分析師正將報(bào)表里的數(shù)據(jù)拷貝到一個(gè)電子表格中?! ∫陨线@些工作計(jì)算機(jī)可以做得很完美,人們?yōu)槭裁匆约鹤?這與知識(shí)和技能有關(guān)。測(cè)試人員認(rèn)為編程太難,因此從來(lái)不學(xué);程序員會(huì)編程,但是他所會(huì)的語(yǔ)言無(wú)法輕松完成此項(xiàng)工作,并且他沒有時(shí)間利用頗有難度的方式來(lái)實(shí)現(xiàn)這些任務(wù):那位分析師曾寫過(guò)一個(gè)腳本來(lái)完成類似的雜事,但是當(dāng)他試著把腳本應(yīng)用到那個(gè)報(bào)表時(shí),腳本卻不能工作,使這個(gè)腳本重新工作會(huì)比手工拷貝數(shù)據(jù)花費(fèi)更多時(shí)間,即使他下個(gè)月還會(huì)拷貝6次?! ”緯菫橄旅孢@幾類人寫的: 為那些認(rèn)為編程太難的人(我們的測(cè)試人員):其實(shí)編程沒有那么難。編程的名聲不太好,是因?yàn)橛?jì)算機(jī)曾經(jīng)運(yùn)行得很慢。為了使程序運(yùn)行得足夠快,程序員不得不使用那些必須告訴計(jì)算機(jī)各種各樣繁瑣細(xì)節(jié)的編程語(yǔ)言。現(xiàn)在計(jì)算機(jī)已經(jīng)足夠快了,能使用那些不需要闡述所有細(xì)節(jié)的語(yǔ)言。結(jié)果就是,現(xiàn)在編程簡(jiǎn)單多了。 為那些在編寫或改寫較大腳本時(shí)陷入困境的人(我們的分析師):你還不能掌控復(fù)雜性,在本書中你能學(xué)到這些。本書會(huì)教你一種現(xiàn)代風(fēng)格的編程方式,它強(qiáng)調(diào)測(cè)試先行(測(cè)試驅(qū)動(dòng)的編程),盡可能借鑒別人的工作,逐步擴(kuò)展程序,并且讓代碼一直保持干凈整潔?! 『芏嗄_本是一次性的:編寫、使用、然后扔到一邊。不過(guò)對(duì)于那些希望保留的腳本,這些技能會(huì)助你一臂之力。(說(shuō)實(shí)話,我接觸過(guò)的許多專業(yè)程序員也沒有學(xué)到這些技能,因此他們會(huì)發(fā)現(xiàn)這本書是一個(gè)不錯(cuò)的開始。) 為那些熟知“錯(cuò)誤”的編程語(yǔ)言的人(我們的程序員):象Java、C#、c++或者C這樣的編程語(yǔ)言有特定的使用環(huán)境,但是它們并不善于快速實(shí)現(xiàn)小程序,尤其是那些需要操作文本和文件而非數(shù)字和內(nèi)部數(shù)據(jù)結(jié)構(gòu)的小程序。你需要在自己的技能清單里添上另一門編程語(yǔ)言?! ≡诒緯?,你將學(xué)習(xí)一種對(duì)上述三類讀者都很適合的語(yǔ)言——RubY。它易學(xué)易用,既有轉(zhuǎn)換或者搜索文本這類簡(jiǎn)單的特性,也具備處理復(fù)雜事物的各種特性。如果你是測(cè)試人員,你會(huì)很高興,因?yàn)闇y(cè)試也是Ruby所擅長(zhǎng)的領(lǐng)域之一(很大程度上歸功于Watir)。如果你是程序員,你大概已經(jīng)知道Ruby最近因?yàn)樗摹皻⑹旨?jí)應(yīng)用”——Rails(一個(gè)構(gòu)建Web應(yīng)用的框架)而變得爆受歡迎。拋開這些,Ruby已有超過(guò)l0年的歷史,它不是某種短暫的時(shí)髦東西或者不穩(wěn)定的原型。而且,Ruby社區(qū)十分友好,每個(gè)人都會(huì)樂于參與其中。
媒體關(guān)注與評(píng)論
大量精彩的訣竅、指導(dǎo)、警告、全面的例子、隱喻、練習(xí)以及提問!對(duì)于那些想最大限度地利用測(cè)試自動(dòng)化的軟件測(cè)試從業(yè)者來(lái)說(shuō),本書極具參考價(jià)值。 GrigoriMelnik UniversityofCalgary,講師 一本精彩的“跟我一起做(type-along-with-me)”類型的書籍,它由淺入深地介紹了一門強(qiáng)大的腳本語(yǔ)言,讓讀者在不知不覺中成為一名Ruby程序員?! rikPetersen Emprove 終于,測(cè)試社區(qū)擁有了一本飽含智慧結(jié)晶的手冊(cè)。文字簡(jiǎn)明易懂,示例代碼面向現(xiàn)實(shí)問題,并涵蓋像測(cè)試驅(qū)動(dòng)、繼承這樣的復(fù)雜主題。通過(guò)它,測(cè)試人員不僅能在測(cè)試領(lǐng)域更上層樓,也讓他們能為所在機(jī)構(gòu)的軟件開發(fā)作出可觀的貢獻(xiàn)?! unjanDoshi CommunityConnect,Inc,產(chǎn)品開發(fā)和流程優(yōu)化部副總 Marick通過(guò)一系列簡(jiǎn)短實(shí)用的例子對(duì)Ruby語(yǔ)言進(jìn)行了解說(shuō)。相信Watir用戶和其他準(zhǔn)備學(xué)習(xí)Ruby的測(cè)試人員一定會(huì)樂在其中?! retPettichord Watir,開發(fā)主管 讀完本書,你能學(xué)會(huì)測(cè)試自動(dòng)化,這會(huì)讓你在你的QA同伴中脫穎而出;你還能學(xué)會(huì)用Ruby編程,它其樂無(wú)窮;你會(huì)得到若干有用的實(shí)用工具,稍加修改就能滿足特定需求。本書讓這一切都來(lái)得輕松愉快。你會(huì)成為更有效率的測(cè)試人員,并(很可能)非常享受測(cè)試的全過(guò)程?! eorgeHawthorne OblomovConsulting咨詢師 本書相當(dāng)出色。在這樣一本相對(duì)苗條的書里,既有豐富的內(nèi)容,又覆蓋了很多領(lǐng)域,這讓我感覺非常棒。我有很多超過(guò)800頁(yè)的技術(shù)書籍,我一般只能讀完前面的一半或2/3,因?yàn)樗鼈兺酵笤缴願(yuàn)W。本書卻讓我一直興致盎然,我有一份全職工作和一個(gè)10個(gè)月大的兒子,而我仍在一個(gè)星期左右的時(shí)間里看完了本書的所有示例代碼。Brian的個(gè)性對(duì)本書起到了良好作用(比如說(shuō)“狗窩”那段內(nèi)容),它使得所述內(nèi)容更容易理解?! addyHealey Aventail,企業(yè)系統(tǒng)工程師 本書關(guān)于正則表達(dá)式的章節(jié)、示例和練習(xí)就能值回本書的價(jià)錢了!其余的就是你賺到的——那是你不曾想過(guò)能夠擁有的各種甜點(diǎn)。不管你是初學(xué)乍練還是編程老手,本書都是無(wú)價(jià)之寶。那些示例、練習(xí)、各種Ruby語(yǔ)言細(xì)節(jié)、循序漸進(jìn)的方法和講解會(huì)讓你在測(cè)試自動(dòng)化方面進(jìn)入一個(gè)全新的境界?! aulCarvalho SoftwareTestingandQualityServices,咨詢師
編輯推薦
大量精彩的訣竅、指導(dǎo)、警告、例子、隱喻、練習(xí)及提問!對(duì)于那些想最大限度地利用測(cè)試自動(dòng)化的軟件測(cè)試從業(yè)者來(lái)說(shuō),本書極具參考價(jià)值。 Grigori Melnik,加拿大卡爾加里大學(xué)講師 作為測(cè)試人員,你用于創(chuàng)建復(fù)雜測(cè)試數(shù)據(jù)的時(shí)間是否比使用它們的時(shí)間還要長(zhǎng)?作為業(yè)務(wù)分析師,你多年讀書的結(jié)果是否只是讓你忙于把數(shù)據(jù)從報(bào)表拷貝到電子表格中?作為一個(gè)程序員,你是否每天都不得不巡視版本控制系統(tǒng)的輸出來(lái)尋找所需文件? 如果你對(duì)上述問題的回答有一個(gè)為“是”,那么你就是在浪費(fèi)工作臺(tái)上的計(jì)算機(jī)。應(yīng)該讓計(jì)算機(jī)做它應(yīng)該做的事情,而你應(yīng)該做的事情是思考!你只需要一門腳本語(yǔ)言(它是免費(fèi)的?。┖捅緯ㄋ鼙阋耍。?,并花一些時(shí)間通讀示例程序并完成練習(xí)就足夠了。 從本書中,你將學(xué)到Ruby的一些基礎(chǔ)知識(shí),并了解如何使用測(cè)試驅(qū)動(dòng)設(shè)計(jì)編寫穩(wěn)定可控的腳本。你還能學(xué)到如何使用應(yīng)用程序框架,它使你編寫少量代碼即可完成工作?! ∧氵€會(huì)學(xué)到如何處理常見的錯(cuò)誤。你將學(xué)會(huì)辨明是否會(huì)走進(jìn)死胡同,并學(xué)會(huì)怎樣走出困境。你甚至能看到那些最常見的鍵盤輸入錯(cuò)誤,當(dāng)真正見到它們時(shí),你會(huì)輕松地意識(shí)到錯(cuò)在哪里。 ■學(xué)會(huì)讓任務(wù)自動(dòng)化?! 霁@得一些真正有用的腳本程序,它們可以輕松地應(yīng)用到你的工作中?! 隼斫饩幊绦g(shù)語(yǔ)和概念?! 鰪囊延械拇a和庫(kù)中獲益。 ■跟團(tuán)隊(duì)成員更有效地溝通。 Brian Marick擁有英語(yǔ)文學(xué)和計(jì)算機(jī)科學(xué)的雙重學(xué)位,多面手的才能也體現(xiàn)在他的職業(yè)生涯中。有時(shí)他是程序員,有時(shí)他又是測(cè)試人員。不管在哪個(gè)領(lǐng)域,他都比別人做得更好,因?yàn)樗私饬硗庖粋€(gè)領(lǐng)域。在編寫《The Craft of Softwa re Testin9》一書時(shí),他就展現(xiàn)了這種才能。Brian還是《敏捷軟件開發(fā)》(《Agile Software Development》)的起草者之一,并從此在敏捷方法學(xué)(Agile methodologies)方面有深入研究。因?yàn)槊艚莘椒ü膭?lì)跨學(xué)科的工作方式,他又一次發(fā)現(xiàn)自己不適合固定的領(lǐng)域。當(dāng)做咨詢工作時(shí),他必須面對(duì)各種挑戰(zhàn)?! ∽鳛闇y(cè)試人員,你用于創(chuàng)建復(fù)雜測(cè)試數(shù)據(jù)的時(shí)間是否比使用它們的時(shí)間還要長(zhǎng)?作為業(yè)務(wù)分析師,你多年讀書的結(jié)果是否只是讓你忙于把數(shù)據(jù)從報(bào)表拷貝到電子表格中?作為一個(gè)程序員,你是否每天都不得不巡視版本控制系統(tǒng)的輸出來(lái)尋找所需文件?如果你對(duì)上述問題的回答有一個(gè)為“是”,那么你就是在浪費(fèi)工作臺(tái)上的計(jì)算機(jī)。應(yīng)該讓計(jì)算機(jī)做它應(yīng)該做的事情,而你應(yīng)該做的事情是思考!你只需要一門腳本語(yǔ)言(它是免費(fèi)的?。┖捅緯ㄋ鼙阋耍。?,并花一些時(shí)間通讀示例程序并完成練習(xí)就足夠了?! 谋緯校銓W(xué)到Rubv的一些基礎(chǔ)知識(shí),并了解如何使用測(cè)試驅(qū)動(dòng)設(shè)計(jì)編寫穩(wěn)定可控的腳本。你還能學(xué)到如何使用應(yīng)用程序框架,它使你編寫少量代碼即可完成工作?! ∧氵€會(huì)學(xué)到如何處理常見的錯(cuò)誤。你將學(xué)會(huì)辨明是否會(huì)走進(jìn)死胡同,并學(xué)會(huì)怎樣走出困境。你甚至能看到那些最常見的鍵盤輸入錯(cuò)誤,當(dāng)真正見到它們時(shí),你會(huì)輕松地意識(shí)到錯(cuò)在哪里。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
Everyday Scripting with Ruby中文版 PDF格式下載