{"id":2829,"date":"2017-01-12T22:56:10","date_gmt":"2017-01-12T20:56:10","guid":{"rendered":"https:\/\/voxxeddays.com\/bucharest\/?p=2829"},"modified":"2017-01-13T12:40:11","modified_gmt":"2017-01-13T10:40:11","slug":"victor-rentea-clean-lambdas-streams-java-8","status":"publish","type":"post","link":"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/","title":{"rendered":"Clean Lambdas &amp; Streams in Java 8 &#8211; A Hands-on Experience"},"content":{"rendered":"<h2>Clean Lambdas &amp; Streams in Java 8<\/h2>\n<p><img loading=\"lazy\" class=\"image-medalion-post alignright wp-image-1971\" src=\"\/\/incremental.community\/wp-content\/uploads\/2017\/01\/victor-rentea.png\" width=\"130\" height=\"130\" \/><\/p>\n<blockquote>\n<p class=\"p1\"><a href=\"http:\/\/www.VictorRentea.ro\">Victor Rentea<\/a>\u00a0is a Java Craftsman.Sr. Engineer &amp; Technical Lead at IBM Romania. Independent Trainer &amp; Coach.<\/p>\n<p>I worked hard on backend systems over the last 10 years, solving technical challenges of a broad range of enterprise Java applications as a developer, lead and consultant. 4 years ago, after I had devoured Uncle Bob\u2019s Clean Code book, I joined the \u2018coding craftsmanship\u2019 move.<\/p>\n<p>Of course, soon after I started preaching about it as an independent trainer\/coach. This Clean Code, TDD, Pair Programming stuff it\u2019s just too fun too keep it for oneself. For hundreds of days I\u2019ve spread the word to more than 1000 trainees in all kinds of settings (even faculty lectures), usually bundled together with other training modules that I\u2019ve gradually developed, such as Spring, JavaEE, JPA, Design Patterns, and the like. You can find the entire curricula on my website.<br \/>\nMy extensive experience as a trainer allowed me to refine a very entertaining presentation style, spiced with jokes, non-IT-world analogies, and examples that is able to make any developer profile understand even the most advanced design discussions.<br \/>\nRecently however, I realized how much I enjoy meeting smarter people, so I\u2019ve started talking at international conferences such as Devoxx MA and VoxxedDays Belgrade and Bucharest, IMWorld Bucharest.<\/p><\/blockquote>\n<p>Are you using Lambdas &amp; Streams in your core business logic? Then you might be having this strange feeling that it\u2019s not Java anymore. That at times it\u2019s cryptic, barely readable.. Come and see how to keep your code clean while making best use of Java8. Bring a laptop or Pair with someone.<\/p>\n<p>Everybody\u2019s using Java8 Lambdas and Streams nowadays. So then, why shouldn\u2019t you use them as much as you can in your enterprise application code? It\u2019s absurd to keep away from these powerful features, but at some point you may start having some weird feeling about them. And then you get to your first code review, and you start wondering\u2026 <strong>What happened with the Clean Code principles<\/strong> when you jumped on Lambdas? How should you use Lambdas in order to keep a clean maintainable codebase &#8211; the ultimate goal of any large enterprise application?<\/p>\n<p>During this <strong>workshop<\/strong>, I\u2019ll mix my key points\/slides with <strong>two hands-on exercises<\/strong>: 1. The basics of Lambdas\/Streams, then 2. A tougher problem distilled from a real-world scenario. <strong>Note:<\/strong> You can join us anytime later during the workshop, if you want to skip to the more advanced topics.<\/p>\n<p>I\u2019ll introduce the Lambda\/Streams features roughly from simple to the more mind-stretching following an order inferred from a little study I\u2019m running \u201cClean Lambdas\u201d. This way, you\u2019ll see that you could adopt these features gradually, to allow your developers to learn the functional thinking bit-by-bit. One particular interesting topic we\u2019ll talk about is how\/where to implement predicates, and I bet you won\u2019t imagine all the possibilities.<\/p>\n<p>At the end, we\u2019ll wrap up trying to sketch how the Clean Code principles change when using Lambdas. More specifically, we\u2019ll brainstorm some guidelines you should keep in mind when playing with the lightsaber (oups,I mean.. Lambdas) in your enterprise application code. This session will leave you with a lot of take-aways: hints, tips, warnings, useful even if you don\u2019t have a lot of prior hands-on experience with Lamdas.<\/p>\n<p><strong>Prerequisites<\/strong>: minimum 3-6 months prior Java 8 experience \/ or a Spartan. <strong>Preparation<\/strong>: Personal <strong>laptop<\/strong> with Eclipse\/IntelliJ on JDK8 installed. <strong>Organization: Workshop.<\/strong> I\u2019ll give you the tasks one by one and gradually build the solution together. I would like the audience will <strong>Pair Program<\/strong> as much as possible, switching the writer every ~7 minutes. PS: This workshop is based on a training that I delivered a lot of times.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Clean Lambdas &amp; Streams in Java 8 Victor Rentea\u00a0is a Java Craftsman.Sr. Engineer &amp; Technical Lead at IBM Romania. Independent Trainer &amp; Coach. I worked hard on backend systems over the last 10 years, solving technical challenges of a broad range of enterprise Java applications as a developer, lead and consultant. 4 years ago, after [&hellip;]<\/p>\n","protected":false},"author":7816,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Clean Lambdas &amp; Streams in Java 8 - A Hands-on Experience - Voxxed Days Greece<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Clean Lambdas &amp; Streams in Java 8 - A Hands-on Experience - Voxxed Days Greece\" \/>\n<meta property=\"og:description\" content=\"Clean Lambdas &amp; Streams in Java 8 Victor Rentea\u00a0is a Java Craftsman.Sr. Engineer &amp; Technical Lead at IBM Romania. Independent Trainer &amp; Coach. I worked hard on backend systems over the last 10 years, solving technical challenges of a broad range of enterprise Java applications as a developer, lead and consultant. 4 years ago, after [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/\" \/>\n<meta property=\"og:site_name\" content=\"Voxxed Days Greece\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/voxxedbucharest\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-12T20:56:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-01-13T10:40:11+00:00\" \/>\n<meta property=\"og:image\" content=\"\/\/incremental.community\/wp-content\/uploads\/2017\/01\/victor-rentea.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@VoxxedBucharest\" \/>\n<meta name=\"twitter:site\" content=\"@VoxxedBucharest\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\">\n\t<meta name=\"twitter:data1\" content=\"alexproca\">\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data2\" content=\"3 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/voxxeddays.com\/greece\/#website\",\"url\":\"https:\/\/voxxeddays.com\/greece\/\",\"name\":\"Voxxed Days Greece\",\"description\":\"Another Voxxed event\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/voxxeddays.com\/greece\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"\/\/incremental.community\/wp-content\/uploads\/2017\/01\/victor-rentea.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/#webpage\",\"url\":\"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/\",\"name\":\"Clean Lambdas &amp; Streams in Java 8 - A Hands-on Experience - Voxxed Days Greece\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/greece\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/#primaryimage\"},\"datePublished\":\"2017-01-12T20:56:10+00:00\",\"dateModified\":\"2017-01-13T10:40:11+00:00\",\"author\":{\"@id\":\"https:\/\/voxxeddays.com\/greece\/#\/schema\/person\/3610fff738a03b155237ab4707e803eb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/voxxeddays.com\/greece\/2017\/01\/12\/victor-rentea-clean-lambdas-streams-java-8\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/voxxeddays.com\/greece\/#\/schema\/person\/3610fff738a03b155237ab4707e803eb\",\"name\":\"alexproca\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/greece\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fb9bbcf4c88be28b95644b3697985fcb?s=96&d=mm&r=g\",\"caption\":\"alexproca\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/posts\/2829"}],"collection":[{"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/users\/7816"}],"replies":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/comments?post=2829"}],"version-history":[{"count":0,"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/posts\/2829\/revisions"}],"wp:attachment":[{"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/media?parent=2829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/categories?post=2829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/voxxeddays.com\/greece\/wp-json\/wp\/v2\/tags?post=2829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}