代碼重構(gòu)

出版時(shí)間:2011-6  出版社:清華大學(xué)  作者:阿瑟諾維斯基  頁(yè)數(shù):498  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

  重構(gòu)是迅速發(fā)現(xiàn)并修復(fù)有問(wèn)題的代碼的一種高效的方式。在《代碼重構(gòu)(c # &
asp.net版)》中首次提供了在c#和asp.net中進(jìn)行重構(gòu)的專業(yè)方法,您將學(xué)習(xí)如何運(yùn)用重構(gòu)技術(shù)管理和修改代碼。此外,還將學(xué)習(xí)如何從頭開始構(gòu)建原型應(yīng)用程序,然后利用重構(gòu)技術(shù)將原型轉(zhuǎn)換為正確設(shè)計(jì)的、企業(yè)級(jí)的應(yīng)用程序。
  通過(guò)一步一步的指導(dǎo),您將更好地理解不同的代碼問(wèn)題以及重構(gòu)的轉(zhuǎn)換。很多這些轉(zhuǎn)換都是從現(xiàn)實(shí)世界的情形中開發(fā)出來(lái)的,這些都是關(guān)鍵的業(yè)務(wù)決策的結(jié)果。此外,《代碼重構(gòu)(c#
& asp.net版)》還將介紹重構(gòu)技術(shù)的標(biāo)準(zhǔn)定義,這樣您就可以在工作中引用到它。
  《代碼重構(gòu)(c# &
asp.net版)》涵蓋的重構(gòu)技術(shù)將讓您變得效率更高。您將能使用這些信息對(duì)修改做出反應(yīng)并改進(jìn)既有代碼的設(shè)計(jì)。
  主要內(nèi)容
  ◆組裝重構(gòu)工具箱的步驟
  ◆完成單元測(cè)試的技術(shù)
  ◆重構(gòu)為模式的技巧
  ◆如何使用重構(gòu)升級(jí)既有的c#和asp.net代碼
  ◆利用方法提取消除重復(fù)代碼的方式
  ◆如何讓代碼變得更簡(jiǎn)單、更易于修改以及更容易理解
  ◆所有關(guān)于面向?qū)ο蟮睦碚摵驮O(shè)計(jì)模式
  ◆利用linq和其他c#3.0增強(qiáng)功能的技巧
  讀者對(duì)象
  《代碼重構(gòu)(c# &
asp.net版)》適用于那些想要學(xué)習(xí)通過(guò)重構(gòu)工具和功能來(lái)高效地管理和修改代碼的c#和asp.net開發(fā)人員。

作者簡(jiǎn)介

作者:(美國(guó))阿瑟諾維斯基(Danijel Arsenovski) 譯者:潘立福 權(quán)樂(lè)阿瑟諾維斯基(Danijel Arsenovski),是一位作家、軟件架構(gòu)師,也是一位敏捷指導(dǎo)員。他目前擔(dān)任Excelsys S.A.公司的產(chǎn)品和解決方案架構(gòu)師,主要負(fù)責(zé)為當(dāng)?shù)氐拇罅靠蛻粼O(shè)計(jì)Web 2.0銀行解決方案。在整改大型銀行系統(tǒng)時(shí),他開始嘗試重構(gòu),并始終對(duì)重構(gòu)保持著濃厚的興趣。他因提倡在.NET平臺(tái)上運(yùn)用重構(gòu)而聲名遠(yuǎn)揚(yáng)。Arsenovski是Visual Studio Magazine、.NET Developers Journal和Visual Systems Journal的撰稿人,擁有Microsoft Certified Solution Developer(MCSD)證書,并被評(píng)為2005年的Microsoft MVP。

書籍目錄

第1章 重構(gòu)的全面介紹
1.1 重構(gòu)的快速瀏覽
1.1.1 重構(gòu)過(guò)程
1.1.2 軟件開發(fā)現(xiàn)狀概述
1.2 重構(gòu)過(guò)程的詳細(xì)介紹
1.2.1 代碼味道的使用
1.2.2 代碼轉(zhuǎn)換
1.2.3 使重構(gòu)的轉(zhuǎn)換自動(dòng)化
1.2.4 重構(gòu)的優(yōu)點(diǎn)
1.2.5 澄清一些常見的誤解
1.3 沒有孤軍奮戰(zhàn)的編程人員
1.4 c#和重構(gòu)
1.5 小結(jié)
第2章 重構(gòu)的初次體驗(yàn)
2.1 示例應(yīng)用程序:calories calculator
2.1.1 具有計(jì)算推薦每日卡路里量功能的calories calculator應(yīng)用程序
2.1.2 需求的增長(zhǎng):計(jì)算理想的體重
2.1.3 需求的增長(zhǎng):病人數(shù)據(jù)的持久化
2.2 重構(gòu)實(shí)戰(zhàn)
.2.2.1 將btncalculate_click方法分解
2.2.2 計(jì)算并顯示實(shí)際體重和理想體重之間差距的片段
2.2.3 按性別計(jì)算卡路里和理想的體重
2.2.4 經(jīng)過(guò)方法提取之后的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 持久化功能的實(shí)現(xiàn)
2.3.1 保存數(shù)據(jù)
2.3.2 實(shí)現(xiàn)顯示病人歷史信息的功能
2.4 calories calculator的重構(gòu)版本
2.5 小結(jié)
第3章 組建重構(gòu)工具箱
3.1 使用自動(dòng)化的重構(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 單元測(cè)試的基本要素:測(cè)試用具
3.2.1 單元測(cè)試架構(gòu)出現(xiàn)的原因
3.2.2 nunit的初體驗(yàn)
3.2.3 nunit的安裝
3.2.4 使用示例
3.2.5 實(shí)現(xiàn)第一個(gè)測(cè)試
3.2.6 測(cè)試驅(qū)動(dòng)的方法
3.2.7 可考慮的其他測(cè)試工具
3.3 關(guān)于版本控制的一些問(wèn)題
3.3.1 作為備份系統(tǒng)的版本控制
3.3.2 版本控制和并發(fā)
3.4 小結(jié)
第4章 應(yīng)用程序的原型:rent-a-wheels
4.1 會(huì)見客戶
4.1.1 會(huì)見經(jīng)理
4.1.2 會(huì)見前臺(tái)接待員
4.1.3 會(huì)見停車場(chǎng)服務(wù)員
4.1.4 會(huì)見維護(hù)人員
4.2 實(shí)施rent-a-wheels項(xiàng)目中最初的步驟
4.2.1 參與者和用例
4.2.2 汽車的狀態(tài)
4.2.3 應(yīng)用程序主窗口的第一次草圖
4.2.4 rent-a-wheels開發(fā)團(tuán)隊(duì)的會(huì)議
4.3 讓原型運(yùn)轉(zhuǎn)
4.3.1 檢查數(shù)據(jù)庫(kù)模型
4.3.2 檢查c#代碼
4.4 快速的編程方法
4.4.1 數(shù)據(jù)庫(kù)驅(qū)動(dòng)的設(shè)計(jì)
4.4.2 基于gui的應(yīng)用程序
4.4.3 事件驅(qū)動(dòng)的編程
4.4.4 快速應(yīng)用程序開發(fā)
4.4.5 將復(fù)制/粘貼作為代碼重用的機(jī)制
4.4.6 通過(guò)重構(gòu)過(guò)程從原型到最后交付
4.5 小結(jié)
第5章 基本的代碼清理
5.1 消除無(wú)用代碼
5.1.1 無(wú)用代碼的類型
5.1.2 無(wú)用代碼常見的來(lái)源
5.2 降低過(guò)度暴露的元素的作用域和訪問(wèn)級(jí)別
5.2.1 作用域和訪問(wèn)級(jí)別
5.2.2 過(guò)度暴露常見的來(lái)源
5.2.3 處理過(guò)度暴露的問(wèn)題
5.3 使用顯式導(dǎo)入
5.4 刪除未使用的程序集引用
5.5 rent-a-wheels應(yīng)用程序中的基本清理工作
5.6 小結(jié)
第6章 從問(wèn)題域到代碼:消除差距
6.1 理解問(wèn)題域
6.1.1 第1步:收集信息
6.1.2 第2步:就詞匯表達(dá)成一致意見
6.1.3 第3步:描述交互作用
6.1.4 第4步:建立原型
6.2 命名的指導(dǎo)原則
6.2.1 大寫風(fēng)格
6.2.2 簡(jiǎn)單的命名指導(dǎo)原則
6.2.3 良好的溝通:選擇恰當(dāng)?shù)膯卧~
6.2.4 "重命名"重構(gòu)
6.2.5 visual studio中的"重命名"重構(gòu)
6.3 已發(fā)布接口和公有接口
6.3.1 自包含的應(yīng)用程序與可重用的模塊
6.3.2 修改已發(fā)布接口
6.4 rent-a-wheels應(yīng)用程序中的"重命名"和"安全重命名"重構(gòu)
6.5 小結(jié)
第7章 對(duì)重復(fù)代碼進(jìn)行方法提取
7.1 封裝代碼和隱藏細(xì)節(jié)
7.2 分解方法
7.2.1 周長(zhǎng)計(jì)算--長(zhǎng)方法的一個(gè)示例
7.2.2 提取周長(zhǎng)計(jì)算的代碼
7.2.3 提取計(jì)算半徑的代碼
7.2.4 提取"等待用戶關(guān)閉"代碼
7.2.5 提取讀取坐標(biāo)的代碼
7.2.6 visual studio中的extract method重構(gòu)
7.3 方法內(nèi)聯(lián)化
7.4 重復(fù)代碼的味道
7.4.1 重復(fù)代碼的來(lái)源
7.4.2 復(fù)制/粘貼式編程
7.4.3 幻數(shù)
7.5 rent-a-wheels應(yīng)用程序中的"提取方法"和"用常量取代幻數(shù)"重構(gòu)
7.6 小結(jié)
第8章 方法合并與方法提取的技術(shù)
8.1 臨時(shí)變量的處理
8.1.1 "將聲明靠近引用處"重構(gòu)
8.1.2 "將初始化移至聲明處"重構(gòu)
8.1.3 "拆分臨時(shí)變量"重構(gòu)
8.1.4 "臨時(shí)變量?jī)?nèi)聯(lián)化"重構(gòu)
8.1.5 "用查詢?nèi)〈R時(shí)變量"重構(gòu)
8.1.6 引入解釋性的臨時(shí)變量
8.2 處理長(zhǎng)條件和嵌套條件
8.3 方法重組與rent-a-wheels
8.3.1 刪除rent-a-wheels中的重復(fù)代碼
8.3.2 rent-a-wheels中的"幻數(shù)"、"注釋"以及"事件處理盲目性"味道
8.4 小結(jié)
第9章 發(fā)現(xiàn)對(duì)象
9.1 面向?qū)ο缶幊痰暮?jiǎn)單回顧
9.1.1 oop中的對(duì)象
9.1.2 封裝與對(duì)象
9.1.3 visual studio中的"封裝字段"重構(gòu)
9.1.4 對(duì)象狀態(tài)的保持
9.1.5 類
9.1.6 對(duì)象標(biāo)識(shí)
9.1.7 作為基本構(gòu)建塊的對(duì)象
9.1.8 根對(duì)象
9.1.9 對(duì)象的生存期和垃圾回收
9.2 類的設(shè)計(jì)
9.2.1 使用分析產(chǎn)物
9.2.2 類是名詞,操作是動(dòng)詞
9.2.3 類、責(zé)任和協(xié)作者
9.2.4 在頭腦風(fēng)暴會(huì)議中運(yùn)用卡片
9.2.5 實(shí)體和關(guān)系
9.3 發(fā)現(xiàn)隱藏的類
9.3.1 處理數(shù)據(jù)庫(kù)驅(qū)動(dòng)的設(shè)計(jì)
9.3.2 從過(guò)程式設(shè)計(jì)到面向?qū)ο笤O(shè)計(jì)的轉(zhuǎn)移
9.3.3 領(lǐng)域?qū)?、表示層和持久化層的分離
9.3.4 發(fā)現(xiàn)對(duì)象與rent-a-wheels應(yīng)用程序
9.4 小結(jié)
第10章 面向?qū)ο蟮母呒?jí)概念和相關(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應(yīng)用程序中的繼承和泛型
10.4.1 提取超類
10.4.2 運(yùn)用泛型
10.4.3 提取dataobjectsprovider類
10.5 小結(jié)
第11章 大規(guī)模的代碼組織
11.1 命名空間
11.1.1 命名指導(dǎo)原則與命名空間的組織
11.1.2 嵌套的命名空間
11.1.3 修改默認(rèn)命名空間的名稱
11.1.4 使用using指令
11.2 程序集
11.2.1 二進(jìn)制重用
11.2.2 命名空間組織的指導(dǎo)原則
11.2.3 依賴性方面的考慮
11.3 c#項(xiàng)目文件的結(jié)構(gòu)組織
11.4 rent-a-wheels中命名空間的組織與windows窗體繼承
11.4.1 通過(guò)抽象窗體輔助類模式提取父管理窗體
11.4.2 命名空間和程序集的重組
11.5 小結(jié)
第12章 重構(gòu)為模式
12.1 什么是設(shè)計(jì)模式
12.1.1 設(shè)計(jì)模式的定義
12.1.2 模式的分類
12.1.3 模式的元素
12.1.4 權(quán)衡設(shè)計(jì)模式的利弊
12.1.5 模式的使用
12.2 設(shè)計(jì)模式的示例:抽象工廠模式
12.2.1 抽象工廠模式的使用
12.2.2 解決方案
12.2.3 結(jié)果
12.3 依賴注入模式
12.3.1 使用依賴注入的問(wèn)題
12.3.2 解決方案
12.3.3 基于構(gòu)造函數(shù)的注入與基于屬性的注入
12.3.4 應(yīng)該注入什么服務(wù)實(shí)現(xiàn)
12.3.5 di模式的優(yōu)點(diǎn)
12.3.6 重構(gòu)成di
12.4 重構(gòu)成模式與rent-a-wheels應(yīng)用程序
12.4.1 消除重復(fù).net架構(gòu)功能的代碼
12.4.2 通過(guò)依賴注入向gui類中注入data類
12.4.3 crud持久化模式
12.5 小結(jié)
第13章 linq和c# 3.0的其他增強(qiáng)功能
13.1 局部變量的類型推斷
13.1.1 自動(dòng)實(shí)現(xiàn)的屬性
13.1.2 擴(kuò)展方法
13.1.3 對(duì)象、數(shù)組和集合的初始化器
13.1.4 通過(guò)linq查詢對(duì)象
13.1.5 舊示例換新顏
13.1.6 通過(guò)linq to sql進(jìn)行對(duì)象-關(guān)系映射
13.1.7 linq與rent-a-wheels應(yīng)用程序
13.2 小結(jié)
第14章 web技術(shù)簡(jiǎn)史與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的歷史及其遺留問(wèn)題
14.3 緊跟web
14.3.1 visual studio和xhtml
14.3.2 xml和編碼
14.3.3 visual studio中html的dtd驗(yàn)證
14.3.4 提供嚴(yán)格的xhtml
14.4 小結(jié)
第15章 asp.net應(yīng)用程序的重構(gòu)
15.1 html的重構(gòu)
15.1.1 格式完整的xhtml文檔
15.1.2 xhtml的有效性
15.1.3 用于升級(jí)遺留的、非遵從xhtml的標(biāo)記的工具支持
15.1.4 以優(yōu)美的格式打印html文檔
15.1.5 將結(jié)構(gòu)與表示分離
15.1.6 通過(guò)rest來(lái)使用http
15.2 asp.net代碼的重構(gòu)
15.2.1 asp.net代碼模型:?jiǎn)挝募痛a隱藏
15.2.2 母版頁(yè)面
15.2.3 web用戶控件與自定義的服務(wù)器控件
15.3 rent-a-wheels與asp.net重構(gòu)
15.4 小結(jié)
附錄a rent-a-wheels原型的內(nèi)部機(jī)理
附錄b refactor! for asp.net揭密

章節(jié)摘錄

版權(quán)頁(yè):插圖:

編輯推薦

《代碼重構(gòu)(C#&ASP.NET版)》由清華大學(xué)出版社出版。

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    代碼重構(gòu) PDF格式下載


用戶評(píng)論 (總計(jì)30條)

 
 

  •   先從最常見的開發(fā)方式入手,在代碼增加過(guò)程中暴露出問(wèn)題,并通過(guò)重構(gòu)使代碼清析,提高可讀性,維護(hù)性。在對(duì)比過(guò)程中學(xué)會(huì)重構(gòu)。編寫出高質(zhì)量的代碼。
  •   編程兩年多,代碼量也有幾十萬(wàn)行了,基本語(yǔ)法邏輯已爛熟于心,現(xiàn)在更多要做的是怎樣提高編碼效率,代碼重構(gòu)給我的幫助很多
  •   希望寫的簡(jiǎn)單點(diǎn)
  •   很好,非常好!提升的好書!
  •   這本書好,但翻譯不怎么樣。
  •   書剛到,看到里面的內(nèi)容很精彩,就立馬想到評(píng)價(jià)了,真心不錯(cuò)!
  •   可惜這個(gè)書皮上怎么劃了那么多道?看著不像新書,我一次買了4本不同的書,就這個(gè)看起來(lái)不像新的,不過(guò)里面沒撕沒缺,湊合吧,反正早晚要舊的
  •   成為了我每日必看的書,值得買來(lái)看看
  •   速度還行 就是書有些折痕
  •   正在看,覺得寫得還不錯(cuò)。
  •   這本書還不錯(cuò)的哦...
  •   還可以,正在閱讀中,還沒了解清楚
  •   還可以,一般般,有待細(xì)讀。
  •   打折的書都是很舊的,o(︶︿︶)o 唉
  •   書是新書,封皮怎么看著這么舊
  •   這本書不知道是不是翻譯的原因,簡(jiǎn)單的問(wèn)題講的云里霧里,重點(diǎn)不夠突出。對(duì)于簡(jiǎn)單的問(wèn)題沒有必要通過(guò)大篇幅的代碼說(shuō)明,重要的知識(shí)點(diǎn)卻缺乏詳盡的說(shuō)明實(shí)例。
  •   這邊書真的很**
  •   以一個(gè)簡(jiǎn)單的例子貫徹整本書,由淺入深,可操性強(qiáng)
  •   到手完全沒有新的感覺,這次感覺很失敗,,
  •   雖然先在還用不上,但是感覺寫的挺好的
  •   個(gè)人還是比較喜歡的,值得一看
  •   第一次拿到印刷錯(cuò)誤的,后來(lái)?yè)Q了,拿到之后初略的翻看一下,寫的還是不錯(cuò)的,印刷的字也很清晰。
  •   書質(zhì)量還不錯(cuò),發(fā)貨也很及時(shí);就是兩個(gè)包裹中的一個(gè)晚了點(diǎn)。
  •   這本書整天來(lái)說(shuō)還比較好
  •   還沒認(rèn)真看,看了目錄還行
  •   重構(gòu)方面經(jīng)典書籍
  •   針對(duì)編程方式講解程序效率
  •   代碼重構(gòu)
  •   經(jīng)典好書,好的代碼
  •   代碼重構(gòu)(C# & ASP.NET版)
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7