2Steaks / workshop-fp

Functional Programming Workshop

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

workshop-fp

Functional Programming Workshop

Introduction

This workshop is to educate the team about functional programming, this isn't about FP vs OO, it's also not just about using functions instead of classes. Functional programming is a collection of principles based on mathematics that promise less bugs, enhanced readability, increased maintainability and much more.

We are going to be taking a look at these principles and seeing how we can fit it into our everyday. We'll be going back to basics so please try and approach this workshop as a total newbie, so temporarily forget everything you know about JS. If you don't initially understand, your instinct might be to reject, but be patient, learning FP is a gradual process.

Benefits

  • Code that reads like English significantly reduces cognitive load
  • Leads to more efficient problem solving in terms of quality and speed
  • Reduced surface area for bugs to dwell
  • Using components to only focus on rendering and handling side-effects provides a clear seperation of concerns
  • Better adoption of TDD and improved testing experience
  • Easier to find and remove duplicate code (much easier to look for words than syntax)

Goals

  • Discover a middle ground between how we do things and FP
  • Raise awareness of the importance of pure functions, immutabability etc...
  • Get used to using functions as data
  • Spark an interest

Main Goal

  • Encourage the team to start using function composition

What to Bring

  • Install Runjs https://runjs.dev/ with the list below:
    • ramda
    • axios
    • monet
    • fluture
    • folktale

Suggested Learning

Resources

About

Functional Programming Workshop


Languages

Language:JavaScript 100.0%