Refactorización y Organización de Código en C#

Clase 25 de 32Fundamentos de C# con NET Core 2.1

Resumen

La refactorización en C# es clave para escalar con orden y claridad. Aquí verás cómo mover la lógica del proyecto a un motor de aplicación para separar responsabilidades, mejorar el mantenimiento y preparar datos de prueba reutilizables de forma rápida y segura, trabajando en Visual Studio Code con un enfoque profesional.

¿Cómo refactorizar y organizar el proyecto en C# de forma profesional?

La prioridad es ordenar el código y delegar responsabilidades. La clase Programa solo debe iniciar la ejecución; la lógica de la escuela debe vivir en un engine dedicado.

¿Qué cambios iniciales mejoran la estructura del proyecto?

  • Eliminar comentarios y código con arreglos ya obsoletos.
  • Crear carpeta app para la lógica principal.
  • Crear la clase Escuela Engine como el motor principal.
  • Unificar el namespace a Core Escuela y alinear todos los archivos.
  • Incorporar el espacio de nombres de entidades: core escuela punto entidades.

¿Cómo definir el motor con una propiedad pública?

  • Hacer pública la clase Escuela Engine.
  • Exponer una propiedad pública para acceder a la escuela: Escuela escuela.
  • Asegurar accesibilidad consistente: resolver el error inconsistent accessibility type haciendo pública la entidad Escuela.
public class EscuelaEngine
{
    public Escuela escuela { get; set; }

    public EscuelaEngine()
    {
        // escuela = new Escuela(...);
    }

    public void Inicializar()
    {
        // Inicializa escuela y cursos.
    }
}

¿Qué rol juega el namespace unificado Core Escuela?

  • Centraliza la identidad del proyecto.
  • Evita conflictos al mover archivos y carpetas.
  • Facilita ubicar clases como Escuela y colecciones de cursos.

¿Cómo inicializar la escuela sin sobrecargar el constructor?

El constructor debe ser rápido y evitar entrada y salida: nada de archivos, redes ni bases de datos. Por eso, la creación de datos se mueve a un método dedicado.

¿Qué patrón usar para la inicialización de datos?

  • Mantener el constructor vacío o mínimo: solo prepara el objeto.
  • Crear un método público void Inicializar para poblar escuela, cursos y demás.
  • Facilitar pruebas con datos rápidos y reutilizables.

¿Cómo organizar los cursos y colecciones?

  • Usar el namespace de colecciones cuando se manejen listas.
  • Mantener pocos cursos al inicio: tres son suficientes para comenzar.
  • Conservar los cursos 401 y 501 en jornada tarde.
  • Dejar configuraciones hasta grado quinto como base.

¿Qué ventajas trae separar responsabilidades?

  • Mejora la legibilidad: Programa inicia; el engine gestiona la lógica.
  • Permite crecer con asignaturas, alumnos y evaluaciones más adelante.
  • Facilita pruebas y cambios sin romper el arranque.

¿Cómo ejecutar y validar la refactorización en Visual Studio Code?

Con el engine listo, el Programa instancia, inicializa y usa los datos con claridad. Luego se valida la salida ejecutando el proyecto.

¿Qué pasos seguir en el programa principal?

  • Crear instancia: engine = new Escuela Engine.
  • Llamar a engine.Inicializar para poblar datos.
  • Reusar funciones como imprimir cursos de escuela pasando engine.escuela.

¿Cómo verificar el resultado y datos de ejemplo?

  • Abrir una terminal e iniciar con dotnet run.
  • Observar la salida: títulos como cursos de la escuela.
  • Ver listados contemplados: cursos 401 y 501 en jornada tarde.

¿Qué sigue para ampliar el dominio académico?

  • Agregar objetos del dominio: asignaturas, alumnos, evaluaciones.
  • Mantener el patrón: inicializar en métodos específicos, no en el constructor.
  • Preparar más datos de prueba reutilizables según escenarios.

¿Tienes dudas sobre la organización del engine o la inicialización de datos en C#? Cuéntalo en comentarios y conversemos sobre tu caso.