Working Effectively with Legacy Code (Paperback)

Michael Feathers

買這商品的人也買了...

商品描述

Table of Contents:

Preface.

Introduction.

I. THE MECHANICS OF CHANGE.

  1. Changing Software.

  2. Working with Feedback.

  3. Sensing and Separation.

  4. The Seam Model.

  5. Tools.

II. CHANGING SOFTWARE.

  6. I Don’t Have Much Time and I Have To Change It.

  7. It Takes Forever To Make a Change.

  8. How Do I Add a Feature?

  9. I Can’t Get This Class into a Test Harness.

10. I Can’t Run This Method into a Test Harness.

11. I Need to Make a Change.   What Methods Should I Test?

12. I Need to Make Many Changes In One Area Do I Have To Break.

13. I Need To Make a Change but I Don’t Know What Tests To Write.

14. Dependencies on Libraries Are Killing Me.

15. My Application Is All API Calls.

16. I Don’t Understand the Code Well Enough To Change It.

17. My Application Has No Structure.

18. My Test Code Is in the Way.

19. My Project Is Not Object-Oriented.   How Do I Make Safe Changes?

20. This Class Is Too Big and I Don’t Want It to Get Any Bigger.

21. I’m Changing The Same Code All Over the Place.

22. I Need To Change a Monster Method and I Can’t Write Tests for It.

23. How Do I Know That I’m Not Breaking Anything?

24. We Feel Overwhelmed. It Isn’t Going To Get Any Better.

III. DEPENDENCY BREAKING TECHNIQUES.

25. Dependency Breaking Techniques.

Appendix: Refactoring.

Glossary.

商品描述(中文翻譯)

目錄:

前言。
導論。
I. 變革的機制。
1. 軟體變革。
2. 與反饋合作。
3. 感知和分離。
4. 縫合模型。
5. 工具。
II. 軟體變革。
6. 我沒有太多時間,但我必須改變它。
7. 花費太長時間進行變更。
8. 如何添加功能?
9. 我無法將這個類別放入測試框架中。
10. 我無法將這個方法放入測試框架中。
11. 我需要進行變更,應該測試哪些方法?
12. 我需要在一個區域進行多次變更,我必須打破它嗎?
13. 我需要進行變更,但我不知道應該寫哪些測試。
14. 對庫的依賴正在困擾我。
15. 我的應用程序全部是 API 調用。
16. 我不太了解程式碼,無法進行變更。
17. 我的應用程序沒有結構。
18. 我的測試代碼妨礙了變更。
19. 我的項目不是面向對象的,如何進行安全變更?
20. 這個類別太大了,我不想讓它變得更大。
21. 我一直在各處更改相同的程式碼。
22. 我需要更改一個龐大的方法,但無法為其編寫測試。
23. 我如何知道我沒有破壞任何東西?
24. 我們感到不知所措,情況不會變得更好。
III. 依賴關係破壞技術。
25. 依賴關係破壞技術。
附錄:重構。
詞彙表。