Quoting @jbrains, “A design is simple to the extent that it:
Passes its tests Minimizes duplication Maximizes clarity Has fewer elements" Object-oriented principles can only get you so far in simplifying your design. Starting with a clean yet completely imperative code base written in Java, In this video, Codurance co-founder Sandro Mancuso will explain how to improve code by applying functional principles, primarily extracting functions as objects and passing them around.
He will be pointing out how each refactor simplifies the code according to one or more of the four rules.
He will start by removing duplication, even where duplication isn’t apparent from an OO point of view, before making the code clearer by replacing the language of the system by the language of our domain. Along the way, he'll reduce the number of moving parts and increase test coverage.
He will also explain how existing libraries in Java and C# can help you refactor your own code to be smaller and more understandable.