Skip to content

Latest commit

 

History

History
 
 

10-functional

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

10. Functional JavaScript

En este curso exploraremos el paradigma funcional en JavaScript así como varios patrones, técnicas y convenciones asociadas a este paradigma, haciendo uso de los nuevos features de ES2015.

La programación funcional es un paradigma de programación de suma relevancia hoy en día, ya que se presta a resolver problemas de paralelización, asincronía y programación reactiva entre otros. La programación funcional (Functional Programming - FP) no es realmente un paradigma nuevo, existe desde hace medio siglo, pero recientemente, y en particular en el mundo de JavaScript, se ha convertido en tanto una moda como una necesidad. Poco a poco, desde la proliferación de librerías como underscore y lodash, después la adición de map(), reduce() y compañía, y ahora con frameworks como React y Redux, conocer el paradigma funcional y estilo declarativo se han convertido en una necesidad para cualquier desarrollador de JavaScript.

Familiarizarnos con la programción funcional en JavaScript y ES2015 nos permitirá más adelante desenvolvernos con naturalidad en React.

Tags: functional, es6, ...

Público objetivo

Este curso está dirigido a desarrolladoras tanto front-end como back-end. JavaScript es un lenguaje de naturaleza funcional. En este curso aprenderás sobre los principios de la programación funcional y cómo se reflejan en JavaScript moderno.

Requerimientos previos

Para poder llevar adelante este curso sin frustración, es recomendable los siguientes conocimientos previos:

Aprenderás

  • ES2015
  • Recursión
  • High Order Functions
  • Funciones puras
  • Inmutabilidad
  • Composición de funciones
  • Composición de objetos
  • Refactorización
  • Automated tests
  • Trabajo en equipo
  • Peer-review
  • Github issues, branches, pull requests, ...

Detalles logísticos

  • Self-paced: 5 hrs (aprox.)
  • Presencial: 10 hrs (aprox.)
  • Total horas: 15 (apox.)

Producto

  • Refactorizar juego usado en lección 9 usando principios de programación funcional, ES6 y añadiendo test suite.
  • El "proyecto" está basado en iterar una aplicación existente y llevar a cabo su siguiente release usando metodología agile.

Syllabus

15min (presencial)

Antes de empezar con la teoría o la práctica, en esta "pre-lección" se hará una presentación sobre el curso en sí, los objetivos de aprendizaje, el proyecto, la metodología de aprendizaje, requisitos previos y metodología de evaluación.

Lesson plan

Orden Tipo Duración Descripción
1 charla 15min xxx

Lesson 2: Funciones puras

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

Lesson 3: Inmutabilidad

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

Lesson 4: Recursión

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

Lesson 5: HOF

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

1h (presencial)

Lesson plan

Orden Tipo Duración Descripción
1 solucionario 30min ...
2 challenge 30min ...

2h (presencial)

Lesson 8: Asicronía

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

Lesson 9: Currying

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

3h (presencial)

Lesson 10: Espías

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

Lesson 11: Testing

30min (self-paced)

Orden Tipo Duración Descripción
1 video 10min ...
2 code 20min ...

1h (presencial)

Workshop 5: Code review

1h (presencial)

1h (presencial)

Cada equipo (dos alumnas) tendrá 5 minutos para presentar su demo.

30min (presencial)


Autor(es) / Colaboradores

  • Lupo Montero (autor)
  • Mariano Crowe (technical review)
  • ...

Libros

Benchmarks

Cursos similares que sirven como referencia:

Referencias

Capítulos de libros:

Blog posts:

Videos:

Otros recursos: