Skip to content

Latest commit

 

History

History
 
 

paradigms

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Paradigmas de programación

Los Paradigmas de Programación (Programming Paradigms) son formas diferentes de pensar en cómo se organiza un programa basado en una serie de principios, los cuales resultan en estilos muy distintos y lenguajes muy diversos.

JavaScript es un leguage híbrido, por decirlo de alguna forma, y contiene elementos propios de lenguajes funcionales (por ejemplo funciones como objetos de primera clase, lambdas, ...) pero no estamos limitados al paradigma funcional, si no que en su dinamismo y rareza, JavaScript nos permite programar de forma funcional, orientado a objetos, orientado a eventos, por procedimientos, ...

Como desarrollador Full Stack JS es esencial entender los distintos paradigmas de programación y cómo se traducen al mundo real en proyectos de JavaScript.

Históricamente, el paradigma orientado a objetos (OOP) ha sido el predominante, pero recientemente, y en particular en la comunidad de JavaScript, hay un resurgir del paradigma funcional y sus bondades. JavaScript es un lenguaje de corazón funcional, así que conocer el paradigma, y cómo se compara a la programación orientada a objetos, no sólo te hará una mejor coder, si no que podrás entender cómo se pueden enfrentar los mismos problemas con enfoques distintos, e identificar y adaptarse a bases de código existentes.

Público objetivo

Este curso está pensado para estudiantes que ya se han familiarizado con la programación en JavaScript y quieren llevar su conocimiento sobre el lenguaje a otro nivel, entendiendo diferentes formas de "pensar" en cómo se estructura un programa.

Requerimientos previos

Se asume que las estudiantes ya han trabajado con variables, valores (tipos de datos), arreglos, objetos y funciones así como estructuras de control de flujo (bucles, condicionales, ...).

Durante este curso se hará uso de algunas características de ES2015, así que un mínimo de familiaridad con const, let, arrow-functions, deconstrucción de objetos y la notación shorthand de objetos son un plus.

Aprenderás

  • Qué son los paradigmas de programación
  • Qué son FP, OOP, EOP y PP y cómo se comparan
  • A entender las diferencias entre el estilo imperativo vs declarativo
  • Las diferencias entre constructores y factories
  • Cómo implementar herencia prototipal
  • Los principios básicos de la programación funcional
  • A usar composición como alternativa a la herencia

Syllabus

En esta lección aprenderás las características y diferencias entre los paradigmas más relevantes para JavaScript, que es un lenguaje multi-paradigma y nos permite programar en varios estilos: imperativo, por procedimientos, orientado a objetos (OOP), funcional (FP), ...

# Tipo Formato Duración Descripción
00 lectura self-paced 5min Apertura
01 lectura self-paced 5min ¿Qué son los paradigmas de programación?
02 lectura self-paced 5min Historia
03 lectura self-paced 15min Declarativo vs Imperativo
04 práctica self-paced 5min Ejercicio Imperativo
05 lectura self-paced 6min Por procedimientos
06 lectura self-paced 6min Modularidad
07 práctica self-paced 10min Ejercicio por procedimientos
08 lectura self-paced 15min Orientado a objetos
09 práctica self-paced 10min Ejercicio OOP
10 lectura self-paced 10min Funcional
11 práctica self-paced 10min Ejercicio funcional
13 lectura self-paced 5min Cierre

Después de haber completado la introducción a paradigmas, te introdicirás en los detalles de cómo usar contructores y prototipos para crear jerarquías de herencia.

# Tipo Formato Duración Descripción
00 lectura self-paced 5min Apertura
01 lectura self-paced 10min this y bind
02 lectura self-paced 10min Object.create
03 lectura self-paced 12min Herencia prototipal
04 práctica self-paced 60min Ejercicios planetproto
06 lectura self-paced 5min Cierre

En esta lección veremos en detalle cómo usar composición como una alternativa a las jerarquías de herencia, y así poder comparar el enfoque funcional frente al orientado a objetos en un ámbito concreto de arquitectura y reuso de código.

# Tipo Formato Duración Descripción
00 lectura self-paced 5min Apertura
01 lectura self-paced 3min Closures
02 lectura self-paced 5min Factories
03 lectura self-paced 5min Object.assign
04 lectura self-paced 10min Composition over inheritance
05 práctica self-paced 60min Ejercicios
07 lectura self-paced 5min Cierre

Contributors

  • 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: