OKC JUG October Meeting
The JUG is today!
https://plus.google.com/events/cboo19hj5koa0ps4r51svnd6d6s Where: Belle
Isle Library, downstairs When: October 9th, 11:30am Who: Brett Schuchert
Brett has 20+ years of teaching experience and over 17 years of
experience with object technology. He has worked extensively in
developing software, training, mentoring, and consulting using Java, C++
and Smalltalk as well as software process and requirements analysis both
locally and internationally. More info can be found in his Curriculum
Vitae located here: http://schuchert.wikispaces.com/MyCv What: Legacy
Refactoring In "Working Effectively with Legacy Code" (Welc hereafter),
Michael Feathers defines legacy code as code without automated tests - I
like to add to that definition "that someone depends upon, e.g., in
production". Legacy Code is hard to work with? Or is it? Modern mocking
tools make creating what Michael Feathers calls a "link seam" easy,
language-driven rather than build driven, fast, reliable, and, frankly,
cool as hell. I like to call this a "dynamic link seam" instead of a
boring old link seam. The former is cool, fast, automated, and built
into the language (or a library), while the latter requires custom build
scripts, custom build targets, and may, depending on the language,
multiple executables. We’ll take a look at some legacy code and use a
modern mocking tool, JMockit to write some tests to exercise the
production code. We will then do some quick Welc-based refactorings on
the code to see: * How to do it * Does it improve the code * Do the
tests age well * What happens if we were to use the modern mocking tool
on the "after" code * Does this suggest anything about having all that
power at your fingertips?