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

Otras categorías

Planificación de la Visión General de Aplicaciones en C#: Aprendiendo la Gran Imagen con Tim Corey

Tim Corey
31m 35s

Cuando los desarrolladores crean aplicaciones, los errores más costosos a menudo ocurren antes de que se escriba algún código. En la Lección 02 de "C# From Start to Finish: Tournament Tracker", Tim Corey se enfoca en la planificación general de la aplicación: entender qué se supone que debe hacer la aplicación, quién la usará, cómo funcionará y qué límites debe operar dentro. Esta lección no involucra escribir código todavía. En cambio, Tim examina cómo los desarrolladores profesionales retroceden y diseñan la estructura, funcionalidad y estrategia de una aplicación antes de que comience el desarrollo.

En este artículo, analizamos más de cerca la planificación general de la aplicación siguiendo de cerca el video de Tim Corey. Tim explica cómo las respuestas de personas reales (interesados) se transforman en reglas de la aplicación, estructura y decisiones clave de desarrollo. Esta visión general se convierte en la base para construir coherentemente la misma aplicación en futuras lecciones.

Introducción a la Planificación General

Al comienzo del video, Tim Corey introduce la Lección 02 y explica que el enfoque está en la planificación general, también descrita como el panorama general de la aplicación. Tim explica que este paso se trata de sentar las bases de la aplicación antes de sumergirse en los detalles. Él enfatiza que aunque esta lección puede parecer más fácil que otras, juega un papel crítico en la creación de aplicaciones que sean manejables, escalables y mantenibles.

Tim explica que la planificación general no se trata de características o de escribir código. Se trata de entender cómo funcionará la aplicación como un todo, cómo interactuarán los usuarios con ella y cómo los desarrolladores deben abordar su construcción.

Revisión de Preguntas a los Interesados

Tim explica que antes de avanzar, debe revisar las 15 preguntas formuladas en la lección anterior. Estas preguntas fueron diseñadas para recopilar información adicional de los interesados, las personas que solicitan la aplicación. Tim simula un escenario del mundo real donde un desarrollador regresa a los interesados, hace preguntas aclaratorias y recopila respuestas más detalladas.

Él señala que este proceso refleja los entornos empresariales reales. Los desarrolladores a menudo necesitan hacer múltiples preguntas y refinar los requisitos porque los usuarios no siempre saben cómo describir lo que quieren en términos técnicos.

Jugadores Variables y Tamaño del Torneo

Tim comienza revisando las respuestas explicando que la aplicación debe soportar un número variable de jugadores. El rastreador de torneos no debe limitarse a un número fijo. Ya sea que haya dos jugadores o muchos más, la aplicación debe manejarlo.

Este requisito afecta directamente la funcionalidad de la aplicación, las estructuras de datos y la lógica. Tim explica que los desarrolladores no pueden codificar suposiciones sobre el número de jugadores. En su lugar, la aplicación debe gestionar dinámicamente los usuarios y los juegos según cuántos participantes se ingresen.

Manejo de Byes en Torneos Imperfectos

Tim explica que los torneos no siempre tendrán un número ideal de jugadores. Cuando el total no se divide de manera uniforme, la aplicación debe asignar byes. En este punto, Tim destaca una regla importante: los byes deben ser asignados aleatoriamente.

Esto introduce una de las necesidades técnicas recurrentes de la aplicación: la aleatoriedad. La aplicación debe manejar equitativamente a los usuarios seleccionando al azar quién avanza sin jugar. Este requisito da forma a decisiones posteriores sobre herramientas, lógica y eventos dentro de la aplicación.

Ordenamiento Aleatorio de Jugadores

Tim continúa explicando que el orden de quién juega contra quién también debe ser aleatorio. La aplicación no debe depender del orden en el que se ingresan los usuarios. Una vez que se agregan todos los jugadores, la aplicación randomiza la lista.

Esto asegura equidad y evita sesgos. Tim deja claro que la aleatoriedad es una regla, no una característica opcional. Se convierte en parte de las reglas principales de la aplicación y debe respetarse durante todo el desarrollo.

Programación de Juegos Flexible

Tim explica que los juegos no son programados por el sistema. Los jugadores pueden jugar cuando quieran. Sin embargo, la aplicación aún aplica reglas. A las 3:04, Tim aclara que cada ronda debe completarse antes de que se muestre la siguiente ronda.

Este requisito afecta cómo la aplicación rastrea los juegos, gestiona los datos y desencadena eventos. La aplicación debe saber cuándo se termina una ronda y prevenir que los usuarios accedan a rondas posteriores prematuramente.

Puntuación y Flexibilidad de Datos

Tim explica que el sistema debe almacenar una puntuación numérica simple. Esto hace que la aplicación sea lo suficientemente flexible como para soportar diferentes tipos de juegos. Ya sea damas, baloncesto u otra competición, la misma aplicación puede gestionar las puntuaciones.

Esta decisión afecta cómo se recopilan, almacenan y muestran los datos. Al mantener la puntuación simple, los desarrolladores evitan encerrar la aplicación en un tipo de juego específico.

Elegir Interfaces de Usuario con el Futuro en Mente

Tim explica que la aplicación será una aplicación de escritorio utilizando Windows Forms, por ahora. Sin embargo, enfatiza que los interesados pueden querer que la misma aplicación evolucione hacia una plataforma web o móvil más adelante.

Por esta razón, Tim explica que los desarrolladores deben separar las interfaces de usuario de la lógica empresarial. A las 4:41, explica que la funcionalidad principal debe colocarse en una librería de clases para que diferentes interfaces de usuario puedan integrarse más tarde sin reescribir la aplicación.

Estrategia de Almacenamiento de Datos e Integración

Tim explica que idealmente los datos deben ser almacenados en Microsoft SQL Server, pero la aplicación también debe soportar una alternativa de archivo de texto. Esto asegura que la aplicación funcione incluso cuando ciertas herramientas o servicios no estén disponibles.

Esta decisión impacta cómo los desarrolladores escriben el código de acceso a datos. Tim explica que la integración debe ser flexible para que la misma aplicación pueda almacenar y recuperar datos de diferentes fuentes sin romper la funcionalidad.

Cuotas de Inscripción, Premios y Ambigüedad en el Mundo Real

Tim explica que a menudo los interesados proporcionan respuestas vagas. Inicialmente, la respuesta a si la aplicación maneja cuotas de inscripción y premios es simplemente "sí". Tim explica que los desarrolladores deben profundizar para entender qué significa eso.

Luego delinea los requisitos aclarados: los torneos pueden cobrar cuotas de inscripción, otorgar premios a múltiples lugares, y asegurar que los pagos nunca excedan los ingresos. También explica los pagos porcentuales y escenarios de recaudación de fondos.

Esta sección demuestra cómo la planificación de la visión general de la aplicación ayuda a los desarrolladores a anticipar las reglas de negocio reales sin complicar en exceso la aplicación.

Informes y visualización de resultados

Tim explica que los informes deben ser simples. La aplicación necesita mostrar los resultados de las rondas y los resultados finales, incluyendo quién ganó y cuánto ganaron. Los informes pueden mostrarse en formularios o enviarse por correo electrónico.

Esto evita construir un sistema de informes complejo mientras cumple con las expectativas del usuario. El enfoque sigue siendo la funcionalidad, no las características innecesarias.

Acceso de usuario y simplicidad

Tim explica que cualquier persona que use la aplicación puede introducir los resultados del juego. No hay niveles de acceso variables dentro de la aplicación. Esto simplifica el desarrollo al evitar cuentas, contraseñas y capas de seguridad.

Explica que, en la práctica, la aplicación puede residir en el dispositivo del administrador, mientras que otros usuarios interactúan solo por correo electrónico.

Notificaciones por correo electrónico y automatización

Tim enfatiza que la funcionalidad de correo electrónico es crítica. La aplicación debe notificar automáticamente a los usuarios sobre los juegos próximos y los resultados de las rondas. Esto requiere que los desarrolladores comprendan la integración de correo electrónico y la automatización desde el inicio del proceso de diseño.

Tim señala que este requisito aparece varias veces, lo que indica su importancia.

Soporte a equipos y usuarios grupales

Tim explica que la aplicación debe admitir equipos, no solo individuos. Todos los miembros del equipo son tratados por igual y reciben los mismos correos electrónicos. Los equipos también deben tener nombres.

Esto afecta cómo se agrupan los usuarios, cómo se estructura la información y cómo los eventos desencadenan notificaciones.

Definición del diseño general

Tim introduce la idea de diseño general utilizando una analogía de pintura. Explica que esta etapa define límites, no detalles. A las 18:48, describe la estructura: una aplicación de Windows Forms, una biblioteca de clases, almacenamiento de datos en SQL o ficheros de texto, y un solo usuario activo a la vez.

Estos límites previenen que los desarrolladores desvíen sus decisiones hacia opciones innecesarias más adelante.

Identificación de conceptos clave para desarrolladores

Tim explica que los desarrolladores deben identificar conceptos clave que podrían necesitar investigar. Enumera correo electrónico, SQL, eventos personalizados, manejo de errores, interfaces y orden aleatorio.

Explica cómo los eventos personalizados pueden ser usados para detectar la finalización de la ronda y activar funcionalidades como correos electrónicos.

Ideas adicionales sin romper requisitos

Tim introduce la mensajería de texto como una posible mejora futura. Explica que las características adicionales son aceptables solo si no cambian los requisitos fundamentales o retrasan la entrega.

Esto refuerza la importancia de respetar las reglas definidas durante la planificación general.

Resumen y próximos pasos

Tim concluye su video resumiendo el proceso: las preguntas de los interesados conducen a requisitos, los requisitos conducen a un diseño general, y el diseño general revela conceptos clave. Explica que la próxima lección se centrará en el diseño de datos, mapeando cómo se interrelaciona la información.

Esta lección muestra cómo una cuidadosa planificación ayuda a los desarrolladores a crear aplicaciones estructuradas, flexibles y mantenibles, antes de escribir una sola línea de código.

Hero Worlddot related to Planificación de la Visión General de Aplicaciones en C#: Aprendiendo la Gran Imagen con Tim Corey
Hero Affiliate related to Planificación de la Visión General de Aplicaciones en C#: Aprendiendo la Gran Imagen con Tim...

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