Convenciones de nomenclatura en programación: camelCase, PascalCase, snake_case y kebab-case

Escribir código limpio va mucho más allá de hacerlo compilar y funcionar correctamente. La legibilidad es crucial para el mantenimiento, la colaboración y la depuración de errores. Uno de los pilares fundamentales de la ingeniería de software es la adopción de convenciones de nomenclatura consistentes para variables, funciones, clases, columnas de bases de datos y archivos.

Dado que los espacios no están permitidos en los identificadores en la gran mayoría de lenguajes de programación, los desarrolladores utilizan letras mayúsculas o caracteres separadores para distinguir palabras. A lo largo de décadas de evolución técnica, varios patrones consolidados se han convertido en estándares de la industria, entre ellos camelCase, PascalCase, snake_case, kebab-case y SCREAMING_SNAKE_CASE.

Guías de Estilo: Las diferentes comunidades y lenguajes tienen sus propias normas establecidas. El uso de la convención adecuada hace que su código resulte natural para ese ecosistema y acelera la integración en equipo.

Los formatos principales de case

1. camelCase (lowerCamelCase)

En camelCase, la primera palabra comienza con letra minúscula y cada palabra subsiguiente comienza con letra mayúscula, sin espacios ni signos de puntuación. La alternancia de alturas de las letras recuerda las jorobas de un camello.

  • Ejemplos: nombreDelUsuario, calcularDuracionTotal, estaActivo, procesarSolicitudHttp
  • Uso común: Nombres de variables, parámetros y funciones en JavaScript, TypeScript, Java, C#, Swift y Kotlin.

2. PascalCase (UpperCamelCase)

PascalCase sigue la misma lógica de mayúsculas que camelCase, con la diferencia de que la primera letra de la primera palabra también es siempre mayúscula. Lleva el nombre del lenguaje de programación Pascal, que popularizó esta convención.

  • Ejemplos: PerfilDelUsuario, CompresorDeImagen, LayoutLocalizado, ConexionBaseDatos
  • Uso común: Clases, interfaces, tipos, enumeraciones y componentes en React, C#, Java y Python.

3. snake_case

En snake_case, todas las letras son minúsculas y las palabras se unen mediante un guion bajo (_). Este formato ofrece gran claridad visual porque emula el espaciado natural entre palabras.

  • Ejemplos: nombre_del_usuario, conexion_base_datos, calcular_duracion_total, fecha_creacion
  • Uso común: Funciones, variables y módulos en Python (PEP 8), Ruby, Rust, C y nombres de columnas en bases de datos relacionales como PostgreSQL y MySQL.

4. kebab-case

En kebab-case, todas las letras se escriben en minúsculas y se separan por guiones medios (-). El nombre hace referencia a los ingredientes ensartados en una brocheta.

  • Ejemplos: nombre-del-usuario, conversor-de-case, panel-principal, boton-confirmar
  • Uso común: Slugs de URL, endpoints de APIs REST, clases CSS, atributos personalizados de HTML y nombres de paquetes npm.

5. SCREAMING_SNAKE_CASE

También conocido como CONSTANT_CASE, este formato escribe todas las letras en mayúsculas con separación por guiones bajos.

  • Ejemplos: LIMITE_MAXIMO_REINTENTOS, TIEMPO_ESPERA_SEGUNDOS, CLAVE_SECRETA_API
  • Uso común: Constantes globales, variables de entorno y valores de configuración inmutables.

Tabla comparativa de convenciones

ConvenciónPrimera LetraSeparadorUso PrincipalEjemplo
camelCaseMinúsculaNingunoVariables y funciones en JS, TS, JavatotalUsuariosActivos
PascalCaseMayúsculaNingunoClases, Interfaces y Componentes ReactTarjetaPerfilUsuario
snake_caseMinúsculaGuion bajo (_)Python, Rust y Bases de Datostotal_usuarios_activos
kebab-caseMinúsculaGuion medio (-)URLs, clases CSS y nombres de archivostotal-usuarios-activos
SCREAMING_SNAKEMayúsculaGuion bajo (_)Constantes globales y Variables de EntornoLIMITE_MAXIMO_CONEXIONES

¿Por qué kebab-case no se utiliza en nombres de variables?

Una consulta habitual es por qué no se puede utilizar kebab-case para declarar variables en lenguajes como JavaScript, Python o Java. La razón radica en el analizador léxico de los compiladores: en los lenguajes de programación, el guion medio (-) está reservado para la operación matemática de resta.

Al procesar una expresión como primer-nombre, el compilador interpreta la línea como primer menos nombre. Por esta razón, el formato kebab-case se reserva para contextos sin ambigüedad aritmética, como selectores CSS, atributos HTML y rutas URL en la web.

Buenas prácticas con acrónimos en identificadores

Cuando un nombre contiene acrónimos como HTTP, URL o ID, las guías de estilo modernas aconsejan tratarlos como palabras regulares:

  • camelCase: Prefiera procesarUrlHttp y usuarioId frente a procesarURLHTTP y usuarioID para evitar secuencias confusas de mayúsculas continuas.
  • PascalCase: Prefiera AdministradorConexionHttp frente a AdministradorConexionHTTP para una delimitación limpia entre palabras.
  • snake_case: En snake_case, los acrónimos simplemente permanecen en minúsculas separados por guiones bajos: procesar_url_http y usuario_id.

Convierta formatos de texto al instante

Al mover datos entre esquemas de bases de datos (snake_case), contratos de APIs REST (camelCase) y componentes React (PascalCase), renombrar docenas de campos manualmente resulta tedioso y propenso a errores. Puede utilizar nuestro Conversor de Case gratuito para alternar textos entre mayúsculas, minúsculas, camelCase, PascalCase, snake_case y kebab-case de forma instantánea, con procesamiento local en su navegador y total privacidad.

¿Listo para cambiar formatos de texto? Abrir el Conversor de Case