Working Effectively with Legacy Code中文版:管理、修改、重構遺留程式碼的藝術

  • 館長推薦
? 快來將您對閱讀的熱情和對書籍的想法分享給所有讀友,每完成一篇讀者書評並審核通過者,即可獲得讀者書評點數,點數還可換電子禮券唷!
分享:

商品訊息

  • 追蹤分類 ? 追蹤分類後,您會在第一時間收到分類新品通知。
  • 作者: MICHAEL C 追蹤作者 ? 追蹤作者後,您會在第一時間收到作者新書通知。
  • 出版社: 博碩文化 追蹤出版社 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
  • 出版日:2019/8/8
  • ISBN:9789864344000
  • 適讀年齡:
  • 定價: 720
  • 特價: 79 569
  • 紅利可抵: 17 ? 除單一商品售價低於50元或特價折扣低於3折(含)以下者,其餘商品均可使用紅利點數。
  • 到店取貨: ? 『金石堂』門市取貨免運費。
    『全家、OK、萊爾富、掌櫃』滿350元,免運費;350元以下,運費20元。
    宅配: ? 滿1,000元,免運費
    490元-999元,運費50元
    490元以下,運費65元
  • 配送地區: 全球、 香港OK、 台澎金馬
  • 付款方式: ATM、 信用卡、 LINE Pay、 街口帳戶支付、 貨到付款、 PayPal、 FamiPort、 取貨付款
  • 預計 2019/10/24 出貨 參考庫存量:2 查詢門市庫存 ? 若您欲在金石堂門市購買商品,請選擇欲查看庫存之門市。網頁之「庫存狀態」僅供參考,實際貨況以門市為準。

強力推薦

內容簡介

【名家名著】19
Robert C. Martin Series

軟體工程師必讀的十大好書之一
《無瑕的程式碼》作者Bob大叔親自撰文推薦!

遺留程式碼是每個coder在職場上幾乎都會遇到的難題,
且讓本書幫助您披荊嶄棘,殺出一條軟體變更的康莊大道!

讓你更能妥善處理你的遺留程式碼:使它有更多表現、更多功能、更具可依賴性以及更易於管理

你的程式碼容易修改嗎?當你修改它的時候,可以即時得到回饋嗎?你了解它的運作嗎?如果有任何一個答案為否定,那麼你面對的就是遺留程式碼,而且它會拖垮你的開發成效,使你浪費更多寶貴的時間與金錢。

在本書中,MICHAEL C. FEATHERS提供了許多整套的策略,使讀者能夠更有效率地使用遺留程式碼,以及未經測試的遺留code base。這本書取材於作者為他知名的Object Mentor研討會所撰寫的內容。作者在指導時所提到的技巧,已經幫助數以百計的開發者、技術管理者以及測試人員,使他們的遺留系統維持在掌控之中。

本書內容包括:
☛了解軟體修改的機制:增加特性、修正bug、改善設計、調整性能。
☛使遺留程式碼進入測試控制工具(test harness)。
☛編寫測試來保護你免於引入新的問題。
☛可用於任何語言或平台的技術──以Java、C++、C與C#為範例。
☛正確分辨程式碼應該修改的地方。
☛處理非物件導向的遺留系統。
☛處理看來似乎沒有任何結構的應用程式。

這本書也包含24個解依賴技術的目錄,可協助你讓程式的要素獨立,並且使變動更加安全。

作者

MICHAEL C. FEATHERS

任職於Object Mentor,是一家提供軟體開發的相關服務且在這方面達世界頂尖的公司。服務項目諸如技術指導、技術開發、知識轉移,以及領導技巧等等。他目前在全球的測試驅動開發(TDD)、重構、物件導向設計、Java、C#、C++及極限程式設計(XP)的領域中,提供專業訓練及技術指導的服務。他還是CppUnit(C++的JUnit測試框架)及FitCpp(C++的FIT整合測試框架)的原創作者。他是ACM及IEEE的會員,也曾在三次OOPSLA會議中主持過CodeFest活動。

目錄

Part I 修改機制
Chapter 1 修改軟體
1.1 修改軟體的四個起因
1.2 危險的修改

Chapter 2 帶著回饋工作
2.1 什麼是單元測試
2.2 高層測試
2.3 測試覆蓋
2.4 遺留程式碼修改演算法

Chapter 3 感測和分離
3.1 偽裝成合作者

Chapter 4 接縫模型
4.1 一大段文字
4.2 接縫
4.3 接縫類型

Chapter 5 工具
5.1 自動化重構工具
5.2 仿物件
5.3 單元測試控制工具
5.4 一般測試控制工具

Part II 修改程式碼的技術
Chapter 6 時間緊迫,但必須修改
6.1 新生方法
6.2 新生類別
6.3 外覆方法
6.4 外覆類別
6.5 小結

Chapter 7 漫長的修改
7.1 理解程式碼
7.2 時滯
7.3 解依賴
7.4 小結

Chapter 8 添加特性
8.1 測試驅動開發
8.2 差異式程式設計
8.3 小結

Chapter 9 無法將類別放入測試控制工具之中
9.1 令人惱火的參數
9.2 隱藏依賴
9.3 構造塊
9.4 惱人的全域依賴
9.5 可怕的包含依賴
9.6 「洋蔥」參數
9.7 化名參數

Chapter 10 無法在測試控制工具中執行方法
10.1 隱藏的方法
10.2 「有益的」語言特性
10.3 無法探知的副作用

Chapter 11 修改時應當測試哪些方法
11.1 推測程式碼修改所產生的影響
11.2 前向推測
11.3 影響的傳播
11.4 進行影響推測的工具
11.5 從影響分析當中學習
11.6 簡化影響結構示意圖

Chapter 12 在同一個地方進行多處修改,是否應該將所有相關的類別都解依賴
12.1 攔截點
12.2 透過匯點來判斷設計的好壞
12.3 匯點的陷阱

Chapter 13 修改時應該怎樣寫測試
13.1 特徵測試
13.2 刻畫類別
13.3 目標測試
13.4 編寫特徵測試的啟發式方法

Chapter 14 棘手的函式庫依賴問題

Chapter 15 到處都是API 呼叫

Chapter 16 對程式碼的理解不足
16.1 註記/草圖
16.2 清單標註
16.3 草稿式重構
16.4 刪除不用的程式碼

Chapter 17 程式毫無結構可言
17.1 講解系統的故事
17.2 Naked CRC
17.3 反省你們的交流或討論

Chapter 18 測試程式碼礙手礙腳
18.1 類別命名約定
18.2 測試程式碼放在哪裡

Chapter 19 對非物件導向的專案,如何安全地對它進行修改
19.1 一個簡單的案例
19.2 一個棘手的案例
19.3 添加新行為
19.4 利用物件導向的優勢
19.5 一切都是物件導向

Chapter 20 處理大類別
20.1 職責識別
20.2 其他技術
20.3 繼續前進
20.4 類別提取之後

Chapter 21 需要修改大量相同的程式碼
21.1 開始步驟

Chapter 22 要修改一個巨型方法,卻沒辦法為它編寫測試
22.1 巨型方法的種類
22.2 利用自動重構支援來對付巨型方法
22.3 手動重構的挑戰
22.4 策略

Chapter 23 降低修改的風險
23.1 超感編輯(Hyperaware Editing)
23.2 單一目標的編輯
23.3 簽章保持
23.4 依靠編譯器

Chapter 24 當你感到絕望時

Part III 解依賴技術
Chapter 25 解依賴技術
25.1 參數適配
25.2 分解出方法物件
25.3 定義補全
25.4 封裝全域參照
25.5 暴露靜態方法
25.6 提取並覆寫呼叫
25.7 提取並覆寫工廠方法
25.8 提取並覆寫獲取方法
25.9 實作提取
25.10 介面提取
25.11 引入實例委託
25.12 引入靜態設置方法
25.13 連接替換
25.14 參數化建構子
25.15 參數化方法
25.16 樸素化參數
25.17 特性提升
25.18 依賴下推
25.19 換函數為函數指標
25.20 以獲取方法替換全域參照
25.21 子類別化並覆寫方法
25.22 替換實例變數
25.23 模板重定義
25.24 文字重定義

Appendix 重構
方法提取

術語表

詳細資料

詳細資料

    • 編/譯者
    • 劉未鵬
    • 語言
    • 中文繁體
    • 規格
    • 平裝
    • ISBN
    • 9789864344000
    • 分級
    • 普通級
    • 開數
    • 頁數
    • 464
    • 出版地
    • 台灣
    • 適讀年齡

訂購須知

下載『金石堂APP』並開啟推播設定,隨時掌握出貨動態:

Google play
App Store

    商品運送說明:

  • 本公司所提供的產品配送區域範圍目前僅限台灣本島。注意!收件地址請勿為郵政信箱。
  • 商品將由廠商透過貨運或是郵局寄送。消費者訂購之商品若無法送達,經電話或 E-mail無法聯繫逾三天者,本公司將取消該筆訂單,並且全額退款。
  • 當廠商出貨後,您會收到E-mail及APP出貨通知,您也可透過【訂單查詢】確認出貨情況。
  • 建議您可下載『金石堂APP』並開啟推播設定,即可收到出貨通知。
  • 產品顏色可能會因網頁呈現與拍攝關係產生色差,圖片僅供參考,商品依實際供貨樣式為準。
  • 如果是大型商品(如:傢俱、床墊、家電、運動器材等)及需安裝商品,請依商品頁面說明為主。訂單完成收款確認後,出貨廠商將會和您聯繫確認相關配送等細節。
  • 偏遠地區、樓層費及其它加價費用,皆由廠商於約定配送時一併告知,廠商將保留出貨與否的權利。

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

預計 2019/10/24 出貨 參考庫存量:2 查詢門市庫存?

26