Navigating Mars Using Typescript And Functional Programming!

Posted By: ELK1nG

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

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