Implementing and Testing Applications using Functional JavaScript

Implementing and Testing Applications using Functional JavaScript

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 2h 36m | 703 MB

See how to build and test your application using functional programming

You will get an in-depth overview of how to handle asynchronous code with promises, generator functions, and the ES2017 async-await construct. These tools will help you set up communication with a server via an API later, when implementing a web application.

Lazy evaluation will allow you to optimize performance of retrieving a collection of data, where you may need to process and retrieve just a fraction of the available elements. This powerful technique will not only allow you to write performant code, but it also makes it possible for you to handle infinite sequences.

We will also implement a web application together, demonstrating the practical usage of most of the features you learned in this course, and in the previous volume of this course, Deep Dive into Functional JavaScript. You will see higher order functions, currying, partial evaluation, recursion, ES6, asynchronous code with promises and ES2017 async-await, and many more language construct and functional programming ideas in practice. While we anchor these techniques into your mind with the repeated practical usage, you will also learn about techniques to write maintainable software: test driven development, top-down design, and bottom-up design. We will use Mocha and ChaiJs to write unit tests for the functional part of the application

What You Will Learn

  • See how to rewrite nested asynchronous callbacks with generator functions in a linear fashion
  • Simplify your linearized asynchronous code with async functions and the await operator
  • Optimize the performance of your application with lazy evaluation and memoization
  • Understand how to model and use infinite sequences with lazy evaluation
  • Understand theoretical functional programming concepts in practice to understand in-depth theory articles
  • Unit test your functional code with Mocha and Chai using test-driven development
  • Find out how to use top-down and bottom-up design
  • Use a third-party library that simplifies communication with a server via an API
  • See how to set up your development environment, including automated testing
  • Use several refactoring steps to get an idea of how to make your code more maintainable
  • Understand the theoretical background of wrapped sets in jQuery, the map function, and flatMap
Table of Contents

01 The Course Overview
02 Functors in JavaScript
03 Monads
04 Escaping the Pyramid of Doom
05 ES6 Promises and Functional Programming
06 Asynchronous Functional Programming with ES6 Generator Functions
07 Functional Programming with Async-Await
08 What Is Lazy Evaluation
09 Using ES6 Generator Functions for Evaluating Lazy Sequences
10 Introduction
11 Weather App
12 Application Setup
13 Bottom-Up Design and TDD (Continued) –Parsing the Response
13 Bottom-Up Design Using Test Driven Development
15 Handling Timezones
16 Getting Weather Data with Promises and Async-Await
17 Rendering the Weather App
18 Course Summary and Next Steps