《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》是一本由Lasse Koskela著(zhù)作,人民郵電出版社出版的平裝圖書(shū),本書(shū)定價(jià):59.00元,頁(yè)數:348,特精心從網(wǎng)絡(luò )上整理的一些讀者的讀后感,希望對大家能有幫助。
《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》精選點(diǎn)評:
●書(shū)名起的很?chē)樔耍簿褪且槐救腴T(mén)書(shū)啦。重溫了教科書(shū)版的用例設計,開(kāi)發(fā)和重構原則,以及ATDD的介紹。
●單元測試的牛書(shū)。
●對TDD是什么無(wú)感?看這本書(shū)可以幫你入門(mén),里面寫(xiě)了個(gè)使用TDD的方法開(kāi)發(fā)一個(gè)模板引擎的過(guò)程。還行吧
●書(shū)名無(wú)力吐槽……可以先把第 10 章開(kāi)個(gè)頭再回頭看第 9 章,不然太痛苦……
●目前在項目中確實(shí)在大量實(shí)施TDD等單元測試開(kāi)發(fā), 但目前發(fā)現效果不好, 用例開(kāi)發(fā)與測試方法不當. 需要更專(zhuān)業(yè)的意見(jiàn). 在使用TDD過(guò)程中, 需要了解與學(xué)習所有涉及的技術(shù)點(diǎn), 這樣才能更好地將TDD運用與簡(jiǎn)單使用在具體項目中. 文中的具體技術(shù)的TDD測試框架有借鑒意義.
●這個(gè)書(shū)名真是……
●2017.29
●挺不錯的tdd入門(mén)書(shū),雖然里面說(shuō)得技術(shù)有點(diǎn)老了
●還是實(shí)踐出真知,再看看書(shū),理論上提高一下,挺好。
●很不錯的書(shū),有理論有例子,深入淺出。不搞 Java 所以只看了第一部分。博客水平的翻譯很影響理解,后面專(zhuān)有名詞多了根本就是災難。幾乎所有測試框架 API 都是英文的,“夾具”、“替身”……看著(zhù)頭暈。
《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》讀后感(一):tdd的思想是不分語(yǔ)言的
整本書(shū)從tdd的概念到例子說(shuō)明,都是一步一步的來(lái)教,從寫(xiě)單元測試,到重構都很細心的講解。tdd的書(shū)籍實(shí)在是太少,而這本書(shū)對我來(lái)說(shuō),可以說(shuō)是對我今后的開(kāi)發(fā)方式都有巨大的影響,就算我不是從事java開(kāi)發(fā)。
《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》讀后感(二):只能說(shuō)是一本入門(mén)的書(shū)籍
這本書(shū)僅僅介紹了大量概念性的內容,卻沒(méi)有比較有用的sample,顯得太空洞,指導意義不是很大。測試驅動(dòng)開(kāi)發(fā),是一項實(shí)踐性很強的開(kāi)發(fā)技巧,本書(shū)作為一本的測試驅動(dòng)開(kāi)發(fā)的入門(mén)書(shū)籍還可以,藝術(shù)二字,純當是嘩眾取寵吧。
《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》讀后感(三):看還是不看,什么時(shí)間點(diǎn)看。用還是不用,什么時(shí)間點(diǎn)用。這都是問(wèn)題
久仰TDD和ATDD大名,從此書(shū)中得知一二。
此書(shū)的英文名是Test Driven - Practical TDD and Acceptance TDD for Java Developers,一定要注意是for Java Developers,翻譯成TDD開(kāi)發(fā)的藝術(shù)確實(shí)有些唬人,不過(guò)一旦上升到藝術(shù),肯定是有共通的含義。
具體到書(shū)中總結的TDD和ATDD的基本概念,流程,實(shí)踐(Practice),甚至教你如何推廣和處理來(lái)自不同方面的阻力,無(wú)疑都是作者多年TDD的經(jīng)驗。其中總結的很多準側都令人拍案叫絕,深有同感。例如提高設計可測試性的準側:
1. 盡量使用組合(Composition)而非繼承(Inheritance)
2. 避免使用static關(guān)鍵字,以及Singleton模式
3. 隔離依賴(lài)(Isolate Dependencies)
4. 注入依賴(lài)(Inject Dependencies)
字字珠璣,十年辛苦不尋常。結合自己的經(jīng)驗來(lái)看,真的是一語(yǔ)點(diǎn)醒夢(mèng)中人。
不過(guò)回到本書(shū)評的標題:看還是不看,什么時(shí)間點(diǎn)看。用還是不用,什么時(shí)間點(diǎn)用。這都是問(wèn)題。這才是我最大的困惑,TDD到底適合什么樣的開(kāi)發(fā)人員,如果作為菜鳥(niǎo)碰到一個(gè)嚴格執行TDD的Mentor,那肯定是三生有幸,但我們大部分人都是在已有的Legacy代碼上跳舞,如何才能做到并去推廣TDD呢?如果一個(gè)線(xiàn)上運行良久的系統沒(méi)有很好的覆蓋率,我們應該如何補全測試并推廣TDD?當然一味的談?wù)摳采w率是沒(méi)有意義的,但是從我個(gè)人角度來(lái)看,雖然修行在個(gè)人,但TDD師傅領(lǐng)進(jìn)門(mén)卻十分的重要。
任重而道遠。
《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》讀后感(四):實(shí)實(shí)在在的TDD
讀了《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》,總結一下有以下幾個(gè)特點(diǎn):
1,名字“誤人”
這本書(shū)的名字有點(diǎn)過(guò)于炫了。應該講這是一本寫(xiě)給Java開(kāi)發(fā)人員的TDD的書(shū)籍,談的更多的也不是藝術(shù),而是實(shí)踐。所以Java開(kāi)發(fā)者會(huì )感覺(jué)更加親切,也會(huì )覺(jué)得厚實(shí)。
2,細致
在講解對于特定技術(shù)進(jìn)行TDD實(shí)踐方面,作者特別細致。從大的方面包括了對于Web組件、DAO、Swing、多線(xiàn)程等等繼續TDD的內容。英文原版甚至還包括了對EJB部分。深入到某個(gè)專(zhuān)題,作者通過(guò)大量代碼示例,分析不同情況,逐一闡述。比如講解TDD數據訪(fǎng)問(wèn)層的時(shí)候,作者分別介紹了用純JDBC,Spring的JdbcTemplate和Hibernate來(lái)實(shí)現DAO的時(shí)候,該怎么樣進(jìn)行TDD。同時(shí)也介紹了怎么樣直接連接到內存數據庫進(jìn)行集成測試等。可謂無(wú)微不至。
3,全面
說(shuō)這本書(shū)全面,是指它既介紹了TDD的概念,模式,對于特定技術(shù)的運用,同時(shí)還講到了ATDD以及相關(guān)產(chǎn)品、策略和應用,可以說(shuō)包羅萬(wàn)象。特別是ATDD部分,相關(guān)的中文出版書(shū)籍并不多,可以作為一個(gè)很好的入門(mén)材料,只是沒(méi)有了介紹TDD那部分深入,卻也留給了大家繼續探索的空間。
覺(jué)得有點(diǎn)美中不足的是,本書(shū)缺少一個(gè)貫穿始終的項目例子。如果有的話(huà),可能讀者會(huì )更身臨其境。
單元測試和TDD還是有本質(zhì)的區別的。對于那些對TDD不是很熟悉的讀者來(lái)說(shuō),本書(shū)的第一部分是很好的入門(mén),第二部分則是很好的實(shí)踐老師。
當然,讀這本書(shū),并不輕松。跟之前讀的幾本圖靈的書(shū),比如《結網(wǎng)》、《與孩子一起學(xué)編程》相比,本書(shū)寫(xiě)得略顯生澀,缺乏幽默——也許這就叫做嚴謹?
《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》讀后感(五):評測試驅動(dòng)開(kāi)發(fā)的藝術(shù)
讀罷《測試驅動(dòng)開(kāi)發(fā)的藝術(shù)》,忽然想起中國傳統文化中的“道器之辯”。《易經(jīng)》曰:形而上者謂之道,形而下者謂之器。中國的傳統文化常常是重道輕器,認為道本器末,即道是根本,其他一切是道的外在表現,器是道的從生與從屬。這就導致我們常常喜歡把“道”與“器”割裂開(kāi)來(lái),一味地重視過(guò)度抽象的“道”,進(jìn)而形成一種形而上學(xué)的玄幻,使得“道”高高在上,未能落于實(shí)處。重道輕器給傳統文化帶來(lái)的缺失告訴我們,“道”與“器”應該是統一的,道是本質(zhì),卻又必須依賴(lài)于器,受制于器。
從軟件開(kāi)發(fā)的角度來(lái)看,TDD的本質(zhì)思想即為“道”,這其中包括按照意圖編程的思想,提高可測試性的設計原則,以及測試的模式與面向對象的基本思想。而“器”則包含對TDD的合理運用,針對不同的用例場(chǎng)景做出的測試手法,以及對測試工具的使用。
本書(shū)第一部分《TDD入門(mén)》闡述的正是TDD之道。雖然是入門(mén)知識,卻高屋建瓴地闡明了TDD的真諦。例如本書(shū)寫(xiě)道:
在TDD周期中的第一步中,我們會(huì )寫(xiě)測試,實(shí)際上這并不只是寫(xiě)測試而已,而是在做設計。我們是在設計API,即用來(lái)訪(fǎng)問(wèn)新功能的接口。編碼之前寫(xiě)測試,我們會(huì )自然地考慮新代碼的調用方式。……測試先行的編碼方式會(huì )促使我們站在代碼用戶(hù)(開(kāi)發(fā)人員)的角度考慮,設計出更易用的API。
很多開(kāi)發(fā)人員并不愿意接受TDD的開(kāi)發(fā)方式,認為這種先寫(xiě)測試后編碼的方式既別扭而又浪費時(shí)間,原因就在于他們沒(méi)有真正體會(huì )這種測試驅動(dòng)設計的好處。TDD最重要的一個(gè)字眼兒就是drive(驅動(dòng)),事實(shí)上,這種驅動(dòng)力正是所謂“按照意圖編程”的重要思想。
意圖編程,顧名思義,就是說(shuō)寫(xiě)代碼時(shí)先假設其他部分代碼都已經(jīng)存在了(即使事實(shí)并非如此)。使用這種編程方法時(shí),我們可以把注意力集中在能有的,而不是已經(jīng)有的東西上。使用意圖編程,我們能讓代碼讀起來(lái)更流暢,容易理解和使用,也能使代碼清晰地表達出自己的本意,而不會(huì )過(guò)于強調實(shí)現細節。
個(gè)人認為,本書(shū)第一部分給出的郵件模板子系統的范例更貼近開(kāi)發(fā)真實(shí),卻又不至于晦澀難懂。作者在選擇范例上的匠心獨運,使得本書(shū)既具有很強的實(shí)踐指導意義,又不至于陷入復雜的業(yè)務(wù)需求和技術(shù)細節中。范例給出的第一個(gè)測試、偽實(shí)現以及重構的手法,都是自然而然的TDD過(guò)程,而不是為了寫(xiě)作本書(shū)生拉硬拽,東拼西湊,有著(zhù)強烈地雕琢痕跡。若能在閱讀過(guò)程中,比照著(zhù)這樣的過(guò)程動(dòng)手實(shí)驗,相信能夠獲得更大的提高。
從本書(shū)的第二部分開(kāi)始,就邁入了TDD“器”的部分。之所以說(shuō)是TDD之“器”,在于它介紹了針對特定技術(shù)應用TDD的內容,這其中包括對Web組件、數據訪(fǎng)問(wèn)、多線(xiàn)程、Swing代碼的測試驅動(dòng)開(kāi)發(fā)。在講解的過(guò)程中,作者還介紹了大量用于這些特定技術(shù)應用TDD的工具或框架,例如JspTest、EasyMock、MockObjects、HSQLDB、Jemmy、Abbot等。這些都是Java平臺下常用的支持TDD的有力工具。本書(shū)的第三部分則著(zhù)重介紹了ATDD(驗收測試驅動(dòng)開(kāi)發(fā)),包括對用戶(hù)故事的介紹,驗收測試的特征與實(shí)現,ATDD的過(guò)程以及相關(guān)工具Fit。這在許多介紹TDD的書(shū)籍中都是不多見(jiàn)的內容。
這兩部分內容給出了許多貼近開(kāi)發(fā)真實(shí)的例子,提出了許多卓有成效的測試方法。這些內容如此地實(shí)用,涵蓋的知識如此地全面,基本上可以解決我們在企業(yè)開(kāi)發(fā)中進(jìn)行TDD可能遇到的問(wèn)題。事實(shí)上,這些內容大多數都可以說(shuō)是TDD實(shí)踐過(guò)程中的攔路虎,尤其是針對表現層和多線(xiàn)程技術(shù)的TDD方法,大多數開(kāi)發(fā)人員都缺乏這方面的知識,甚至因為這樣而放棄TDD。本書(shū)極具實(shí)踐指導意義的闡述彌補了這一空白。遺憾的是,本書(shū)介紹的內容主要針對Java開(kāi)發(fā)人員,因而提及的工具也都基于Java平臺,對于其他平臺下的開(kāi)發(fā)人員而言,無(wú)疑削弱了幾分價(jià)值。
本書(shū)還有一點(diǎn)不足就是“道”與“器”的不統一。前面提到,本書(shū)的第一部分開(kāi)篇名義,用極簡(jiǎn)潔的語(yǔ)言道明了TDD的本質(zhì)。然而本書(shū)的第二部分與第三部分,幾乎只停留在TDD方法和工具的使用上,而忽略了測試對于設計的驅動(dòng)力。書(shū)中的例子僅僅給出了如何完成測試用例,如果建立Mock對象,卻不再介紹為何要這樣編寫(xiě)測試用例,驅動(dòng)我們進(jìn)行設計的意圖何在。換言之,后面的例子省略了驅動(dòng)對設計進(jìn)行推導的過(guò)程。這種驅動(dòng)設計的能力恰好是很多程序員所不具備的。“器”固然重要,但它必須遵循“道”的要義,在其指引下實(shí)施。本書(shū)內容“道”與“器”兼顧,卻將二者割裂開(kāi)來(lái),未能形成統一的整體,不能不說(shuō)白璧微暇,略有遺憾。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.626秒