出版時間:2011-6 出版社:清華大學 作者:阿瑟諾維斯基 頁數(shù):498
Tag標簽:無
內(nèi)容概要
重構(gòu)是迅速發(fā)現(xiàn)并修復有問題的代碼的一種高效的方式。在《代碼重構(gòu)(c # &
asp.net版)》中首次提供了在c#和asp.net中進行重構(gòu)的專業(yè)方法,您將學習如何運用重構(gòu)技術(shù)管理和修改代碼。此外,還將學習如何從頭開始構(gòu)建原型應用程序,然后利用重構(gòu)技術(shù)將原型轉(zhuǎn)換為正確設計的、企業(yè)級的應用程序。
通過一步一步的指導,您將更好地理解不同的代碼問題以及重構(gòu)的轉(zhuǎn)換。很多這些轉(zhuǎn)換都是從現(xiàn)實世界的情形中開發(fā)出來的,這些都是關(guān)鍵的業(yè)務決策的結(jié)果。此外,《代碼重構(gòu)(c#
& asp.net版)》還將介紹重構(gòu)技術(shù)的標準定義,這樣您就可以在工作中引用到它。
《代碼重構(gòu)(c# &
asp.net版)》涵蓋的重構(gòu)技術(shù)將讓您變得效率更高。您將能使用這些信息對修改做出反應并改進既有代碼的設計。
主要內(nèi)容
◆組裝重構(gòu)工具箱的步驟
◆完成單元測試的技術(shù)
◆重構(gòu)為模式的技巧
◆如何使用重構(gòu)升級既有的c#和asp.net代碼
◆利用方法提取消除重復代碼的方式
◆如何讓代碼變得更簡單、更易于修改以及更容易理解
◆所有關(guān)于面向?qū)ο蟮睦碚摵驮O計模式
◆利用linq和其他c#3.0增強功能的技巧
讀者對象
《代碼重構(gòu)(c# &
asp.net版)》適用于那些想要學習通過重構(gòu)工具和功能來高效地管理和修改代碼的c#和asp.net開發(fā)人員。
作者簡介
作者:(美國)阿瑟諾維斯基(Danijel Arsenovski) 譯者:潘立福 權(quán)樂阿瑟諾維斯基(Danijel Arsenovski),是一位作家、軟件架構(gòu)師,也是一位敏捷指導員。他目前擔任Excelsys S.A.公司的產(chǎn)品和解決方案架構(gòu)師,主要負責為當?shù)氐拇罅靠蛻粼O計Web 2.0銀行解決方案。在整改大型銀行系統(tǒng)時,他開始嘗試重構(gòu),并始終對重構(gòu)保持著濃厚的興趣。他因提倡在.NET平臺上運用重構(gòu)而聲名遠揚。Arsenovski是Visual Studio Magazine、.NET Developers Journal和Visual Systems Journal的撰稿人,擁有Microsoft Certified Solution Developer(MCSD)證書,并被評為2005年的Microsoft MVP。
書籍目錄
第1章 重構(gòu)的全面介紹
1.1 重構(gòu)的快速瀏覽
1.1.1 重構(gòu)過程
1.1.2 軟件開發(fā)現(xiàn)狀概述
1.2 重構(gòu)過程的詳細介紹
1.2.1 代碼味道的使用
1.2.2 代碼轉(zhuǎn)換
1.2.3 使重構(gòu)的轉(zhuǎn)換自動化
1.2.4 重構(gòu)的優(yōu)點
1.2.5 澄清一些常見的誤解
1.3 沒有孤軍奮戰(zhàn)的編程人員
1.4 c#和重構(gòu)
1.5 小結(jié)
第2章 重構(gòu)的初次體驗
2.1 示例應用程序:calories calculator
2.1.1 具有計算推薦每日卡路里量功能的calories calculator應用程序
2.1.2 需求的增長:計算理想的體重
2.1.3 需求的增長:病人數(shù)據(jù)的持久化
2.2 重構(gòu)實戰(zhàn)
.2.2.1 將btncalculate_click方法分解
2.2.2 計算并顯示實際體重和理想體重之間差距的片段
2.2.3 按性別計算卡路里和理想的體重
2.2.4 經(jīng)過方法提取之后的btncalculate_click方法
2.2.5 發(fā)現(xiàn)新的類
2.2.6 縮小patient類的接口
2.2.7 重新構(gòu)建distancefromidealweight方法
2.2.8 創(chuàng)建patient類的層次結(jié)構(gòu)
2.3 持久化功能的實現(xiàn)
2.3.1 保存數(shù)據(jù)
2.3.2 實現(xiàn)顯示病人歷史信息的功能
2.4 calories calculator的重構(gòu)版本
2.5 小結(jié)
第3章 組建重構(gòu)工具箱
3.1 使用自動化的重構(gòu)工具
3.1.1 jetbrains提供的resharper
3.1.2 developer express提供的refactor! pro
3.1.3 developer express提供的refactor! for asp
3.1.4 visual studio的重構(gòu)功能
3.2 單元測試的基本要素:測試用具
3.2.1 單元測試架構(gòu)出現(xiàn)的原因
3.2.2 nunit的初體驗
3.2.3 nunit的安裝
3.2.4 使用示例
3.2.5 實現(xiàn)第一個測試
3.2.6 測試驅(qū)動的方法
3.2.7 可考慮的其他測試工具
3.3 關(guān)于版本控制的一些問題
3.3.1 作為備份系統(tǒng)的版本控制
3.3.2 版本控制和并發(fā)
3.4 小結(jié)
第4章 應用程序的原型:rent-a-wheels
4.1 會見客戶
4.1.1 會見經(jīng)理
4.1.2 會見前臺接待員
4.1.3 會見停車場服務員
4.1.4 會見維護人員
4.2 實施rent-a-wheels項目中最初的步驟
4.2.1 參與者和用例
4.2.2 汽車的狀態(tài)
4.2.3 應用程序主窗口的第一次草圖
4.2.4 rent-a-wheels開發(fā)團隊的會議
4.3 讓原型運轉(zhuǎn)
4.3.1 檢查數(shù)據(jù)庫模型
4.3.2 檢查c#代碼
4.4 快速的編程方法
4.4.1 數(shù)據(jù)庫驅(qū)動的設計
4.4.2 基于gui的應用程序
4.4.3 事件驅(qū)動的編程
4.4.4 快速應用程序開發(fā)
4.4.5 將復制/粘貼作為代碼重用的機制
4.4.6 通過重構(gòu)過程從原型到最后交付
4.5 小結(jié)
第5章 基本的代碼清理
5.1 消除無用代碼
5.1.1 無用代碼的類型
5.1.2 無用代碼常見的來源
5.2 降低過度暴露的元素的作用域和訪問級別
5.2.1 作用域和訪問級別
5.2.2 過度暴露常見的來源
5.2.3 處理過度暴露的問題
5.3 使用顯式導入
5.4 刪除未使用的程序集引用
5.5 rent-a-wheels應用程序中的基本清理工作
5.6 小結(jié)
第6章 從問題域到代碼:消除差距
6.1 理解問題域
6.1.1 第1步:收集信息
6.1.2 第2步:就詞匯表達成一致意見
6.1.3 第3步:描述交互作用
6.1.4 第4步:建立原型
6.2 命名的指導原則
6.2.1 大寫風格
6.2.2 簡單的命名指導原則
6.2.3 良好的溝通:選擇恰當?shù)膯卧~
6.2.4 "重命名"重構(gòu)
6.2.5 visual studio中的"重命名"重構(gòu)
6.3 已發(fā)布接口和公有接口
6.3.1 自包含的應用程序與可重用的模塊
6.3.2 修改已發(fā)布接口
6.4 rent-a-wheels應用程序中的"重命名"和"安全重命名"重構(gòu)
6.5 小結(jié)
第7章 對重復代碼進行方法提取
7.1 封裝代碼和隱藏細節(jié)
7.2 分解方法
7.2.1 周長計算--長方法的一個示例
7.2.2 提取周長計算的代碼
7.2.3 提取計算半徑的代碼
7.2.4 提取"等待用戶關(guān)閉"代碼
7.2.5 提取讀取坐標的代碼
7.2.6 visual studio中的extract method重構(gòu)
7.3 方法內(nèi)聯(lián)化
7.4 重復代碼的味道
7.4.1 重復代碼的來源
7.4.2 復制/粘貼式編程
7.4.3 幻數(shù)
7.5 rent-a-wheels應用程序中的"提取方法"和"用常量取代幻數(shù)"重構(gòu)
7.6 小結(jié)
第8章 方法合并與方法提取的技術(shù)
8.1 臨時變量的處理
8.1.1 "將聲明靠近引用處"重構(gòu)
8.1.2 "將初始化移至聲明處"重構(gòu)
8.1.3 "拆分臨時變量"重構(gòu)
8.1.4 "臨時變量內(nèi)聯(lián)化"重構(gòu)
8.1.5 "用查詢?nèi)〈R時變量"重構(gòu)
8.1.6 引入解釋性的臨時變量
8.2 處理長條件和嵌套條件
8.3 方法重組與rent-a-wheels
8.3.1 刪除rent-a-wheels中的重復代碼
8.3.2 rent-a-wheels中的"幻數(shù)"、"注釋"以及"事件處理盲目性"味道
8.4 小結(jié)
第9章 發(fā)現(xiàn)對象
9.1 面向?qū)ο缶幊痰暮唵位仡?br />9.1.1 oop中的對象
9.1.2 封裝與對象
9.1.3 visual studio中的"封裝字段"重構(gòu)
9.1.4 對象狀態(tài)的保持
9.1.5 類
9.1.6 對象標識
9.1.7 作為基本構(gòu)建塊的對象
9.1.8 根對象
9.1.9 對象的生存期和垃圾回收
9.2 類的設計
9.2.1 使用分析產(chǎn)物
9.2.2 類是名詞,操作是動詞
9.2.3 類、責任和協(xié)作者
9.2.4 在頭腦風暴會議中運用卡片
9.2.5 實體和關(guān)系
9.3 發(fā)現(xiàn)隱藏的類
9.3.1 處理數(shù)據(jù)庫驅(qū)動的設計
9.3.2 從過程式設計到面向?qū)ο笤O計的轉(zhuǎn)移
9.3.3 領域?qū)印⒈硎緦雍统志没瘜拥姆蛛x
9.3.4 發(fā)現(xiàn)對象與rent-a-wheels應用程序
9.4 小結(jié)
第10章 面向?qū)ο蟮母呒壐拍詈拖嚓P(guān)的重構(gòu)
10.1 繼承、多態(tài)性和泛型
10.1.1 繼承
10.1.2 類繼承與接口繼承
10.1.3 多態(tài)性
10.1.4 泛型
10.2 繼承的濫用和重構(gòu)解決方案
10.2.1 誤用為繼承的組合和其他誤用情形
10.2.2 繼承的重構(gòu)--打印系統(tǒng)的示例
10.2.3 用委托替代打印系統(tǒng)中的繼承
10.3 泛型的使用
10.4 rent-a-wheels應用程序中的繼承和泛型
10.4.1 提取超類
10.4.2 運用泛型
10.4.3 提取dataobjectsprovider類
10.5 小結(jié)
第11章 大規(guī)模的代碼組織
11.1 命名空間
11.1.1 命名指導原則與命名空間的組織
11.1.2 嵌套的命名空間
11.1.3 修改默認命名空間的名稱
11.1.4 使用using指令
11.2 程序集
11.2.1 二進制重用
11.2.2 命名空間組織的指導原則
11.2.3 依賴性方面的考慮
11.3 c#項目文件的結(jié)構(gòu)組織
11.4 rent-a-wheels中命名空間的組織與windows窗體繼承
11.4.1 通過抽象窗體輔助類模式提取父管理窗體
11.4.2 命名空間和程序集的重組
11.5 小結(jié)
第12章 重構(gòu)為模式
12.1 什么是設計模式
12.1.1 設計模式的定義
12.1.2 模式的分類
12.1.3 模式的元素
12.1.4 權(quán)衡設計模式的利弊
12.1.5 模式的使用
12.2 設計模式的示例:抽象工廠模式
12.2.1 抽象工廠模式的使用
12.2.2 解決方案
12.2.3 結(jié)果
12.3 依賴注入模式
12.3.1 使用依賴注入的問題
12.3.2 解決方案
12.3.3 基于構(gòu)造函數(shù)的注入與基于屬性的注入
12.3.4 應該注入什么服務實現(xiàn)
12.3.5 di模式的優(yōu)點
12.3.6 重構(gòu)成di
12.4 重構(gòu)成模式與rent-a-wheels應用程序
12.4.1 消除重復.net架構(gòu)功能的代碼
12.4.2 通過依賴注入向gui類中注入data類
12.4.3 crud持久化模式
12.5 小結(jié)
第13章 linq和c# 3.0的其他增強功能
13.1 局部變量的類型推斷
13.1.1 自動實現(xiàn)的屬性
13.1.2 擴展方法
13.1.3 對象、數(shù)組和集合的初始化器
13.1.4 通過linq查詢對象
13.1.5 舊示例換新顏
13.1.6 通過linq to sql進行對象-關(guān)系映射
13.1.7 linq與rent-a-wheels應用程序
13.2 小結(jié)
第14章 web技術(shù)簡史與asp.net重構(gòu)工具
14.1 refactor! for asp.net
14.1.1 調(diào)用refactor! for asp.net
14.1.2 refactor! for asp.net的用戶界面
14.2 html的歷史及其遺留問題
14.3 緊跟web
14.3.1 visual studio和xhtml
14.3.2 xml和編碼
14.3.3 visual studio中html的dtd驗證
14.3.4 提供嚴格的xhtml
14.4 小結(jié)
第15章 asp.net應用程序的重構(gòu)
15.1 html的重構(gòu)
15.1.1 格式完整的xhtml文檔
15.1.2 xhtml的有效性
15.1.3 用于升級遺留的、非遵從xhtml的標記的工具支持
15.1.4 以優(yōu)美的格式打印html文檔
15.1.5 將結(jié)構(gòu)與表示分離
15.1.6 通過rest來使用http
15.2 asp.net代碼的重構(gòu)
15.2.1 asp.net代碼模型:單文件和代碼隱藏
15.2.2 母版頁面
15.2.3 web用戶控件與自定義的服務器控件
15.3 rent-a-wheels與asp.net重構(gòu)
15.4 小結(jié)
附錄a rent-a-wheels原型的內(nèi)部機理
附錄b refactor! for asp.net揭密
章節(jié)摘錄
版權(quán)頁:插圖:
編輯推薦
《代碼重構(gòu)(C#&ASP.NET版)》由清華大學出版社出版。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載