JS: Introducción a la POO

Teoría: Introducción

La parte clave de cualquier código son los datos que obtenemos, procesamos, almacenamos y mostramos al usuario de alguna manera. Algunos datos son simples, como los que se presentan en forma de cadenas de texto (textos de libros) o matrices (mensajes de chat), mientras que otros son más complejos, como la información del usuario, que puede incluir decenas o cientos de propiedades. A continuación se muestra un ejemplo de lo que es un estudiante en Códica:

// Muy simplificado, en realidad es más complejo
const student = {
  name: 'Miguel',
  encryptedPassword: ...,
  facebookId: ...,
  payments: [/* información de pago */],
  currentGroup: ...,
  finishedCourses: [/* lista de cursos completados */]
};

Una forma de trabajar con estos datos es describir funciones que los manipulen, por ejemplo, cambiar la contraseña. Este enfoque se conoce como programación procedural:

// Realiza el cifrado y actualización del usuario internamente
// El usuario se modifica dentro de las funciones
changePassword(user, 'nueva contraseña secreta');
addFinishedCourse(user, finishedCourse);

Otra forma es agregar métodos a los objetos y trabajar con ellos:

user.changePassword('nueva contraseña secreta');
user.addFinishedCourse(curso);

El enfoque en el que el código consiste en un conjunto de objetos que interactúan entre sí se conoce como programación orientada a objetos (POO). Los objetos en este enfoque no son solo un tipo de datos "objeto", son entidades que tienen comportamiento, es decir, métodos para trabajar con ellos.

Estudiando la POO

La programación orientada a objetos es un tema amplio que impregna todo el desarrollo en JavaScript. Hay varios cursos dedicados a ella, que cubren diferentes aspectos, desde construcciones sintácticas hasta enfoques para organizar el código.

Este curso presenta los conceptos básicos y la sintaxis, y también aborda las características de JavaScript que lo distinguen de otros lenguajes orientados a objetos. Los demás cursos se centran más en los principios de construcción de programas en el estilo de la POO y, finalmente, en los detalles internos de JavaScript, como los prototipos.

Temas principales:

  • Objetos
  • Clases
  • Encapsulación
  • Ocultamiento de datos (Data hiding)
  • Excepciones

Estos temas son muy importantes incluso para un desarrollador principiante en JavaScript, ya que se encontrará con estos conceptos desde los primeros días en un nuevo trabajo. Por otro lado, se requiere tiempo antes de que pueda utilizar realmente estos enfoques y técnicas de manera efectiva. Volveremos a la programación orientada a objetos en nuestros cursos en varias ocasiones y profundizaremos no solo en nuestra comprensión, sino también en el conocimiento de su sintaxis, como constructores y prototipos.

Cómo prepararse para este curso

Este curso está diseñado para aquellos que ya tienen un buen dominio de objetos y funciones en JavaScript. Si tienes dificultades con esto, te recomendamos que primero realices o repases los siguientes cursos: