Skip to content

Semana 7

Compare
Choose a tag to compare
@Nico25Mac Nico25Mac released this 19 May 23:02
· 220 commits to main since this release
46df9ff

Java

En el lenguaje de Java vimos una nueva herramienta de trabajo llamada Docker:

Docker es una plataforma de código abierto que permite automatizar el despliegue, la ejecución y la administración de aplicaciones dentro de contenedores. Los contenedores son entornos ligeros y portátiles que encapsulan todas las dependencias y configuraciones necesarias para que una aplicación funcione correctamente.

¿Qué es un contenedor?

Un contenedor es una unidad ejecutable que incluye todo lo necesario para que una aplicación se ejecute de manera aislada en un entorno controlado. Contiene el código, las bibliotecas, las dependencias y las variables de entorno necesarias para que la aplicación funcione correctamente. Los contenedores son livianos, portátiles y pueden ejecutarse en cualquier sistema operativo que tenga Docker instalado.

Características principales de Docker:

  1. Aislamiento: Los contenedores de Docker están aislados unos de otros y del sistema host, lo que garantiza que una aplicación en un contenedor no afecte a otras aplicaciones o al sistema operativo.

  2. Portabilidad: Los contenedores de Docker son independientes del sistema operativo y de la infraestructura subyacente. Esto significa que un contenedor puede ejecutarse en cualquier entorno que tenga Docker instalado, lo que facilita la portabilidad de las aplicaciones.

  3. Eficiencia: Los contenedores son livianos, ya que comparten el kernel del sistema operativo con el host y solo incluyen las bibliotecas y dependencias necesarias para la aplicación. Esto los hace más eficientes en términos de recursos y tiempo de ejecución.

  4. Escalabilidad: Docker facilita la escalabilidad de las aplicaciones, ya que permite ejecutar múltiples contenedores de una misma aplicación de manera simultánea y distribuir la carga entre ellos.

Componentes principales de Docker:

  • Imágenes: Las imágenes son la base de los contenedores en Docker. Una imagen es un paquete autocontenido que incluye todo lo necesario para ejecutar una aplicación, como el código, las bibliotecas, las dependencias y las variables de entorno. Las imágenes se utilizan para crear contenedores.

  • Contenedores: Los contenedores son instancias en ejecución de una imagen. Un contenedor es un entorno aislado que contiene una aplicación y todas sus dependencias. Puede iniciarse, detenerse, reiniciarse y eliminarse fácilmente.

  • Dockerfile: Es un archivo de texto que contiene instrucciones para construir una imagen de Docker. El Dockerfile define cómo se crea una imagen a partir de una configuración específica, incluyendo el sistema operativo base, las dependencias, las variables de entorno, los comandos de instalación, etc.

  • Registro: Un registro de Docker es un repositorio centralizado donde se almacenan y se comparten imágenes de Docker. Docker Hub es el registro público más utilizado, pero también es posible utilizar registros privados para almacenar imágenes de forma segura.

Docker simplifica el proceso de implementación y administración de aplicaciones, ya que ofrece una forma estandarizada de empaquetar y distribuir aplicaciones con todas sus dependencias.

Python

Dentro de esta semana en el lenguaje Python trabajamos nuevamente en conjunto con la base de datos en Postgres.

Como primera parte empezamos con la corrección de errores. En PostgreSQL, los errores se conocen como "excepciones". Cuando ocurre un error durante la ejecución de una consulta o una transacción, PostgreSQL arroja una excepción junto con un mensaje de error descriptivo. Estos mensajes de error proporcionan información útil sobre qué salió mal y dónde ocurrió el problema.
Por otra parte, también vimos el manejo de transacciones en PostgreSQL, el cual se refiere a la capacidad del sistema para gestionar operaciones de bases de datos de manera consistente y confiable, garantizando la integridad de los datos incluso en situaciones de fallos o errores.
Una transacción es una secuencia de operaciones de bases de datos que se ejecutan como una unidad lógica e indivisible. Estas operaciones pueden incluir consultas de lectura (SELECT), modificaciones (INSERT, UPDATE, DELETE) u otras acciones que afecten a los datos almacenados en la base de datos.

JavaScript

Para lo que es el lenguaje de JavaScript trabajamos con lo siguiente:

Sintaxis de Clases en JavaScript

Las clases en JavaScript proporcionan una forma más estructurada y legible de trabajar con objetos y herencia en comparación con el enfoque basado en prototipos. Aunque JavaScript es un lenguaje basado en prototipos, las clases son una abstracción sintáctica que simplifica la creación y el manejo de objetos.
Esta sintaxis comienza con la palabra clave class, seguida del nombre de la clase en mayúscula. Por ejemplo: class Persona {...}. Dentro de la clase, se definen propiedades y métodos que describen el comportamiento y las características de los objetos que se crearán.
Se utiliza un constructor el cual es un método especial dentro de una clase que se llama automáticamente cuando se crea una nueva instancia de la clase utilizando la palabra clave new. El constructor se utiliza para inicializar las propiedades de los objetos y realizar tareas de configuración necesarias. Por ejemplo: constructor(nombre, apellido) {...}.
Dentro de la clase, se pueden definir propiedades utilizando el prefijo this, que se refiere al objeto actual. Por ejemplo: this.nombre = nombre; .

Método Get y Set

Los métodos get y set son funciones especiales que permiten acceder y modificar los valores de las propiedades de un objeto de manera controlada.
Los métodos get se utilizan para obtener el valor de una propiedad específica de un objeto. Estos métodos se definen utilizando la palabra clave get seguida del nombre de la propiedad. Por ejemplo: get nombre() {...}.
Por otra parte los métodos set se utilizan para asignar un valor a una propiedad específica de un objeto. Estos métodos se definen utilizando la palabra clave set seguida del nombre de la propiedad. Por ejemplo: set nombre(nuevoNombre) {...}.

Hoisting y Clases

Concepto de hoisting en JavaScript es un comportamiento que permite acceder a variables y funciones antes de que se declaren. En el caso de las clases, aunque la sintaxis de clase se declara en un lugar específico del código, las declaraciones de clase en sí se elevan o mueven al principio del ámbito actual.
A diferencia de las funciones, las clases no se pueden llamar antes de su declaración debido a su naturaleza y estructura. Solo el nombre de la clase puede ser utilizado antes de la declaración real de la clase, pero no se pueden crear instancias ni acceder a sus propiedades o métodos antes de la declaración.

Herencia

La herencia es un concepto fundamental en la programación orientada a objetos que permite crear jerarquías de objetos y compartir características y comportamientos comunes entre ellos. Una clase puede heredar propiedades y métodos de otra clase base, lo que fomenta la reutilización del código y la organización de las estructuras de objetos.
En JavaScript, la palabra clave extends se utiliza para establecer una relación de herencia entre una clase base y una subclase. La subclase hereda todas las propiedades y métodos de la clase base y puede agregar nuevos métodos o sobrescribir los existentes. Esto proporciona flexibilidad y la capacidad de personalizar el comportamiento de la subclase según sea necesario.
Dentro del constructor de una subclase, se utiliza el método super() para llamar al constructor de la clase base y asegurarse de que las propiedades de la clase base se inicialicen correctamente. Esto permite que la subclase herede y extienda el comportamiento de la clase base.