幫助中心 | 我的帳號 | 關於我們

代碼重構(C# & ASP.NET版)

  • 作者:(美)阿瑟諾維斯基|譯者:潘立福//權樂
  • 出版社:清華大學
  • ISBN:9787302255550
  • 出版日期:2011/06/01
  • 裝幀:平裝
  • 頁數:498
人民幣:RMB 68 元      售價:
放入購物車
加入收藏夾

內容大鋼
    重構是迅速發現並修復有問題的代碼的一種高效的方式。在阿瑟諾維斯基的《代碼重構(C#&ASP.NET版)》中首次提供了在C#和ASP.NET中進行重構的專業方法,您將學習如何運用重構技術管理和修改代碼。此外,還將學習如何從頭開始構建原型應用程序,然後利用重構技術將原型轉換為正確設計的、企業級的應用程序。
    通過一步一步的指導,您將更好地理解不同的代碼問題以及重構的轉換。很多這些轉換都是從現實世界的情形中開發出來的,這些都是關鍵的業務決策的結果。此外,本書還將介紹重構技術的標準定義,這樣您就可以在工作中引用到它。本書涵蓋的重構技術將讓您變得效率更高。您將能使用這些信息對修改做出反應並改進既有代碼的設計。
    主要內容:組裝重構工具箱的步驟、完成單元測試的技術、重構為模式的技巧、如何使用重構升級既有的C#和ASP.NET代碼、利用方法提取消除重複代碼的方式、如何讓代碼變得更簡單、更易於修改以及更容易理解、所有關於面向對象的理論和設計模式、利用LINQ和其他C#3.0增強功能的技巧。
    《代碼重構(C#&ASP.NET版)》適用於那些想要學習通過重構工具和功能來高效地管理和修改代碼的C#和ASP.NET開發人員。

作者介紹
(美)阿瑟諾維斯基|譯者:潘立福//權樂
    阿瑟諾維斯基(Danijel Arsenovski),是一位作家、軟體架構師,也是一位敏捷指導員。他目前擔任Excelsys S.A.公司的產品和解決方案架構師,主要負責為當地的大量客戶設計Web 2.0銀行解決方案。在整改大型銀行系統時,他開始嘗試重構,並始終對重構保持著濃厚的興趣。他因提倡在.NET平台上運用重構而聲名遠揚。Arsenovski是Visual Studio Magazine、.NET Developers Journal和Visual Systems Journal的撰稿人,擁有Microsoft Certified Solution Developer(MCSD)證書,並被評為2005年的Microsoft MVP。

目錄
第1章 重構的全面介紹
  1.1 重構的快速瀏覽
    1.1.1 重構過程
    1.1.2 軟體開發現狀概述
  1.2 重構過程的詳細介紹
    1.2.1 代碼味道的使用
    1.2.2 代碼轉換
    1.2.3 使重構的轉換自動化
    1.2.4 重構的優點
    1.2.5 澄清一些常見的誤解
  1.3 沒有孤軍奮戰的編程人員
  1.4 C#和重構
  1.5 小結
第2章 重構的初次體驗
  2.1 示例應用程序:Calories Calculator
    2.1.1 具有計算推薦每日卡路里量功能的Calories Calculator應用程序
    2.1.2 需求的增長:計算理想的體重
    2.1.3 需求的增長:病人數據的持久化
  2.2 重構實戰
    2.2.1 將btnCalculate_Click方法分解
    2.2.2 計算並顯示實際體重和理想體重之間差距的片段
    2.2.3 按性別計算卡路里和理想的體重
    2.2.4 經過方法提取之後的btnCalculate_Click方法
    2.2.5 發現新的類
    2.2.6 縮小Patient類的介面
    2.2.7 重新構建DistanceFromidealWeight方法
    2.2.8 創建Patient類的層次結構
  2.3 持久化功能的實現
    2.3.1 保存數據
    2.3.2 實現顯示病人歷史信息的功能
  2.4 Calories Calculator的重構版本
  2.5 小結
第3章 組建重構工具箱
  3.1 使用自動化的重構工具
    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的重構功能
  3.2 單元測試的基本要素:測試用具
    3.2.1 單元測試架構出現的原因
    3.2.2 NUnit的初體驗
    3.2.3 NUnit的安裝
    3.2.4 使用示例
    3.2.5 實現第一個測試
    3.2.6 測試驅動的方法
    3.2.7 可考慮的其他測試工具
  3.3 關於版本控制的一些問題
    3.3.1 作為備份系統的版本控制
    3.3.2 版本控制和併發
  3.4 小結

第4章 應用程序的原型:Rent-a-Wheels
  4.1 會見客戶
    4.1.1 會見經理
    4.1.2 會見前台接待員
    4.1.3 會見停車場服務員
    4.1.4 會見維護人員
  4.2 實施Rent-a-Wheels項目中最初的步驟
    4.2.1 參與者和用例
    4.2.2 汽車的狀態
    4.2.3 應用程序主窗口的第一次草圖
    4.2.4 Rent-a-Wheels開發團隊的會議
  4.3 讓原型運轉
    4.3.1 檢查資料庫模型
    4.3.2 檢查C#代碼
  4.4 快速的編程方法
    4.4.1 資料庫驅動的設計
    4.4.2 基於GUI的應用程序
    4.4.3 事件驅動的編程
    4.4.4 快速應用程序開發
    4.4.5 將複製/粘貼作為代碼重用的機制
    4.4.6 通過重構過程從原型到最後交付
  4.5 小結
第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 小結
第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 良好的溝通:選擇恰當的單詞
    6.2.4 「重命名」重構
    6.2.5 Visual Studio中的「重命名」重構
  6.3 已發布介面和公有介面
    6.3.1 自包含的應用程序與可重用的模塊
    6.3.2 修改已發布介面
  6.4 Rent-a-Wheels應用程序中的「重命名」和「安全重命名」重構

  6.5 小結
第7章 對重複代碼進行方法提取
  7.1 封裝代碼和隱藏細節
  7.2 分解方法
    7.2.1 周長計算——長方法的一個示例
    7.2.2 提取周長計算的代碼
    7.2.3 提取計算半徑的代碼
    7.2.4 提取「等待用戶關閉」代碼
    7.2.5 提取讀取坐標的代碼
    7.2.6 Visual Studio中的extract method重構
  7.3 方法內聯化
  7.4 重複代碼的味道
    7.4.1 重複代碼的來源
    7.4.2 複製/粘貼式編程
    7.4.3 幻數
  7.5 Rent-a-Wheels應用程序中的「提取方法」和「用常量取代幻數」重構
  7.6 小結
第8章 方法合併與方法提取的技術
  8.1 臨時變數的處理
    8.1.1 「將聲明靠近引用處」重構
    8.1.2 「將初始化移至聲明處」重構
    8.1.3 「拆分臨時變數」重構
    8.1.4 「臨時變數內聯化」重構
    8.1.5 「用查詢取代臨時變數」重構
    8.1.6 引入解釋性的臨時變數
  8.2 處理長條件和嵌套條件
  8.3 方法重組與Rent-a-Wheels
    8.3.1 刪除Rent-a-Wheels中的重複代碼
    8.3.2 Rent-a-Wheels中的「幻數」、「註釋」以及「事件處理盲目性」味道
  8.4 小結
第9章 發現對象
  9.1 面向對象編程的簡單回顧
    9.1.1 oop中的對象
    9.1.2 封裝與對象
    9.1.3 Visual Studio中的「封裝欄位」重構
    9.1.4 對象狀態的保持
    9.1.5 類
    9.1.6 對象標識
    9.1.7 作為基本構建塊的對象
    9.1.8 根對象
    9.1.9 對象的生存期和垃圾回收
  9.2 類的設計
    9.2.1 使用分析產物
    9.2.2 類是名詞,操作是動詞
    9.2.3 類、責任和協作者
    9.2.4 在頭腦風暴會議中運用卡片
    9.2.5 實體和關係
  9.3 發現隱藏的類
    9.3.1 處理資料庫驅動的設計
    9.3.2 從過程式設計到面向對象設計的轉移

    9.3.3 領域層、表示層和持久化層的分離
    9.3.4 發現對象與Rent-a-Wheels應用程序
  9.4 小結
第10章 面向對象的高級概念和相關的重構
  10.1 繼承、多態性和泛型
    10.1.1 繼承
    10.1.2 類繼承與介面繼承
    10.1.3 多態性
    10.1.4 泛型
  10.2 繼承的濫用和重構解決方案
    10.2.1 誤用為繼承的組合和其他誤用情形
    10.2.2 繼承的重構——列印系統的示例
    10.2.3 用委託替代列印系統中的繼承
  10.3 泛型的使用
  10.4 Rent-a-Wheels應用程序中的繼承和泛型
    10.4.1 提取超類
    10.4.2 運用泛型
    10.4.3 提取DataObjectsProvider類
  10.5 小結
第11章 大規模的代碼組織
  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#項目文件的結構組織
  11.4 Rent-a-Wheels中命名空間的組織與Windows窗體繼承
    11.4.1 通過抽象窗體輔助類模式提取父管理窗體
    11.4.2 命名空間和程序集的重組
  11.5 小結
第12章 重構為模式
  12.1 什麼是設計模式
    12.1.1 設計模式的定義
    12.1.2 模式的分類
    12.1.3 模式的元素
    12.1.4 權衡設計模式的利弊
    12.1.5 模式的使用
  12.2 設計模式的示例:抽象工廠模式
    12.2.1 抽象工廠模式的使用
    12.2.2 解決方案
    12.2.3 結果
  12.3 依賴注入模式
    12.3.1 使用依賴注入的問題
    12.3.2 解決方案
    12.3.3 基於構造函數的注入與基於屬性的注入
    12.3.4 應該注入什麼服務實現

    12.3.5 DI模式的優點
    12.3.6 重構成DI
  12.4 重構成模式與Rent-a-Wheels應用程序
    12.4.1 消除重複.NET架構功能的代碼
    12.4.2 通過依賴注入向GUI類中注入Data類
    12.4.3 CRUD持久化模式
  12.5 小結
第13章 LINQ和C# 3.0的其他增強功能
  13.1 局部變數的類型推斷
    13.1.1 自動實現的屬性
    13.1.2 擴展方法
    13.1.3 對象、數組和集合的初始化器
    13.1.4 通過LINQ查詢對象
    13.1.5 舊示例換新顏
    13.1.6 通過LINQ to SQL進行對象-關係映射
    13.1.7 LINQ與Rent-a-Wheels應用程序
  13.2 小結
第14章 Web技術簡史與ASP.NET重構工具
  14.1 Refactor! for ASP.NET
    14.1.1 調用Refactor! for ASP.NET
    14.1.2 Refactor! for ASP.NET的用戶界面
  14.2 HEML的歷史及其遺留問題
  14.3 緊跟Web
    14.3.1 Visual Studio和XHEML
    14.3.2 XML和編碼
    14.3.3 Visual Studio中HEML的DTD驗證
    14.3.4 提供嚴格的XHEML
  14.4 小結
第15章 ASP.NET應用程序的重構
  15.1 HEML的重構
    15.1.1 格式完整的XHEML文檔
    15.1.2 XHEML的有效性
    15.1.3 用於升級遺留的、非遵從XHEML的標記的工具支持
    15.1.4 以優美的格式列印HEML文檔
    15.1.5 將結構與表示分離
    15.1.6 通過REST來使用HTT
  15.2 ASP.NET代碼的重構
    15.2.1 ASP.NET代碼模型:單文件和代碼隱藏
    15.2.2 母版頁面
    15.2.3 Web用戶控制項與自定義的伺服器控制項
  15.3 Rent-a-Wheels與ASP.NET重構
  15.4 小結
附錄A Rent-a-Wheels原型的內部機理
附錄B Refactor! for ASP.NET揭密

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032