Java Reference
In-Depth Information
Chapter 7. Testing, Debugging, and
Refactoring
The rising popularity of techniques such as refactoring, test-driven development (TDD), and
continuous integration (CI) mean that if we're going to use lambda expressions in our day-
to-day programming, we need to understand how to test code using them and written with
them.
A wealth of material has been written on how to test and debug computer programs, and this
chapter isn't going to revisit all that material. If you're interested in learning how to do TDD
properly, I highly recommend the topics Test-Driven Development by Kent Beck and Grow-
ing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce (both from
Addison-Wesley).
I am going to cover techniques specific to using lambda expressions in your code, and when
you might not want to (directly) use lambda expressions at all. I'll also talk about some ap-
propriate techniques for debugging programs that heavily use lambda expressions and
streams.
We're first going to look at some examples of how to refactor an existing code base into us-
ing lambda expressions. I've talked a bit already about how to do local refactoring opera-
tions, such as replacing a for loop with a stream operation. Here we'll take a more in-depth
look at how non-collection code can be improved.
Lambda Refactoring Candidates
The process of refactoring code to take advantage of lambdas has been given the snazzy
name point lambdafication (pronounced lambda-fi-cation , practitioners of this process being
“lamb-di-fiers” or “responsible developers”). It's a process that has happened within the Java
core libraries for Java 8. When you're choosing how to model the internal design of your ap-
plication, it's also really worth considering which API methods to expose in this way.
Search WWH ::




Custom Search