Java celebrated its 25th birthday in 2020. Code written in 1995 still runs today, without even having to recompile it. This is one of the biggest reasons why Java has had such success in enterprises.Purchase Dr Heinz M. Kabutz – JGym.IO Live – Refactoring to Streams – 13-14 April 2021 courses at here with PRICE $497 $92Dr Heinz M. Kabutz – JGym.IO Live – Refactoring to Streams – 13-14 April 2021Java celebrated its 25th birthday in 2020. Code written in 1995 still runs today, without even having to recompile it. This is one of the biggest reasons why Java has had such success in enterprises.Over the years, we have seen lots of improvements to make Java code easier to work with. Inner classes came in Java 1.1. A proper collection framework joined us in Java 1.2. Java 5 gave us better type safety with generics.But the biggest improvement for Java programmers came in Java 8 with Streams and Lambdas. We can now write Java code in the declarative style, rather than imperative. This expresses better the “what”, rather than the “how” of the program logic.Since Java 8, we have had a constant stream of improvements to the Java Programming Language. Records, sealed classes, pattern matching, local variable type inference, and many more. They all serve to make it easier to craft great Java code.Unfortunately a lot of Java code bases are still stuck in the dark ages of Java 6. This needs refactoring.“Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.” – Martin FowlerIn this one-day course we learn how and when to “refactor”, focusing on the biggest improvement: Java Streams. However, we also show what else is new in the Java Programming Language.This is a very hands-on course. Each section has exercises where we get to refactor an existing code base of a large ERP system with 330k LOC.This course includes two live sessions of 4 hours each on the 13th and 14th of April 2021 with Dr Heinz M. Kabutz. Each refactoring has exercises to solve. Heinz shows model solutions and is always happy to answer your questions.What you’ll learn – and how you can apply itHow to refactor to streams and lambdas with and without IDE assistanceThe place of streams and lambdas in the history of the JDKWhat is a functional interface?The four core functional interface types found in the java.util.function packageHow the lambda notation is a shorthand for an anonymous inner class based on a functional interfaceThe long and short forms that lambdas can take depending on their complexityMethod references as a further simplification of certain forms of lambdaHow default and static methods in interfaces can use lambdas to improve generality, correctness and readabilityWhen it might be unsafe to use methods like Map.computeIfAbsentThe concept of a stream and its relationship to iterable collectionsWhy coding with streams follows the algorithm logic more naturally than using for/while loopsHow to create, transform and terminate streams using filters, mappings, matchers, collectors, reducers, etcWhy we should use collectors rather than forEach to build collections from a streamUsing the Optional class to avoid null checks, and how optionals are used with streamsHow to handle exceptions in lambdas using sneaky throws (without Lombok)How functional interfaces, streams and optionals are optimized for the primitive types int, long and doubleHow do these LIVE classes work?Our LIVE classes consist of two 4-hour sessions. They are highly interactive, with exercises, discussions, and walkthroughs of the solutions. Sessions are not recorded. We welcome questions at any time during the live session.Each 4-hour session runs from 7am to 11am Los Angeles Time.Once you enrol in this course, we will sign you up for the webinar. Our system will send you login details. These are personal to you so please do not share them (otherwise you might lose access to the course).LIVE Class Calendar Course Outline0: IntroductionWelcome to the course and how to get the most from your learningRefactoringInspecting Code with IntelliJ IDEAJava Language Changes1: Default Methods in InterfacesDefault Methods in InterfacesExercise 1: Replace with List.sortStatic Methods in InterfacesComparator.comparingFunctional Interfaces2: LambdasConverting an Anonymous Type to Lambda SyntaxStatement vs Expression LambdaExercise: Replace anonymous type with lambda3: Method ReferencesLambda patternsExercise: Replace lambda with method reference4: Iterable and Map forEach()Iterating over Collections and MapsExercise: Replace loop with forEach()5: removeIf()Performance gotchasExercise: Replace loop with removeIf()6: Map Compound MethodsCommon coding patterns with MapsExercise: Replace with Compound Map Methods7: Stream.all/any/noneMatch()Inspecting a stream for matching elementsExercise: Replace with all/any/noneMatch8: Stream.map() and collect()Converting streams to maps and collectionsExercise: Replace with Map.collect()9: Collectors.toCollection()Converting streams to specific collection typesExercise: Replace with map() and Collectors.toCollection()10: Stream.filter()Removing elements from a streamExercise: Replace with map(), filter(), collect()11: Collectors.toMap()Converting elementsExercise: Replace with stream(), collect(), Collectors.toMap()12: Stream.reduce()Reducing a stream to a single valueExercise: Replace with stream(), map(), reduce()13: Stream.flatMap()Flattening streams of streamsExercise: Replace with flatMap()14: Optional, findFirst(), findAny()Searching for elements and what to do when none are foundExercise: Replace with findFirst() or findAny()15: groupingBy(), mapping()Grouping elements into mapsExercise: Replace with collect(), groupingBy() and mapping()16: Checked ExceptionsHandling checked exceptions with sneaky throwExercise: Handling checked exceptions with ThrowingFunction17: ConclusionCourse wrap-up and next stepsPreparationThis training is for all Java programmers wishing to embrace the Java 8 streams and lambdas coding styleStudents should download and install the exercises found in the Resources chapter of the course materialRecommended Reading“Mastering Lambdas” by Maurice Naftalin“Refactoring: Improving the Design of Existing Code” by Martin Fowler (first edition uses Java, second uses JavaScript)Your InstructorDr Heinz M. KabutzHeinz Kabutz is the author of The Java Specialists’ Newsletter, a publication enjoyed by tens of thousands of Java experts in over 145 countries. His book “Dynamic Proxies (in German)” was #1 Bestseller on Amazon.de in Fachbücher für Informatik for about five minutes until Amazon fixed their algorithm. Thanks to a supportive mother, he has now sold 5 copies.Heinz’s Java Specialists’ newsletter is filled with amusing anecdotes of life on the Island of Crete. He is a popular speaker at all the best Java conferences around the world, and also at some of the worst. He teaches Java courses in classrooms around the world, where his prime objective is to make absolutely sure that none of his students fall asleep. He is not always successful.Sales PageArchive PagePurchase Dr Heinz M. Kabutz – JGym.IO Live – Refactoring to Streams – 13-14 April 2021 courses at here with PRICE $497 $92
Dr Heinz M. Kabutz – JGym.IO Live – Data Structures in Java – 9-10 February 2021
₹15,272.00
Dr Heinz M. Kabutz – Java Design Patterns
₹15,272.00
Dr Heinz M. Kabutz – JGym.IO Live – Refactoring to Streams – 13-14 April 2021
₹15,272.00