Refactorización de Código en C#: Mejora y Eficiencia

Clase 25 de 26Curso de Introducción a C# con .NET 3.1

Contenido del curso

Lógica de programación

Resumen

Cuando un programa ya funciona, el trabajo no termina ahí. Revisar el código, simplificarlo y hacerlo más eficiente es una práctica fundamental en el desarrollo de software. En esta sesión se aplica ese principio directamente sobre el proyecto del restaurante que se ha construido a lo largo del curso, combinando elementos como while, arrays, foreach y el operador de incremento en C Sharp.

¿Qué significa refactorizar el código en C Sharp?

Refactorizar es el proceso de mejorar el código existente sin cambiar su comportamiento. Después de verificar que tu programa funciona correctamente, vale la pena detenerte y preguntarte: ¿puedo lograr lo mismo con menos líneas o de forma más clara? [01:00]

En el ejemplo práctico, se reemplaza un bloque if por una condición más directa dentro del ciclo while. En lugar de verificar por separado si quedan espacios disponibles, se usa la variable arrayCurrentIndex como condición del while:

  • Mientras arrayCurrentIndex sea menor que diez, el ciclo se repite.
  • Cuando alcanza el valor de nueve (la última posición del array), el programa sabe que todos los slots están ocupados.

El bloque if anterior se comenta en lugar de borrarlo, una buena práctica para conservar referencia del código original. Solo hay que tener cuidado con cómo se abren y cierran los comentarios para no generar errores [01:15].

¿Cómo funciona el foreach para recorrer un array?

Una vez que el restaurante está lleno, se necesita mostrar la lista completa de comensales. Para eso se introduce el foreach, una estructura que recorre cada elemento de un array sin necesidad de especificar índice mínimo ni máximo [03:20].

Antes de usarlo, se declara una variable auxiliar:

csharp int auxIndex = 0;

Esta variable sirve como índice para mostrar tanto el número de usuario como su nombre. El foreach se escribe así:

csharp foreach (string element in usernames) { Console.WriteLine("User number: " + (auxIndex + 1) + " and username: " + usernames[auxIndex]); auxIndex++; }

La lectura es literal: por cada elemento de tipo string en usernames, ejecuta lo siguiente. Algunos puntos importantes:

  • Sin el operador de incremento (auxIndex++), se imprimiría diez veces el primer elemento porque el índice nunca avanzaría [05:10].
  • Se suma +1 al índice para mostrar los usuarios del uno al diez en lugar del cero al nueve, algo mucho más natural para cualquier persona. Este detalle es un pequeño tip de usabilidad [06:30].

¿Qué sucede después del ciclo while?

Cuando el while termina, el programa continúa con las instrucciones que están fuera de él. Ahí se imprime el mensaje de que el restaurante está lleno y luego la lista de invitados:

csharp Console.WriteLine("Restaurant is full. Try again next year."); Console.WriteLine("These are the guests to the dinner:");

C Sharp ayuda visualmente a identificar dónde termina cada bloque. Al minimizar el while en el editor, puedes confirmar que todo lo que escribes después queda fuera de su alcance [02:30].

¿Cómo se combinan todos los elementos del proyecto?

El programa final integra múltiples conceptos trabajados durante el curso:

  • Ciclo while para controlar el registro de usuarios.
  • Arrays para almacenar los nombres de los comensales.
  • Búsqueda dentro del array para verificar si un usuario ya está registrado.
  • Foreach para imprimir la lista completa al finalizar.
  • Variables auxiliares e incremento para llevar el control del recorrido.

Durante la prueba, se registra al usuario "Alfred" en la última posición disponible y el sistema responde correctamente: muestra la bienvenida, indica que el restaurante está completo y lista los diez invitados [05:45].

¿Por qué es importante pensar en resolver problemas y no buscar soluciones específicas?

El objetivo real al programar es resolver problemas a través del código. Cuando puedes plantarte frente a un problema y decir "esto se puede resolver así", estás dando un paso hacia un nivel mucho más profesional [07:10].

Buscar que alguien te dé la solución exacta para el programa que quieres hacer significa que aún necesitas fortalecer tu capacidad de análisis. Para desarrollar esa habilidad, estudiar algoritmos resulta fundamental, ya que te entrena para pensar cómo enfrentarte a cualquier problema antes de escribir una sola línea de código.

Si completaste este proyecto, ya estás combinando múltiples elementos de C Sharp en un solo programa funcional. Comparte tu experiencia y cuéntanos cómo te fue al probarlo por tu cuenta.