Trabajo investigación: Clases persistentes con Python, C#, Scala, resolución de ejercicios
Enviado por Jose Miguel Lopez Urco • 30 de Noviembre de 2023 • Tarea • 2.150 Palabras (9 Páginas) • 33 Visitas
Clases persistentes con Python, C# y Scala
- Introducción:
Comenzando con la explicación del tema investigado, se sugiere que las clases persistentes son aquellas presentes en una aplicación que implementa las entidades del problema empresarial, como, por ejemplo, Customer y Order en una aplicación de comercio electrónico. Estas clases funcionan como un repositorio para almacenar los atributos deseados, como el color, raza y edad de un perro, por ejemplo. Es importante destacar que las clases de persistencia pueden guardarse de manera similar a una base de datos mediante la utilización de hibernación, permitiendo su lectura. En resumen, cuando se persiste un objeto y se modifica una propiedad específica del mismo, las propiedades en la base de datos se actualizan en consecuencia. Esto posibilita que el programador adopte un enfoque completamente orientado a objetos para manipular la base de datos sin tener que gestionar directamente las operaciones de la misma. Con el objetivo de profundizar en este tema, se llevó a cabo una investigación sobre clases persistentes en tres tipos de lenguajes de programación: Python, C# y Scala. En este trabajo, se identificaron las ventajas y desventajas de cada uno, así como la modalidad de uso y el respaldo para la creación de objetos mediante estas clases. Se concluyó con la presentación de ejercicios en los tres lenguajes de programación, derivando en diferentes conclusiones.
- Fundamentos de las clases Persistentes:
Las clases persistentes son un concepto fundamental en el ámbito de la programación orientada a objetos y la persistencia de datos. Aquí hay algunos fundamentos clave de las clases persistentes:
- Persistencia de Objetos:
- En el contexto de la programación, la persistencia se refiere a la capacidad de los objetos de mantener su estado más allá de la ejecución del programa.
- Las clases persistentes permiten que los objetos creados a partir de ellas mantengan su estado incluso después de que la aplicación se haya cerrado o reiniciado.
- Mapeo Objeto-Relacional (ORM):
- Las clases persistentes a menudo se utilizan en conjunto con técnicas de mapeo objeto-relacional (ORM).
- El ORM facilita la representación de objetos en una base de datos relacional y viceversa, permitiendo que las clases persistentes se almacenen y recuperen de una base de datos de manera transparente.
- Almacenamiento de Datos Empresariales:
- Las clases persistentes a menudo se implementan para representar entidades clave en un problema empresarial.
- Ejemplos incluyen clases que representan clientes, pedidos, productos, etc., en el contexto de una aplicación comercial.
- Atributos y Estado:
- Las clases persistentes contienen atributos que representan las propiedades o características de la entidad que están modelando.
- El estado de un objeto persistente incluye los valores actuales de sus atributos y se puede almacenar en una base de datos.
- Hibernación y Lectura:
- La hibernación se refiere al proceso de guardar el estado de un objeto persistente en una base de datos.
- La lectura implica recuperar el estado almacenado en la base de datos y recrear el objeto en la memoria del programa.
- Consistencia entre Objetos y Base de Datos:
- Un principio clave de las clases persistentes es mantener la consistencia entre los objetos en la memoria del programa y los datos almacenados en la base de datos.
- Cuando se modifica un objeto persistente, los cambios deben reflejarse en la base de datos y viceversa.
- Independencia del Sistema de Almacenamiento:
- Las clases persistentes permiten a los desarrolladores interactuar con los datos utilizando un enfoque orientado a objetos, independientemente de la forma en que se almacenen los datos (base de datos relacional, NoSQL, etc.).
- Lenguajes de Programación y Frameworks:
- La implementación de clases persistentes puede variar según el lenguaje de programación y los frameworks utilizados. Por ejemplo, en Java, Hibernate es una herramienta popular para implementar clases persistentes.
- Ventajas y Desventajas:
- La elección de clases persistentes conlleva ventajas, como una representación más natural del dominio del problema, pero también desafíos, como el rendimiento y la complejidad de la gestión de la persistencia.
las clases persistentes son esenciales para lograr una integración efectiva entre la programación orientada a objetos y la persistencia de datos, permitiendo que los objetos mantengan su estado a lo largo del tiempo y persistan más allá de la ejecución de la aplicación.
- Python:
Python es un lenguaje de programación de alto nivel, interpretado y de propósito general. Creado por Guido van Rossum y lanzado por primera vez en 1991, Python se destaca por su sintaxis clara y legible, lo que facilita a los programadores expresar conceptos en menos líneas de código que en otros lenguajes. Es versátil y se utiliza en una variedad de aplicaciones, desde desarrollo web y científico hasta automatización de tareas y aprendizaje de máquinas. Python es conocido por su énfasis en la legibilidad del código, su amplia comunidad de desarrolladores y su extensa biblioteca estándar, que ofrece módulos y paquetes para una variedad de tareas. Su filosofía principal se resume en el "Zen de Python", que destaca la importancia de la claridad, la simplicidad y la elegancia en el código.
- Clases Persistentes en Python:
Las clases persistentes en Python se utilizan para modelar entidades del dominio de una aplicación y están diseñadas para facilitar la persistencia de objetos en una base de datos. Estas clases a menudo se asocian con el uso de un ORM (Object-Relational Mapping) para gestionar la relación entre objetos y registros de base de datos de manera eficiente.
- Ejemplo:
En este ejemplo, crearemos una clase llamada Persona que tiene atributos como nombre y edad, y luego guardaremos y cargaremos instancias de esta clase en un archivo utilizando la biblioteca pickle para la serialización y deserialización.
...