Ивановский Торрент трекер
Яндекс.Погода
 

[Quote]
HUNTER

Functional Programming for Java LiveLessons
Год выпуска: 2018
Производитель: Pearson, Inc.
Сайт производителя: http://www.informit.com/store/functional-programming-for-java-livelessons-9780134778242
Автор: Simon Roberts
Продолжительность: 07:36:12
Тип раздаваемого материала: Видеоурок
Язык: English
Accent: British (native language speaker)
Описание: Almost 8 hours teaching Java programmers how to design and create Java code using functional programming style and the new language features added with Java 8 that support that style.
Functional Programming for Java LiveLessons provides a solid foundation for designing and creating Java code using the functional programming style. Simon Roberts, best-selling author of Java Certification and programming books and video titles, has created a unique video course using live-action lectures, code demos, and whiteboard instructions to take learners on a learning journey by telling a story.
Functional Programming for Java LiveLessons is a complete resource where each new concept is introduced gradually, based on examples that start in the familiar object-oriented style. A solid foundation is created before adding on more complicated concepts. The discussion then examines how this example might be improved and introduces functional concepts in small steps, building in relevant code as you go and in a way that emphasizes understanding. Exercises are suggested throughout, allowing the viewer to stop and try solving the examples on their own before continuing. The code for this course is available as a GIT repository and viewers are encouraged to work with it to further their understanding.
Topics include:
  • From an OO design pattern to a functional foundation
  • Building more functional concepts
  • The power of combinations and modifications
  • Working with pure functions
  • Streams API
  • Advanced patterns and exception handling
    Learn How To
  • Approach Java in a more functional way rather than an object-oriented approach
  • Use advanced Java syntax features: nested and inner classes, anonymous inner classes, and lambda expressions
  • Define simple generic methods, increasing the generality of your code
  • Compose and adapt functions, allowing fine-grained reuse of code and avoid duplication
  • Create software with dynamically variable rather than fixed behavior
  • Understand the benefits of, and write software using pure functions
  • Understand and use the Java 8 Streams API, including the monad concept, reduce and collect operations, and the parallel execution of Streams
  • Handle exceptions, both checked and unchecked, in Stream processing, and other situations where exceptions would break the system either compile or runtime.

    Для кого предназначен курс

  • Java programmers looking to leverage the new functional features of Java 8.
  • Java programmers who are finding functional features being used by their teammates, and who want to understand both the syntax being used, and the design patterns that are being implemented by those features.
  • OO programmers looking to learn the functional approach, who write in languages that have sufficiently similar syntaxes, such as C#, C++, and so on.
    Course Requirements
  • Learners should have a reasonable grasp of Java, or a solid grasp of another object-oriented programming language with similar syntaxes (for example, C# or C++).
  • Learners should have a basic competence in designing in the object oriented style.
  • Описание уроков

    The course begins with Lesson 1, "From an OO design pattern to a functional foundation". This lesson examines solving a seemingly simple problem using regular object-oriented approaches. The discussion develops an increasingly flexible solution, which forms a bridge to a key pattern in functional programming style.
    Lesson 2, "Building more functional concepts", starts by looking at where code should be located for maximum maintainability. In the process, the discussion discovers how behavior can be passed into and out of methods. This lesson investigates the singleton and the factory; and compares those with constructors. It reviews many syntax features, including nested classes, private nested classes, and anonymous inner classes. It then introduces lambda expressions, their requirements, and syntactic variations. This lesson also looks at writing generic methods so as to create even more general code, and get the benefits of consistency checking through the compiler.
    Lesson 3, "The power of combinations and modifications", extends the idea that behavior can be passed as an argument to, and returned from, a method to show that such behavior can actually be computed, rather than fixed. This lesson shows how to build behavior out of other existing behaviors, modify existing behaviors, and combine them in new ways. As a result, you’ll learn to re-use code at the level of a function, rather than at the level of a class or object.
    Lesson 4, "Working with pure functions", investigates pure functions; discovering what they are, and how to address the seeming limitations of them. It will discuss a key technique in this kind of programming. The discussions will build a simple, readily comprehensible model of one of Java’s key APIs. In the process, you’ll gain a solid understanding of the functional programming concept called a "monad."
    Lesson 5, "Streams API", takes the monad concept learned in Lesson 4 and completes your understanding, so you can use the Streams API to solve potentially large-scale data processing problems.
    Lesson 6, "Advanced patterns and exception handling", looks at the problem of how to handle exceptions that might arise during stream processing. In building the story, you’ll strengthen your understanding of how function composition and adaptation is used to solve real programming problems.

    Содержание

    Introduction00:03:19
    Lesson 1: From an OO design pattern to a functional foundation00:43:35
    Learning objectives ⌚00:00:32
    Introducing the problem ⌚00:14:03
    Deeper into the problem ⌚00:05:45
    Looking at sorting ⌚00:08:27
    Generalizing the selection mechanism ⌚00:03:33
    Coding the improved selection ⌚00:11:14
    Lesson 2: Building more functional concepts01:24:13
    Learning objectives ⌚00:01:02
    A question of ownership ⌚00:11:02
    A question of quantity ⌚00:09:05
    A question of visibility ⌚00:08:40
    Simplifying the syntax ⌚00:06:51
    Reviewing lambda syntax and rules ⌚00:04:20
    Lambda syntax variations - part 1 ⌚00:06:45
    Lambda syntax variations - part 2 ⌚00:05:27
    The @FunctionalInterface annotation ⌚00:05:03
    Giving type to a lambda ⌚00:10:58
    Further generalization ⌚00:10:49
    Demonstrating generalization ⌚00:04:11
    Lesson 3: The power of combinations and modifications01:19:07
    Learning objectives ⌚00:01:16
    Improving the behavior factories ⌚00:06:37
    Requirements for closure ⌚00:07:33
    Another example ⌚00:06:17
    Combining behaviors - part 1 ⌚00:03:55
    Combining behaviors - part 2 ⌚00:12:29
    Cleaning up the design ⌚00:09:02
    Interfaces for lambdas ⌚00:11:13
    Using Predicate in the example ⌚00:04:21
    Functions adapting functions ⌚00:05:08
    Coding adapters ⌚00:11:16
    Lesson 4: Working with pure functions01:26:35
    Learning objectives ⌚00:01:18
    Concepts of pure functions ⌚00:09:13
    Pure functions in practice ⌚00:03:04
    Planning a pipeline framework ⌚00:02:51
    Implementing a pipeline framework ⌚00:08:13
    Internal iteration ⌚00:06:04
    Making changes - part 1 ⌚00:03:27
    Making changes - part 2 ⌚00:07:38
    Coding immutable data types ⌚00:09:38
    One-to-many changes ⌚00:11:28
    Keeping track of boundaries ⌚00:04:42
    The formal origins of the wrapper ⌚00:02:33
    Another wrapper ⌚00:10:53
    Using Optional in the car API ⌚00:05:32
    Lesson 5: Streams API02:01:50
    Learning objectives ⌚00:00:51
    Introducing Streams ⌚00:10:27
    Streams coding principles ⌚00:16:20
    Getting a result ⌚00:11:10
    More flexible ways to a result ⌚00:16:45
    Looking at concurrency ⌚00:04:30
    More about concurrency ⌚00:05:31
    More complex results ⌚00:05:14
    Collecting to a table ⌚00:06:34
    Cleaning the results ⌚00:05:56
    More results processing ⌚00:06:14
    Designing a bigger example ⌚00:08:08
    Building a bigger example ⌚00:10:33
    More Java 8 syntax ⌚00:05:01
    Coding with method references ⌚00:06:53
    Summary ⌚00:01:45
    Lesson 6: Advanced patterns and exception handling00:36:09
    Learning objectives ⌚00:00:32
    A hidden problem ⌚00:04:56
    Two basic solutions ⌚00:03:53
    Another improvement ⌚00:05:43
    Generalizing the wrapper ⌚00:08:51
    Keeping track of the problem ⌚00:10:29
    Reviewing either ⌚00:01:45
    Summary00:01:23
    Файлы примеров: отсутствуют
    Формат видео: MP4
    Видео: AVC 1280x720 16:9 30fps ~410kbps
    Аудио: AAC 44.1kHz ~64kbps 1ch

    Скриншоты



    Quick Reply

    Name:

                   
           
         
    Heads necessary to send messages to enable JavaScript
    Display posts:    

    Current time is: 23-Oct 01:41

    All times are UTC ± 0


    You can post new topics in this forum
    You can reply to topics in this forum
    You cannot edit your posts in this forum
    You cannot delete your posts in this forum
    You cannot vote in polls in this forum
    You cannot attach files in this forum
    You cannot download files in this forum

    !ATTENTION!
    The site does not give electronic versions of products, and is engaged only in a collecting and cataloguing of the references sent and published at a forum by our readers. If you are the legal owner of any submitted material and do not wish that the reference to it was in our catalogue, contact us and we shall immediately remove her. Files for an exchange on tracker are given by users of a site, and the administration does not bear the responsibility for their maintenance. The request to not fill in the files protected by copyrights, and also files of the illegal maintenance!