注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)修改代碼的藝術(shù)

修改代碼的藝術(shù)

修改代碼的藝術(shù)

定 價(jià):¥59.00

作 者: (美)費(fèi)瑟 著,劉未鵬 譯
出版社: 人民郵電出版社
叢編項(xiàng): 圖靈程序設(shè)計(jì)叢書
標(biāo) 簽: 計(jì)算機(jī)與互聯(lián)網(wǎng)

ISBN: 9787115163622 出版時(shí)間: 2007-11-01 包裝: 平裝
開本: 16開 頁數(shù): 342 字?jǐn)?shù):  

內(nèi)容簡介

  《修改代碼的藝術(shù)》還包括了一組共24項(xiàng)解依賴技術(shù),它們能幫助你單獨(dú)對付代碼中的問題片段,并實(shí)現(xiàn)更安全的修改。修改代碼是每一位軟件開發(fā)人員的日常工作。開發(fā)人員常常面對的現(xiàn)實(shí)是,即便是最訓(xùn)練有素的開發(fā)團(tuán)隊(duì)也會(huì)寫出混亂的代碼,而且系統(tǒng)的腐化程度也會(huì)日積月累?!缎薷拇a的藝術(shù)》是一部里程碑式的著作,針對大型的、無測試的遺留代碼基,提供了從頭到尾的方案,讓你能夠更有效地應(yīng)付它們,將你的遺留代碼基改善得具有更高性能、更多功能、更好的可靠性和可控性?!缎薷拇a的藝術(shù)》適合各層次軟件開發(fā)人員、管理人員和測試人員閱讀。

作者簡介

  Michael Feathers世界級(jí)面向?qū)ο蠹夹g(shù)專家,以豐富的軟件項(xiàng)目開發(fā)經(jīng)驗(yàn)著稱。目前在世界頂尖的軟件咨詢公司Object Mentor從事敏捷方法,極限編程、測試驅(qū)動(dòng)開發(fā)、重構(gòu)、面向?qū)ο笤O(shè)計(jì)、Java、c#和c++等方面的培訓(xùn)和項(xiàng)目指導(dǎo)。他是著名測試框架CppUnit和FitCpp的開發(fā)者,已經(jīng)主持了三次面向?qū)ο蠼缡?huì)OOPSLA上的CodeFest比賽。

圖書目錄

第一部分 修改機(jī)理第1章 修改軟件 1.1 修改軟件的四個(gè)起因 1.1.1 添加特性和修正bug 1.1.2 改善設(shè)計(jì) 1.1.3 優(yōu)化 1.1.4 綜合起來 1.2 危險(xiǎn)的修改第2章 帶著反饋工作 2.1 什么是單元測試 2.2 高層測試 2.3 測試覆蓋 2.4 遺留代碼修改算法 2.4.1 確定修改點(diǎn) 2.4.2 找出測試點(diǎn) 2.4.3 解依賴 2.4.4 編寫測試 2.4.5 改動(dòng)和重構(gòu) 2.4.6 其他內(nèi)容第3章 感知和分離 3.1 偽裝成合作者 3.1.1 偽對象 3.1.2 偽對象的兩面性 3.1.3 偽對象手法的核心理念 3.1.4 仿對象第4章 接縫模型 4.1 一大段文本 4.2 接縫 4.3 接縫類型 4.3.1 預(yù)處理期接縫 4.3.2 連接期接縫 4.3.3 對象接縫第5章 工具 5.1 自動(dòng)化重構(gòu)工具 5.2 仿對象 5.3 單元測試用具 5.3.1 JUnit 5.3.2 CppUnitLite 5.3.3 NUnit 5.3.4 其他xUnit框架 5.4 一般測試用具 5.4.1 集成測試框架 5.4.2 Fitnesse第二部分 修改代碼的技術(shù)第6章 時(shí)間緊迫,但必須修改 6.1 新生方法 6.2 新生類 6.3 外覆方法 6.4 外覆類 6.5 小結(jié)第7章 漫長的修改 7.1 理解代碼 7.2 時(shí)滯 7.3 解依賴 7.4 小結(jié)第8章 添加特性 8.1 測試驅(qū)動(dòng)開發(fā) 8.1.1 編寫一個(gè)失敗測試用例 8.1.2 讓它通過編譯 8.1.3 讓測試通過 8.1.4 消除重復(fù) 8.1.5 編寫一個(gè)失敗測試用例 8.1.6 讓它通過編譯 8.1.7 讓測試通過 8.1.8 消除重復(fù)代碼 8.1.9 編寫一個(gè)失敗測試用例 8.1.10 讓它通過編譯 8.1.11 讓測試通過 8.1.12 消除重復(fù) 8.2 差異式編程 8.3 小結(jié)第9章 無法將類放入測試用具中 9.1 令人惱火的參數(shù) 9.2 隱藏依賴 9.3 構(gòu)造塊 9.4 惱人的全局依賴 9.5 可怕的包含依賴 9.6 “洋蔥”參數(shù) 9.7 化名參數(shù)第10章 無法在測試用具中運(yùn)行方法 10.1 隱藏的方法 10.2 “有益的”語言特性 10.3 無法探知的副作用第11章 修改時(shí)應(yīng)當(dāng)測試哪些方法 11.1 推測代碼修改所產(chǎn)生的影響 11.2 前向推測 11.3 影響的傳播 11.4 進(jìn)行影響推測的工具 11.5 從影響分析當(dāng)中學(xué)習(xí) 11.6 簡化影響結(jié)構(gòu)示意圖第12章 在同一地進(jìn)行多處修改,是否應(yīng)該將相關(guān)的所有類都解依賴 12.1 攔截點(diǎn) 12.1.1 簡單的情形 12.1.2 高層攔截點(diǎn) 12.2 通過匯點(diǎn)來判斷設(shè)計(jì)的好壞 12.3 匯點(diǎn)的陷阱第13章 修改時(shí)應(yīng)該怎樣寫測試 13.1 特征測試 13.2 刻畫類 13.3 目標(biāo)測試 13.4 編寫特征測試的啟發(fā)式方法第14章 棘手的庫依賴問題第15章 到處都是API調(diào)用第16章 對代碼的理解不足 16.1 注記/草圖 16.2 清單標(biāo)注 16.2.1 職責(zé)分離 16.2.2 理解方法結(jié)構(gòu) 16.2.3 方法提取 16.2.4 理解你的修改產(chǎn)生的影響 16.3 草稿式重構(gòu) 16.4 刪除不用的代碼第17章 應(yīng)用毫無結(jié)構(gòu)可言 17.1 講述系統(tǒng)的故事 17.2 Naked CRC 17.3 反省你們的交流或討論第18章 測試代碼礙手礙腳 18.1 類命名約定 18.2 測試代碼放在哪兒第19章 對非面向?qū)ο蟮捻?xiàng)目,如何安全地對它進(jìn)行修改 19.1 一個(gè)簡單的案例 19.2 一個(gè)棘手的案例 19.3 添加新行為 19.4 利用面向?qū)ο蟮膬?yōu)勢 19.5 一切都是面向?qū)ο蟮?0章 處理大類 20.1 職責(zé)識(shí)別 20.2 其他技術(shù) 20.3 繼續(xù)前進(jìn) 20.3.1 戰(zhàn)略 20.3.2 戰(zhàn)術(shù) 20.4 類提取之后第21章 需要修改大量相同的代碼第22章 要修改一個(gè)巨型方法,卻沒法為它編寫測試 22.1 巨型方法的種類 22.1.1 項(xiàng)目列表式方法 22.1.2 鋸齒狀方法 22.2 利用自動(dòng)重構(gòu)支持來對付巨型方法 22.3 手動(dòng)重構(gòu)的挑戰(zhàn) 22.3.1 引入感知變量 22.3.2 只提取你所了解的 22.3.3 依賴收集 22.3.4 分解出方法對象 22.4 策略 22.4.1 主干提取 22.4.2 序列發(fā)現(xiàn) 22.4.3 優(yōu)先提取到當(dāng)前類中 22.4.4 小塊提取 22.4.5 時(shí)刻準(zhǔn)備重新提取第23章 降低修改的風(fēng)險(xiǎn) 23.1 超感編輯 23.2 單一目標(biāo)的編輯 23.3 簽名保持 23.4 依靠編譯器第24章 當(dāng)你感到絕望時(shí)第三部分 解依賴技術(shù)第25章 解依賴技術(shù) 25.1 參數(shù)適配 25.2 分解出方法對象 25.3 定義補(bǔ)全 25.4 封裝全局引用 25.5 暴露靜態(tài)方法 25.6 提取并重寫調(diào)用 25.7 提取并重寫工廠方法 25.8 提取并重寫獲取方法 25.9 實(shí)現(xiàn)提取 25.9.1 步驟 25.9.2 一個(gè)更復(fù)雜的例子 25.10 接口提取 25.11 引入實(shí)例委托 25.12 引入靜態(tài)設(shè)置方法 25.13 連接替換 25.14 參數(shù)化構(gòu)造函數(shù) 25.15 數(shù)化方法 25.16 樸素化參數(shù) 25.17 特性提升 25.18 依賴下推 25.19 換函數(shù)為函數(shù)指針 25.20 以獲取方法替換全局引用 25.21 子類化并重寫方法 25.22 替換實(shí)例變量 25.23 模板重定義 25.24 文本重定義附錄重構(gòu)術(shù)語表索引

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)