No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Práctica: diseño de una “entidad”

17/25
Recursos

¿Cómo diseñar una entidad para un sistema de reseñas?

Diseñar un sistema de reseñas de cámaras es un proceso fascinante que ayuda a comprender cómo una entidad satisface ciertas reglas de negocio. La entidad, en este contexto, es un objeto que representa tanto una cámara como la reseña asociada que escriben nuestros editores. Definir estas reglas y plasmarlas en código es fundamental para el correcto funcionamiento del sistema.

¿Qué es una entidad en desarrollo de software?

En términos simples, una entidad es un objeto en programación que satisface reglas de negocio específicas. Este concepto es crucial al desarrollar un sistema de reseñas, que debe cumplir con los requerimientos y funcionalidades del negocio para garantizar su operatividad.

En el contexto de una empresa dedicada a la publicación de reviews de cámaras fotográficas para fomentar su compra, los objetos o entidades principales a crear serían:

  • Cámara: Que puede tener características técnicas como rango de ISO, presencia de flash, tipo de formato, entre otras.
  • Reseña: Que debería incluir título, contenido, autor y estar vinculada a un producto.

¿Por qué diseñar pensando en el escalamiento del sistema?

Una de las principales preocupaciones al modelar un sistema es su escalabilidad. Se debe considerar cómo crecerá el sistema y, más allá de este, el negocio. Por ejemplo, aunque inicialmente el objeto reseñado sea una cámara, el sistema debe ser capaz de adaptarse para incluir otros productos como lentes intercambiables.

Elementos importantes para considerar en el diseño:

  • Producto: Concepto amplio que incluye cámaras, lentes u otros. Esto permite una fácil adaptación del negocio.
  • Características específicas: Cada tipo de producto tendrá sus atributos únicos como nombre, fabricante y SKU (código único de producto).

¿Qué debe incluir la interfaz de reseña en código?

Al trasladar estas ideas al código, es importante diseñar una interfaz que defina claramente las características de una reseña. Esto implica:

  • Definir una estructura básica de la reseña, con atributos como título, contenido y referencia al producto.
  • Implementar un test que verifique el comportamiento de la entidad, asegurando que cumple con todas las especificaciones y características necesarias.

Recomendaciones para implementar el código

Te recomiendo que elijas un lenguaje de programación que estás aprendiendo o uno con el que sientas comodidad. El énfasis puede estar tanto en aprender un nuevo lenguaje como en dominar los aspectos arquitectónicos del diseño.

Consejos prácticos:

  1. Utiliza un libro de referencia: Como "Clean Code" de Robert Martin, para profundizar en conceptos de diseño de entidades.
  2. Experimenta en diferentes lenguajes: El instructor sugiere C, pero cualquier lenguaje moderno que domines o estés aprendiendo es válido.
  3. Define tu propio aprendizaje: Decide qué aspectos prefieres enfatizar, como el lenguaje o la arquitectura.

Por último, recuerda que el diseño pensando en la posibilidad de futuras expansiones y la clara definición de entidades y sus interacciones son aspectos cruciales para el éxito de cualquier sistema. ¡Continúa aprendiendo y practicando para desarrollar sistemas robustos y efectivos!

Aportes 11

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Les comparto lo que considero serian la Entidades y sus relaciones para el Sistema de Reseñas de Camaras. Es bienvenido todo el feedback duro y crudo. 😉

Les comparto mi visión del diagrama de entidades, les agradezco todas las observaciones que puedan hacer al respecto

<h3>“La entidad es el objeto que satisface las reglas de negocio”
.
En esta clase creamos las entidades, estas bien pueden ser las entidades de nuestra base de datos o las clases de nuestra aplicación:</h3>

Reseña

  • Titulo
  • Contenido
  • Autor
  • Producto
    .
    *Producto
  • Nombre
  • Fabricante
  • SKU
    .
    Camara:
  • ISO
  • Flash
  • Formato
  • Tipo

Hablando de referencias Cleancode, les dejo un enlace de un “súper” coder latino que debate el libro.

Empecé por los casos de usos , inovolucrando los actores y las acciones que realizaria cada uno en el sistema

Los microservicios se implementan generalmente en el backend. Son una arquitectura que permite desarrollar aplicaciones como un conjunto de servicios independientes que se comunican entre sí. Cada microservicio puede manejar diferentes funcionalidades y tiene su propia lógica de negocio, permitiendo así una mayor escalabilidad y flexibilidad en el desarrollo del sistema. En el contexto del curso, comprender cómo diseñar entidades y reglas de negocio es esencial para crear microservicios efectivos.
Algún consejo o sugerencia ? ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-11-04%20a%20la%28s%29%206.18.38%E2%80%AFp.%C2%A0m.-a571c6a2-040b-4958-b8a8-092952821099.jpg)

Les comparto mi diagrama, aclaro que falta declarar los metodo y propiedades dentro de la clase

Siguiendo una sintaxis UML, por ahora el proyecto se vería así: