Jump to ratings and reviews

Robert C. Martin Series

Working Effectively with Legacy Code

Get more out of your legacy systems, more performance, functionality, reliability, and manageability.Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.

In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control.

The topics covered include:

Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance
Getting legacy code into a test harness
Writing tests that protect you against introducing new problems
Techniques that can be used with any language or platform, with examples in Java, C++, C, and C#
Accurately identifying where code changes need to be made
Coping with legacy systems that aren't object-oriented
Handling applications that don't seem to have any structure

This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

464 pages, Paperback

First published September 1, 2004

Loading...
Loading...

About the author

Michael C. Feathers

6 books281 followers

Ratings & Reviews

What do you think?

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
1,918 (40%)
4 stars
1,788 (38%)
3 stars
748 (15%)
2 stars
187 (3%)
1 star
53 (1%)
Displaying 1 - 3 of 3 reviews
Profile Image for kurp.
495 reviews23 followers
June 24, 2022
Może po prostu czegoś innego oczekiwałem. To – wbrew złudzeniom tworzonym przez tytuł i spis treści – nie jest zestaw wysokopoziomowych technik, które pozwolą Ci opracować właściwe podejście jak rozsupłać spaghetti code, który dostałeś w zarządzanie, tylko raczej niskopoziomowy poradnik konkretnych metod, c- i java-centryczne przykłady, ogromny nacisk na TDD i apologia testów jednostkowych bez jednak satysfakcjonującego (jak dla mnie) wyjaśnienia zastosowania tego podejścia.
145 reviews2 followers
Read
November 5, 2016
//polish
Zgodnie z tytułem książka opisuję pracę z kodem napisanym przez innych programistów, z naciskiem na pracę z źle napisanym kodem. Książka głównie odnosi się do testowania kodu w którym wprowadzane są zmiany. Przykłady kodu są napisane w C++, C# i Java.

Szczerze uważam, że ta książka(przynajmniej dla przykładów z Java) jest zbyt przestarzała. Wiele opisanych przez autora problemów i rozwiązań można rozwiązać w bardziej przyjemny sposób, choćby za pomocą mockowania zależności. Ale takie techniki nie są tutaj opisane, ponieważ w czasach pisania tej książki jeszcze nie istniały. Przyznaję że przeczytałem tylko pierwszą połowę książki, więc nie znam zawartości z drugiej połowy. Dlatego też nie wystawiłem oceny. Być może programiści C++ lub C# znajdą w niej ciekawe rozwiązania, ale dla mnie to wszystko jest zbyt przestarzałe(kilkanaście lat w informatyce to cała epoka).
Displaying 1 - 3 of 3 reviews