Navigating Mars Using Typescript And Functional Programming!
Published 11/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 830.74 MB | Duration: 2h 57m
Published 11/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 830.74 MB | Duration: 2h 57m
Let's learn the basics of functional programming in TypeScript by tackling the Mars Rover kata
What you'll learn
How to identify domain models from a problem statement
How to build types that make sense using primitive, sum, and product types
How to use immutability to remove complexity from your code
How to create easily testable functions using purity
How to create bigger functions by re-using other functions through composition
How to maintain and update state when using immutable types
Requirements
Basic experience with Node and TypeScript (installing packages, running scripts)
Description
Over the past five years, functional programming paradigms have entered the development mainstream. Whether its Elm that introduced the Model View Update pattern which inspired React's Redux and Angular's ngrx architecture or Haskell that introduced us to Maybe and Either which influenced Rust, functional concepts are becoming more common.However, in order to understand these advanced concepts, you need a solid foundation to build upon which is what we'll be tackling in this course. By tackling the Mars Rover kata, you'll get hands-experience with the three core concepts of functional programming.Immutability - Removing complexity by reducing where data can changeFunctions - Removing complexity by reducing what functions can do, ensuring that they're easier to understandComposition - Building new functions by composing existing functionsBy learning immutability, you learn how to arrange your code so that you don't have to track as much state in your application, reducing your troubleshooting time.By learning what functions are, you'll learn how to spot pure functions (e.g., those that are easy to test/troubleshoot) and how to minimize the amount of business rules in the impure functions (e.g., those that are hard to test)With these two concepts in hand, you'll learn how you can take existing functions and combine them into new functions, gaining re-usability.If you're interested in functional programming but not sure where to start, then this course is for you!
Overview
Section 1: Introduction
Lecture 1 Intro to the course
Lecture 2 What we'll be building
Lecture 3 Prerequisites for setting up you renvironment
Lecture 4 Setting up your environment
Section 2: Exploring Mars with Domain Modeling
Lecture 5 Exploring Requirements
Lecture 6 Implementing Domain
Section 3: Making our Rover Move
Lecture 7 What's In a Function?
Lecture 8 Looking at Move Forward
Lecture 9 Looking at Move Backward
Lecture 10 Looking at Turn Left
Lecture 11 Looking at Turn Right
Section 4: Building user interaction workflow
Lecture 12 How will we interact with the rover?
Lecture 13 Getting input from the user
Lecture 14 Handling unexpected inputs
Lecture 15 Mapping from String to Command
Lecture 16 Mapping from Command to Action
Lecture 17 Adding repetition
Lecture 18 Building new functions with old functions
Section 5: Wrapping Up
Lecture 19 Reflection
Beginner to intermediate developers who have some experience with TypeScript, but want to learn more about functional programming