Working Effectively with Legacy Code : 管理、修改、重構遺留程式碼的藝術 (中文版)
MICHAEL C. FEATHERS 著 劉未鵬 譯
- 出版商: 博碩
- 出版日期: 2019-08-02
- 定價: $720
- 售價: 7.8 折 $562
- 語言: 繁體中文
- 頁數: 464
- ISBN: 9864344005
- ISBN-13: 9789864344000
-
相關分類:
Refactoring
- 此書翻譯自: Working Effectively with Legacy Code (Paperback) 銷售排行: 👍 2020 年度 繁體中文書 銷售排行 第 12 名
👍 2019 年度 繁體中文書 銷售排行 第 5 名
🥉 2019/8 繁體中文書 銷售排行 第 3 名
🥇 2019/7 繁體中文書 銷售排行 第 1 名
立即出貨 (庫存 > 10)
買這商品的人也買了...
-
人月神話:軟體專案管理之道 (20 週年紀念版)(The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2/e)$480$379 -
大話設計模式$620$490 -
無瑕的程式碼-敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)$580$452 -
無瑕的程式碼 番外篇-專業程式設計師的生存之道 (The Clean Coder: A Code of Conduct for Professional Programmers)
$360$281 -
無瑕的程式碼-敏捷軟體開發技巧守則 + 番外篇-專業程式設計師的生存之道 (雙書合購)$940$700 -
Kent Beck 的實作模式 (Implementation Patterns)$320$272 -
設計模式的解析與活用 (Design Patterns Explained: A New Perspective on Object-Oriented Design, 2/e)$480$374 -
Specification by Example 中文版:團隊如何交付正確的軟體 (Specification by Example: How Successful Teams Deliver the Right Software)$420$357 -
物件導向設計模式-可再利用物件導向軟體之要素 (精裝典藏版) (Design Patterns: Elements of Reusable Object-Oriented Software)$550$550 -
Continuous Delivery 中文版:利用自動化的建置、測試與部署完美創造出可信賴的軟體發佈 (Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation)$650$507 -
無瑕的程式碼-敏捷完整篇-物件導向原則、設計模式與 C# 實踐 (Agile principles, patterns, and practices in C#)$790$616 -
單元測試的藝術, 2/e (The Art of Unit Testing: with examples in C#, 2/e)$650$507 -
演算法圖鑑:26種演算法 + 7種資料結構,人工智慧、數據分析、邏輯思考的原理和應用 step by step 全圖解$450$356 -
為你自己學 Git$500$425 -
無瑕的程式碼-整潔的軟體設計與架構篇 (Clean Architecture: A Craftsman's Guide to Software Structure and Design)$580$452 -
CODE COMPLETE:軟體開發實務指南, 2/e (中文版) (Code Complete: A Practical Handbook of Software Construction, 2/e)$1,280$998 -
領域驅動設計:軟體核心複雜度的解決方法 (Domain-Driven Design: Tackling Complexity in the Heart of Software)$680$530 -
重構|改善既有程式的設計, 2/e (繁中平裝版)(Refactoring: Improving The Design of Existing Code, 2/e)$800$632 -
建立演進式系統架構|支援常態性的變更 (Building Evolutionary Architectures: Support Constant Change)$480$379 -
持續交付 2.0:實務導向的 DevOps$680$530 -
The Pragmatic Programmer 20週年紀念版 (The Pragmatic Programmer, 20th Anniversary Edition)$680$537 -
依賴注入:原理、實作與設計模式 (Dependency Injection: Principles, Practices, Patterns, 2/e)$1,000$780 -
Kent Beck 的測試驅動開發:案例導向的逐步解決之道 (Test-Driven Development: By Example)(TDD)$560$437 -
設計重構:25個管理技術債的技巧消除軟體設計臭味 (Refactoring for Software Design Smells: Managing Technical Debt)$520$406 -
Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture)$800$624
商品描述
【名家名著】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 重構
方法提取
術語表


















