Buenas prácticas de nombres en C#

Resumen

Nombrar bien tus variables, métodos y clases en C# es una de las habilidades que separa el código de aprendizaje del código productivo. Aquí aprendes a aplicar buenas prácticas de nombramiento en C# para que tu proyecto sea legible, mantenible y fácil de entender por cualquier persona que lo lea después de ti.

¿Por qué importa el nombre de una variable en C#?

Una variable llamada d no le dice nada a nadie. Una variable llamada daySinceModification cuenta una historia completa en una sola línea.

Cuando empiezas a programar, los nombres cortos parecen prácticos, pero en un proyecto real se vuelven un dolor de cabeza. La regla es simple: el nombre debe describir qué guarda la variable o cuál es su propósito [0:30].

¿Qué es un nombre descriptivo en programación? Es un identificador que comunica con claridad qué representa una variable, método o clase, sin necesidad de leer el resto del código para entenderlo.

En el proyecto de tareas que se trabaja en clase, una colección llamada tl se renombró a taskList. También funcionaría listOfTask. No existe una fórmula única; lo importante es que cualquier persona entienda el contenido sin tener que adivinar [4:30].

¿Cómo se nombran los métodos en C# con Pascal case?

Los métodos siguen la convención Pascal case, que significa que cada palabra del nombre empieza con mayúscula, incluida la primera.

Ejemplos del transcript:

  • Mal: getUsers empieza en minúscula y es genérico.
  • Bien: GetActiveUsers empieza en mayúscula y especifica que devuelve usuarios activos.

El nombre debe responder a la pregunta: ¿qué hace este método y qué devuelve? Si tienes un método llamado showMenu2, nadie sabe qué hace sin abrirlo. Cambiarlo a ShowMenuRemove o ShowMenuTaskList deja claro su propósito de un vistazo [7:00].

¿Qué es Pascal case? Es un estilo de nombramiento donde la primera letra de cada palabra va en mayúscula y no se usan guiones ni espacios. Ejemplo: GetActiveUsers.

¿Qué errores evitar al nombrar clases en C#?

Las clases también se nombran en Pascal case y deben ser descriptivas, pero hay dos malas prácticas específicas que conviene eliminar.

Notación húngara: por qué ya no se usa

Nombrar una clase como classUser o clsUser se conoce como notación húngara. Era común en lenguajes antiguos y tecnologías legacy, pero hoy no aporta valor [3:10].

La razón: la palabra reservada public class ya indica que se trata de una clase. Repetirlo en el nombre es redundante.

Números en el nombre: la señal roja

Usar User2 para diferenciar de otra clase User es una mala práctica. Si necesitas distinguir variantes, usa palabras descriptivas:

  • DefaultUser para el usuario por defecto.
  • CustomUser para usuarios personalizados.
  • AdminUser para usuarios administradores.

Los números esconden la intención; las palabras la revelan.

¿Cómo aplicar estas prácticas en un proyecto real de C#?

En la aplicación de gestión de tareas se hicieron varios cambios concretos que muestran el antes y el después de un código bien nombrado.

  1. La colección tl pasó a taskList para indicar que guarda la lista de tareas [4:50].
  2. La variable variable, que almacenaba la opción del menú elegida por el usuario, se renombró a menuSelected [6:00].
  3. El método showMenu2, que en realidad eliminaba tareas, se convirtió en ShowMenuRemove [7:30].
  4. El método showMenu3, que mostraba la lista de tareas, se renombró a ShowMenuTaskList [8:00].

Después de cada cambio, es clave verificar que el código siga funcionando. En el ejemplo se ejecutó dotnet build y dotnet run, se agregó la tarea "comprar la cena", se listó, se removió y se confirmó el mensaje "No hay tareas por realizar". Todo funcionó igual, pero el código quedó mucho más legible por dentro [8:40].

¿Cuándo es válido usar nombres cortos?

Los nombres cortos tienen su lugar: variables de iteración como i en un for, o ejemplos didácticos donde el contexto es obvio. Fuera de esos casos, prioriza siempre la claridad sobre la brevedad.

Una regla práctica que aparece en la clase: si tienes que abrir un método para entender qué hace, su nombre está mal puesto. El nombre debe ahorrarte ese viaje.

Habilidades y conceptos clave que se aplican

  • Nombramiento descriptivo: variables, métodos y clases que comunican intención [0:30].
  • Pascal case: convención de C# para métodos y clases [1:30].
  • Detección de notación húngara: identificar y eliminar prefijos tipo class en nombres [3:10].
  • Refactorización segura: renombrar componentes y validar con dotnet build y dotnet run que el comportamiento no cambia [8:40].
  • Estándares de equipo: respetar las convenciones que defina la empresa por encima de preferencias personales [1:00].

El reto que queda sobre la mesa: revisa el resto del proyecto, identifica variables como task que aún no son descriptivas y aplica los mismos principios. ¿Qué nombres cambiarías tú primero? Cuéntamelo en los comentarios.