Functional Programming 101 in Groovy
DevconTLV February Conference, Thursday, February 14, 2013, 11:15
In this session I'm going to introduce you to the idea of a functional programming with a concrete example. We'll start with a an application solving a real-life problem and programmed in imperative (read "traditional") Groovy. We'll then transform it to a functional style making it shorter, more readable, extendable and better performing along the way. We'll then review the basic building blocks of functional programming such as immutable data, stateless functions free of side-effects, use of recursion, closures and higher-order functions, seeing how each concept is applicable in Groovy. We'll see how functional programming may contribute to application performance through parallel computations. And since no technology is ever perfect we'll discuss what could be the possible drawbacks of a functional style and which way to overcome them. I'll provide a set of patterns you can use to identify blocks of an imperative Groovy code as an immediate candidates for a conversion to a functional style. Finally, we're going to conclude the session with more examples from my own projects where a functional style was just the ideal thing to use.
By the end of this session you'll be able to see what functional programming is good for, why it is such an important part of today's computing world and what can you do next to climb aboard.
Evgeny Goldin is software engineer with Spotify in a Continuous Delivery team, taking care of company's backend services as they're continuously pushed through the CD pipeline: from commit to build and production.
Other Presentations at DevconTLV February
-
Thursday, February 14, 2013, 10:00
-
Thursday, February 14, 2013, 12:45
-
Thursday, February 14, 2013, 07:30
-
Thursday, February 14, 2013, 15:45
-
Thursday, February 14, 2013, 21:00
-
Thursday, February 14, 2013, 14:45
-
Thursday, February 14, 2013, 10:25
-
Thursday, February 14, 2013, 08:00
-
Thursday, February 14, 2013, 18:15
-
Thursday, February 14, 2013, 16:15
-
Thursday, February 14, 2013, 16:45
-
Thursday, February 14, 2013, 18:45
-
Thursday, February 14, 2013, 08:10
-
Thursday, February 14, 2013, 10:50
-
Thursday, February 14, 2013, 19:15
-
Thursday, February 14, 2013, 08:35
-
Thursday, February 14, 2013, 08:45
-
Thursday, February 14, 2013, 09:10
-
Thursday, February 14, 2013, 09:35
-
Thursday, February 14, 2013, 10:10
-
Thursday, February 14, 2013, 10:35
-
Thursday, February 14, 2013, 11:00
-
Thursday, February 14, 2013, 11:25
-
Thursday, February 14, 2013, 11:50
-
Thursday, February 14, 2013, 12:40
-
Thursday, February 14, 2013, 13:05
-
Thursday, February 14, 2013, 13:30
-
Thursday, February 14, 2013, 13:55
-
Thursday, February 14, 2013, 14:20
-
Thursday, February 14, 2013, 14:45
-
Thursday, February 14, 2013, 15:10
-
Thursday, February 14, 2013, 15:55