Booking options
£44.99
£44.99
On-Demand course
4 hours 58 minutes
All levels
This is an amazing course for anyone who wants to get started with functional programming with libraries such as cats-effect/ZIO and understand IO Monad in depth. Learn about functional programming and effects from this most structured and well-thought-out course on Scala IOs.
Modern applications often need to describe complex workflows involving multiple external systems. These are notoriously difficult to get right as it requires handling errors, various retry strategies, and non-determinism because of concurrent executions. In this course, you will learn how to solve this problem using both imperative and functional programming. This course is divided into three parts. The first part covers building a CLI tool imperatively. Here, you will learn how to test code with external dependencies, handle errors, and retry if something goes wrong. One of the goals of the section is to discover how functional programmers came up with the notion of IO. It's the commonest way to action the functional programming world. In the next part, you will create and implement an IO class from scratch; this will solve two different problems, of which one is searching for a flight aggregator. In the final part, you will extend IO to execute tasks concurrently. Here, you will be looking to add concurrency methods to IO implementation so that you can execute some tasks in the background. By the end of the course, you will be able to read and write code using popular Scala libraries such as cats-effect, Monix, and ZIO. This skill is in high demand. All the resource files are added to the GitHub repository at: https://github.com/PacktPublishing/Supercharge-Scala-Future---FP-Tower
Install SBT, Scala, and IntelliJ IDEA
Understand the difference between IO (cats-effect, Monix, ZIO) and Future
Learn to use lazy evaluation to repeat actions and execute code concurrently
Write property-based tests for real-world examples
Understand the dangers of blocking code in a concurrent environment
Execute a project on flight search aggregator
This course is designed for developers interested in concurrency, functional programming, and backend developers. Scala developers more familiar with Akka, Play, and Future will also gain a lot from this course. Individuals who want to gain the skills to join one of the many companies using functional Scala and learn to think functionally will be best suited to this course.
You will need to have moderate programming experience with Scala. The author will take you through downloading and installing SBT, Scala, and an IDE.
This course is designed with a practical and hands-on approach. In this course, you will write lots of Scala code, test it using both example-based and property-based tests, experience issues caused by blocking logic and concurrent execution, and work your way to efficient solutions in small and incremental steps. The author guides you through all the exercises and provides a complete set of solutions.
Learn by demystifying complex concepts using explanations that are free of confusing jargon * Gain the skills to join one of the many companies using functional Scala * Learn to think functionally with the help of all requisite resources and learn from scratch
https://github.com/PacktPublishing/Supercharge-Scala-Future---FP-Tower
Fp-Tower by Julien Truffaut offers online Scala courses that help in learning the practical side of functional programming, so you can improve your skills and your career. He is a programmer who specializes in functional programming and the Scala programming language. He has been conducting functional programming seminars and online courses with remarkable success for over seven years. He focuses on demystifying complex subjects through straightforward explanations free of jargon. He is the author of Monocle, an optics library for functional Scala developers, which allows them to quickly transform and access deeply nested data structures. This is comparable to XPath or jq, except that it applies to all immutable data structures.
1. Actions with Imperative Programming
1. Introduction This video provides an overview of the course. |
2. Console Exercise - Testing This video demonstrates how to take users' input through the command line. |
3. Console Exercises - Error Handling This video demonstrates how to take users' input through the command line, making it more user-friendly using the error handling feature. |
4. Evaluation This video demonstrates how code is executed in Scala and how to delay an execution to an appropriate time. You will start by reviewing the techniques to define a code expression in Scala. |
5. Console Exercises - retry and onError This video helps you learn the concept of retrying an operation with a single higher order function and reuse to refactor the code of readDataOfBirthRetry and readSubscribeToMailingListRetry. |
6. Console Exercises - Code Organization This video demonstrates and explains code organization. |
2. Build Your Own IO
1. What Is an IO? This video provides an overview about IO (Input/Output). |
2. IO Composition This video explains about IO composition. |
3. For Comprehension This video demonstrates the comprehension part. |
4. Error Handling with IO This video talks about error handling with IO. |
5. Refactoring This video explains the concept of refactoring. |
3. Project: Search Flight Aggregator
1. First Implementation This video provides an introduction and the project's implementation from scratch. |
2. Traverse and Sequence This video demonstrates the concepts of traverse and sequence in this project. |
3. Concurrent IO This video explains one of the toughest concepts, which is Concurrent IO. |
4. Non-Blocking IO This video explains about Non-Blocking IO. |
4. Conclusion
1. Thank You and Conclusion This video talks about the course conclusion and helps you with the next steps. |