Juan Zenón
Johan Tique
ProfesorJuan Zenón
¿Cómo diseñar un modelo de datos para tu aplicación?
El diseño de un modelo de datos es un paso esencial en el desarrollo de cualquier aplicación efectiva y organizada. Comienza por entender profundamente tu dominio de negocio y reflejarlo en un esquema de datos. En este artículo, viaja por el proceso desde la conceptualización hasta la implementación de un modelo para organizar tareas de manera eficiente.
¿Qué es un modelo de datos y cómo se plantea inicialmente?
Un modelo de datos es una representación abstracta y simplificada del negocio que se busca informatizar. Para aplicaciones simples, puede comenzar con una primera iteración suficiente para capturar las relaciones clave. Un organizador de tareas, por ejemplo, incluye modelos como Tarea, Categoría, Usuario, Participante y Nota, cada uno con interacciones específicas.
¿Cómo identificar y desarrollar cada modelo relevante?
Cada modelo posee atributos esenciales que garantizan su funcionalidad:
Modelo Task (Tarea):
Modelo Categoría:
Modelo User (Usuario):
Modelo Participant (Participante):
Modelo Nota:
¿Cómo se visualizan las relaciones entre modelos?
El diseño efectivo también implica una visión clara de las relaciones entre los modelos. Es crucial identificar conexiones como la relación de uno a muchos entre Categoría y Tarea, o la de muchos a muchos entre Usuario y Tarea mediada por Participante.
¿Qué sigue después del diseño del modelo de datos?
Una vez establecido el modelo de datos básico, el próximo paso es codificar y generar scaffolds, como se ha enseñado en clases previas. Además, integrar una interfaz visual fortalecerá la interacción del usuario con el sistema. Este enfoque iterativo asegura un diseño perdurable y adaptable a futuros cambios.
Invierte tiempo en perfeccionar y refinar tu modelo de datos para optimizar su rendimiento y escalabilidad. Con un diseño sólido, tu aplicación está lista para el desarrollo progresivo y especificaciones más complejas. Sigue aprendiendo y aplicando estas prácticas para dominar el arte de la modelación de datos.
Juan Zenón
Johan Tique
ProfesorJuan Zenón
Jose Ramos
Johan Tique
ProfesorYEINER CARVAJAL QUINA
Eduardo Rafael Romero Bernal
David Campos
Aprovecho que esta clase habla un poco sobre diseño de la aplicación y cambios en la misma para recomendarles un libro que estoy leyendo actualmente que me ha ayudado mucho a mejorar la forma en que escribo código, el libro se llama Practical Object Oriented Design. Este libro incluye ejemplos muy fáciles de enteder pero de alto impacto para el futuro de como diseñamos el implementamos. La autora tiene mucha experiencia con el diseño orientado a objetos y lo mejor es que el libro tiene todos sus ejemplos en Ruby. Espero que todxs le saquen mucho provecho :D Chéquenlo aquí
El libro es excelente, Sandi es una de las personas más influyentes en el desarrollo con POO y Ruby, otro libro interesante para leer es Domain-Driven Design: Tackling Complexity in the Heart of Software, que a pesar de ser vieja escuela tiene aspectos fundamentales para el diseño arquitectónico de soluciones
@johaned muchas gracias por la recomendación. :D
Genial! No entendi bien el porque el participant pero estoy seguro que mas adelante lo entendere mejor. Lo primero que me vino a la mente es que deberia de ser un Task >----< User (Siendo many to many)
Hola José, para poder hacer una relación muchos-a-muchos necesitas tradicionalmente una tabla intermedia (que Rails puede gestionar de forma transparente, en esta clase no lo hacemos así), sin embargo, Participant es mas bien una associative entity (una tabla intermedia con esteroides con la que podré tener referencias a otras tablas mediante un registro) que me permitirá tener un associative relationship attribute es decir un atributo que sólo tiene sentido en la asociación Task-User, estoy hablando del atributo role, este atributo no podría ir ni en la tabla Task, ni en la tabla User
Me ha parecido muy importante y de gran ayuda entender muy bien los modelos de datos (UML) de las aplicaciones que trabajamos en los cursos; yo, personalmente, utilizo el software Visual Paradigm (https://www.visual-paradigm.com/) para una apropiada comprensión de lo que plasmamos en código
Genial! Yo uso https://app.diagrams.net/
Cuando se diseña el modelo de datos de una aplicación, normalmente se hace a través de abstracciones de la realidad, lo que permite comprender mejor el dominio del negocio. Sin embargo, no es recomendable tratar de diseñar toda la estructura exacta si el sistema es muy complejo, porque probablemente haya que hacer muchos cambios en el proceso.
Diseñar utilizando iteraciones es lo mejor para sistemas complejos. Se comienza con algo muy básico y se va mejorando y haciendo más robusto y complejo conforme va avanzando.
En el caso del proyecto para administrar tareas el modelo no es tan complejo por lo que puede diseñarse completamente desde el inicio.
Modelo del proyecto
Task es el modelo principal y agrupa todos los demás modelos.
Las relaciones sería:
Los campos que podría tener cada modelo serían: