Módulos en JavaScript: Encapsulamiento y Uso Práctico

Clase 13 de 20Curso Básico de Programación Orientada a Objetos con JavaScript

Resumen

¿Qué es encapsulamiento en archivos JavaScript?

El encapsulamiento es una herramienta poderosa que permite proteger la estructura interna del software, asegurando que ciertos datos y funcionalidades no sean accesibles desde fuera de un módulo o clase. Tradicionalmente, se enfoca en encapsular métodos y atributos dentro de una clase mediante getters y setters. Estos mecanismos permiten validar datos asignados, manejar listas blancas y negras, y controlar el acceso de los usuarios a nuestros atributos y métodos. Es un concepto central en la programación orientada a objetos que otorga seguridad y control sobre el comportamiento del código, evitando que se asignen valores inadecuados o potencialmente dañinos.

¿Cómo aplicamos el encapsulamiento a archivos JavaScript?

Cuando trabajamos con varios archivos JavaScript, es crucial aplicar el encapsulamiento para proteger el acceso a nuestras funciones y datos. En este contexto, se implementan conceptos como imports y exports, que designan qué elementos estarán disponibles para otros módulos. De esta forma, se definen qué clases, funciones o variables se exponen, mientras que el resto permanece oculto, preservando la confidencialidad y asegurando que solo las partes necesarias sean accesibles. Vamos a ver cómo se usa.

// Ejemplo de exportación en JavaScript
export class PlatziClass {
  constructor({ name, videoID }) {
    this.name = name;
    this.videoID = videoID;
  }
  reproducir() {
    videoPlay(this.videoID);
  }
  pausar() {
    videoStop(this.videoID);
  }
}

// Estas funciones permanecen inscritas al módulo y no se exportan
function videoPlay(id) {
  const secreta = `https://platziultrasecretomasquelanasa.com/${id}`;
  console.log(`Se está reproduciendo desde la URL: ${secreta}`);
}

function videoStop(id) {
  const secreta = `https://platziultrasecretomasquelanasa.com/${id}`;
  console.log(`Pausamos la URL: ${secreta}`);
}

¿Cómo gestionamos módulos con JavaScript?

Importación y exportación

Los módulos de JavaScript nos permiten organizar el código, mantener la separación de responsabilidades y mejorar la legibilidad y eficiencia del código. Para que un archivo JavaScript se comporte como un módulo, es necesario cambiar su extensión a .mjs y declarar su tipo de script como "module" en el HTML.

<script type="module" src="main.mjs"></script>

Esta declaración nos habilita el uso de import y export en nuestro código, lo que facilita compartir funciones y variables entre distintos archivos JavaScript.

Resolución de problemas de CURSES y uso de Code Runner

El uso de módulos directamente en el navegador puede ser limitado debido al problema de CURSES (Cross-Origin Resource Sharing), que restringe el acceso por origen y ruta a menos que se utilice un servidor configurado para ello. Para modificar predominantemente esta barrera en el entorno de desarrollo, se recomienda utilizar extensiones como Code Runner en Visual Studio Code.

Utilizando esta extensión, podemos ejecutar código JavaScript sin necesidad de los protocolos del navegador, permitiendo que nuestro enfoque en módulos fluya sin interrupciones.

// Ejemplo de importación
import { PlatziClass } from './main.mjs';

// Crear una instancia de PlatziClass
const clase67 = new PlatziClass({
  name: "Javascript POO Basado en prototipos",
  videoID: "león_escribió_estó",
});

// Usar los métodos reproducir y pausar
clase67.reproducir();
clase67.pausar();

¿Por qué utilizar módulos en JavaScript?

  • Organización del código: Distribuir el código en varios archivos mejora la legibilidad y facilita el mantenimiento.
  • Reutilización: Las funciones y clases definidas en un módulo se pueden reutilizar en diferentes partes de la aplicación, lo que fomenta buenas prácticas de programación.
  • Protección de código: Al encapsular partes del código en módulos, se previene el acceso no autorizado a variables y funciones internas, mejorando la seguridad del mismo.

El uso de módulos en JavaScript es una práctica recomendable para desarrolladores que deseen crear software robusto y mantenible. Recuerda siempre compartir tus dudas o comentarios en las comunidades de aprendizaje, donde más personas pueden enriquecer y dar solución a nuestras inquietudes. ¡Continúa explorando y amplía tus habilidades en programación web!