Saltar al pie de página
Iron Academy Logo
Aplicación C#
Aplicación C#

Otras categorías

Planificación de Lógica de Aplicaciones — Un Análisis Más Profundo del Enfoque de Tim Corey

Tim Corey
17m 14s

En su serie C# App Start To Finish, Tim Corey explica que construir una aplicación no se trata solo de escribir código. El verdadero desafío radica en planificar la lógica de la aplicación: cómo interactuarán, se comunicarán y moverán datos entre las pantallas y componentes diferentes. En la Lección 05 sobre Planificación Lógica, Tim se centra en la planificación lógica, enfatizando que esta es la etapa en la que decides cómo se comportará la aplicación en su conjunto.

Nos recuerda que hasta este punto, el curso ya ha cubierto la definición del alcance, la construcción de la estructura general, el diseño del back-end de datos y el trazado del front-end. Ahora, dice Tim, el siguiente paso es conectar todo a través de la lógica.

Tim aclara que esta lección aún no se sumergirá en el código. En su lugar, quiere cubrir las ideas globales, la visión general, y la lógica total detrás de la aplicación. Él fomenta escribir notas en papel y trazar flechas para mapear cómo debe comportarse cada formulario y botón, similar a cómo se mapean los procesos empresariales en entornos de desarrollo profesional. Esta planificación ayuda a que la lógica de la aplicación sea clara antes de pasar a la codificación.

¿Por Qué Importa la Planificación Lógica?

Tim comienza afirmando que conectar formularios es la parte principal de la lógica de la aplicación. Una vez que los formularios están correctamente conectados, las tareas restantes suelen ser más pequeñas. Él explica que el proceso de planificación lógica te ayuda a entender la funcionalidad, los procesos y los controles que la aplicación debe soportar.

Tim dice que si estuviera haciendo esto en papel, escribiría lo que cada componente debe hacer y dibujaría flechas entre ellos. Aunque la clase está trabajando en la pantalla, planea recorrer cada formulario y explicar la lógica detrás de cada pieza.

Lógica del Formulario de Creación de Torneo

Tim comienza con el formulario de Creación de Torneo, que es uno de los formularios más simples. Él explica la lógica detrás de cada botón y cómo deben trabajar juntos.

Botón Crear Nuevo Equipo

Tim explica que el botón Crear Nuevo Equipo abre el formulario de Creación de Equipo. Después de crear un equipo, el nuevo formulario se cierra y los datos del equipo creado se devuelven al formulario de Creación de Torneo. El equipo debe aparecer en la caja de lista de equipos/jugadores, y esto se hace creando un método que puede ser llamado desde el formulario de Creación de Equipo.

Tim también introduce el concepto de usar interfaces para esta comunicación, explicando que las interfaces permiten a los formularios interactuar sin conocerse directamente. Este es un ejemplo clásico de cómo la lógica empresarial y la arquitectura de software trabajan juntas para mantener la calidad, la integridad y la interacción clara entre componentes.

Botón Agregar Equipo

Tim explica que el botón Agregar Equipo es sencillo. Verifica qué elemento está seleccionado en el desplegable, agrega ese equipo a la lista del torneo, lo elimina del desplegable y luego actualiza ambas listas. Esta lógica asegura que la selección del usuario se refleje correctamente en la IU y en los datos subyacentes.

Botón Crear Premio

Tim explica que el botón Crear Premio se comporta de manera similar al botón Crear Nuevo Equipo. Abre el formulario Crear Premio, espera a que se cree el premio, y luego agrega ese premio a la lista de premios. La lógica es la misma, pero la clase y el tipo de datos son diferentes.

Eliminar Botones Seleccionados

Tim explica que los botones de eliminar eliminan el elemento seleccionado de la lista. En el caso de los equipos, la lógica también devuelve el equipo eliminado a la lista desplegable, asegurando que el usuario pueda agregarlo nuevamente más tarde. Este tipo de actualización en tiempo real mejora la experiencia del usuario y ayuda a mantener datos correctos en toda la IU.

Botón Crear Torneo

Tim explica que este es el gran botón porque desencadena la mayor parte de la lógica. Cuando se presiona, debe validar toda la información:

  • El nombre del torneo no debe estar vacío

  • La cuota de inscripción no debe ser negativa

  • Deben existir al menos dos equipos

Después de la validación, Tim explica el siguiente paso importante: crear el calendario. La lógica del calendario del torneo determina cuántos equipos deben estar en el torneo y cuántas veces son necesarias. Tim hace referencia a un documento complementario donde escribió la fórmula para este cálculo. Por ejemplo, si el torneo tiene 10 equipos, el torneo debe comenzar con 16 equipos, lo que significa que se necesitan 6 veces en la primera ronda.

Tim también señala que la lógica necesita aleatorizar el orden de la primera ronda. Una vez que todo esto está completo, el formulario se termina y la aplicación puede avanzar.

Lógica del Formulario Crear Equipo

Tim pasa al formulario Crear Equipo y explica la lógica detrás de sus botones.

Botón Agregar Miembro

Tim dice que este botón agrega un miembro existente de una lista desplegable al cuadro de lista del equipo. Luego elimina ese miembro del desplegable y actualiza ambas listas. Tim destaca que esta lógica es similar a la del botón Agregar Equipo.

Botón Crear Miembro

Tim explica que el botón Crear Miembro toma los cuatro campos de entrada, crea un nuevo miembro del equipo, lo agrega al cuadro de lista y borra los campos. Este es un ejemplo típico de tareas comunes en la lógica de aplicaciones, donde la entrada del usuario debe ser procesada y reflejada en la IU.

Botón Crear Equipo

Tim dice que el botón Crear Equipo debe validar el equipo y luego enviar el equipo creado al llamador. Él observa que el formulario le falta un botón de eliminar jugador, el cual debería ser añadido para coincidir con los otros formularios y proporcionar una experiencia de usuario coherente. Tim explica que el comportamiento coherente de la IU es importante para la familiaridad y comodidad del usuario.

Lógica del Formulario Crear Premio

Tim describe el formulario Crear Premio como más sencillo. Tiene cuatro cuadros de texto y un botón.

Cuando se presiona el botón Crear Premio, se realiza lo siguiente:

  • Valida la información del premio

  • Envía los datos al formulario que lo llama

  • Cierra el formulario

Tim explica que este formulario es esencialmente el mismo que Crear Equipo pero con menos componentes.

Lógica del Tablero del Torneo

Tim explica el formulario del Tablero del Torneo como simple, pero esencial.

Enumera los torneos existentes. El botón Cargar Torneo abre el Visor del Torneo para el torneo seleccionado, y el botón Crear Torneo abre el formulario Crear Torneo.

Tim señala que cuando se crea un torneo, debe agregarse a la lista desplegable, para que el usuario pueda cargarlo inmediatamente. Esta lógica es un ejemplo básico de acceso a datos y actualización en tiempo real dentro de una aplicación.

Lógica del Visor de Torneos

Tim describe el Visor de Torneos como el formulario más complejo porque contiene la mayor cantidad de lógica.

Nombre del Torneo

Tim explica que el nombre del torneo se actualiza cuando se carga el formulario. El formulario recibe un objeto torneo y muestra el nombre.

Desplegable de Rondas

Tim explica que este desplegable se calcula, no se carga desde una base de datos. Mira la lista de rondas y determina cuántas existen. Si un torneo tiene cuatro rondas, el desplegable debe mostrar la Ronda 1 a la Ronda 4.

Casilla de Solo No Jugados

Tim dice que si la casilla está marcada (por defecto), el cuadro de lista de enfrentamientos se filtra para mostrar solo los juegos no jugados. Si no está marcada, aparecen todos los enfrentamientos.

Sección de Puntuación de Enfrentamientos

Tim explica que al seleccionar un enfrentamiento se actualiza la sección de la derecha con nombres de equipos y puntuaciones. El botón de Puntuación permite al usuario actualizar las puntuaciones y finalizar el enfrentamiento.

Activar la Siguiente Ronda

Tim explica que cuando el último enfrentamiento no jugado en una ronda se evalúa, debe comenzar la siguiente ronda. Si es el juego final de campeonato, el torneo termina y se asignan los premios. Tim también señala que el sistema envía correos electrónicos a los participantes cuando están programados para jugar y cuando los resultados están disponibles.

Reglas de Edición de Puntuaciones

Tim pregunta si las puntuaciones se pueden actualizar después de establecerlas. Concluye que sí, pero solo mientras la ronda actual todavía esté activa. Si se cambian las puntuaciones después de que haya comenzado la siguiente ronda, podría causar problemas importantes porque los equipos podrían jugar contra los oponentes incorrectos.

Por lo tanto, Tim dice que el botón de Puntuación necesita lógica para asegurarse de que la puntuación solo pueda cambiarse en la ronda actual.

¿Que sigue?

Tim reconoce que aún necesita planificarse algo de lógica, como:

  • Acceso y almacenamiento de datos

  • Manejo de diferentes fuentes de datos

  • Lógica de correo electrónico

  • Activación de enfrentamientos

Dice que es mejor planificarlos dentro del código, por lo que el equipo se encargará de ellos una vez que empiecen a programar. Este es un ejemplo de integridad empresarial en el desarrollo de software: no sobreplanificar, sino construir y adaptar mientras se implementa.

Conclusión: Planificación Antes de Programar

Tim concluye su video indicando que la fase de planificación está completa:

  • El diseño de datos está finalizado

  • El diseño de la IU está dibujado

  • La lógica detrás de cada formulario está planificada

El siguiente paso es traducir esto en código. En la próxima lección, Tim creará la biblioteca de clases y comenzará a implementar el diseño de datos en la aplicación real.

Hero Worlddot related to Planificación de Lógica de Aplicaciones — Un Análisis Más Profundo del Enfoque de Tim Corey
Hero Affiliate related to Planificación de Lógica de Aplicaciones — Un Análisis Más Profundo del Enfoque de Tim Corey

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame