Skip to content

Matechs-Digital/practical-fp-in-ts-oct-21

Repository files navigation

Practical Functional Programming with Typescript

About This Event

Welcome to Practical Functional Programming with Typescript!

In this 4-day interactive workshop (5h/day), we’ll cover a wide range of topics, mixing theory and practice. You’ll learn the basics of FP (Pure Functions, ADTs, e-DSLs) and how to use functional effect-systems to build modular, performant applications that are easy to write and maintain. We expect attendees to do practical exercises and solve problems in real-time. Typically, every 10 minutes of theory lessons follow a 15-20 minutes exercise session. One of our core principles is no surprises. We teach everything from the basic principles, without presumptions, and without leaving the magic unfolded. In this workshop, Typescript developers will learn how to solve complex problems in asynchronous and concurrent programming using the effect-ts library.

Upon completion of the course, you'll be able to:

  • Use the effect-ts library (and similar libraries such as fp-ts, qio, waveguide);
  • Build modern, high-performance, asynchronous and concurrent, resource-efficient, and stack-safe applications, both in the back-end (well-optimized for serverless) and front-end;
  • Implement best practices regarding error management and dependency management.

Who is it for

This course is for Typescript developers who are eager to learn how to build modern, robust, and testable applications that are performant both in the back-end and front-end.

Prerequisites

Good working knowledge of Typescript, including tagged unions, conditional types, and infer.

Topics

Day 1:

  • Pure Functions
  • Introduction of Effect-TS
  • Variance in TypeScript: Covariance and Contravariance
  • Tagged unions & the very basic of ADTs
  • The Effect Data-Type and its utilities

Day 2:

  • Lightweight introduction to Fibers and concurrency
  • Managing Resources with the Managed Data-Type
  • Using Layers to structure dependency construction
  • Writing modular applications with Effect
  • Testing modular applications
  • Introduce the mars rover kata

Day 3:

  • A quick overview of the tools in the box (queues, ref, schedule, stream, etc.)
  • ADTs, GADTs, and e-DSLs
  • Build a tiny, minimal version of Schema

Day 4:

  • Build a tiny, minimal version of Effect (synchronous and stack-safe)
  • Build a minimal HTTP server that executes queries against a simulated db

Organization

The workshop will be remote via Zoom.

Community

Don't forget to join our Discord community: https://discord.com/invite/drVHpNgqDu

Schedule

  • 16:00 - 17:15 : 1st session
  • 17:15 - 17:30 : coffe break
  • 17:30 - 18:30 : 2nd session
  • 18:30 - 19:00 : dinner break
  • 19:00 - 20:00 : 3rd session
  • 20:00 - 20:15 : coffee break
  • 20:15 - 21:00 : 4th session

// record

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published