{"id":197,"date":"2013-12-17T18:41:54","date_gmt":"2013-12-17T18:41:54","guid":{"rendered":"http:\/\/lippaudio.org\/BookReviews\/?p=197"},"modified":"2013-12-17T18:50:14","modified_gmt":"2013-12-17T18:50:14","slug":"working-effectively-with-legacy-code","status":"publish","type":"post","link":"https:\/\/lippaudio.org\/BookReviews\/2013\/12\/17\/working-effectively-with-legacy-code\/","title":{"rendered":"Working Effectively with Legacy Code"},"content":{"rendered":"<div>\n<p><span style=\"font-family: 'Source Sans Pro', Helvetica, sans-serif; font-size: medium;\">The title of this book is actually deceptive. \u00a0The book is really about adding unit tests to a legacy code base! \u00a0It is a very technical book with lots of examples used by the author to illustrate various design patterns. \u00a0These design patterns each have an application in understanding a legacy code base and encoding this learning into unit tests. \u00a0<\/span><\/p>\n<p><span style=\"font-family: 'Source Sans Pro', Helvetica, sans-serif; font-size: medium;\">There is also something else that becomes clear after the book gets to the more challenging problems encountered in adding unit tests. \u00a0These chapters are some version of &#8220;I can&#8217;t get this code under test.&#8221; \u00a0You see very quickly that writing unit tests teaches you to write better quality software, more maintainable software, and more modifiable software. \u00a0Moreover, you soon see why Michael recommends writing tests first. \u00a0This is the first\u00a0source I have encountered that does a good job of teaching test driven development (TDD).<br \/>\n<\/span><\/p>\n<\/div>\n<div><a href=\"http:\/\/www.amazon.com\/Working-Effectively-Legacy-Michael-Feathers\/product-reviews\/0131177052\/ref=dp_top_cm_cr_acr_img?ie=UTF8&amp;showViewpoints=1\" name=\"reviewHistoPop_0131177052__star__\"><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The title of this book is actually deceptive. \u00a0The book is really about adding unit tests to a legacy code base! \u00a0It is a very technical book with lots of examples used by the author to illustrate various design patterns. \u00a0These design patterns each have an application in understanding a legacy code base and encoding &hellip; <a href=\"https:\/\/lippaudio.org\/BookReviews\/2013\/12\/17\/working-effectively-with-legacy-code\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Working Effectively with Legacy Code<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[84],"class_list":["post-197","post","type-post","status-publish","format-standard","hentry","category-programming","tag-michael-feathers"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/comments?post=197"}],"version-history":[{"count":3,"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/posts\/197\/revisions"}],"predecessor-version":[{"id":200,"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/posts\/197\/revisions\/200"}],"wp:attachment":[{"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/media?parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/categories?post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lippaudio.org\/BookReviews\/wp-json\/wp\/v2\/tags?post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}