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