camelCase vs snake_case: guía de las convenciones de nombres en el código
Publicado el 20/6/2025 · 3 min de lectura · Herramientas para desarrolladores
Daniel Okonkwo — Desarrollador front-end y redactor de Tecnología en OneKitly
Rendimiento web · Formatos de archivo
Verificado con 2 fuentes
camelCase une las palabras sin espacios y pone en mayúscula cada palabra salvo la primera, como firstName. snake_case usa palabras en minúscula unidas por guiones bajos, como first_name. PascalCase pone en mayúscula cada palabra, como FirstName, y kebab-case une palabras en minúscula con guiones, como first-name. La elección correcta la dicta tu lenguaje y su guía de estilo: camelCase para variables de JavaScript, snake_case para Python, PascalCase para nombres de clases, kebab-case para URLs y CSS.
camelCase, snake_case, PascalCase y kebab-case explicados: cómo se ve cada uno, dónde es la convención y cómo elegir uno de forma coherente.
Las cuatro convenciones de un vistazo
Las cuatro resuelven el mismo problema: los identificadores no pueden contener espacios, así que los nombres de varias palabras necesitan una regla de unión. camelCase escribe myUserName, con mayúscula en cada palabra salvo la primera. PascalCase, también llamado UpperCamelCase, pone también en mayúscula la primera palabra, dando MyUserName. snake_case pone todo en minúscula y une con guiones bajos, my_user_name. kebab-case hace lo mismo con guiones, my-user-name.
Las diferencias son puramente estilísticas para un humano, pero no para una máquina: myUserName y my_user_name son identificadores distintos. Por eso convertir entre convenciones debe ser deliberado, y por eso un desajuste entre cómo se llama una columna de base de datos y lo que espera tu código es una fuente clásica de errores.
Dónde cada convención es la norma
Las convenciones las fijan las comunidades de lenguajes. JavaScript y Java usan camelCase para variables y funciones, y PascalCase para clases y tipos. Python y Ruby prefieren snake_case para variables y funciones, reservando PascalCase para clases. C# usa PascalCase para métodos y propiedades. kebab-case es raro en código porque los guiones se leen como signos menos, pero manda en las URLs, los nombres de clase CSS y los atributos HTML.
Un caso especial es la constante. Muchos lenguajes escriben las constantes de compilación en SCREAMING_SNAKE_CASE, un snake_case todo en mayúsculas como MAX_RETRIES. Esto señala de un vistazo que el valor nunca debe cambiar, y es uno de los pocos lugares donde el snake_case en mayúsculas es idiomático.
Elegir y convertir de forma coherente
La regla más importante es la coherencia dentro de una base de código. No mezcles firstName y first_name para el mismo concepto. Cuando cruces un límite, como leer columnas snake_case de una base de datos hacia una aplicación en camelCase, convierte en el borde, en un lugar claramente nombrado, en vez de esparcir conversiones por todas partes.
La conversión es mecánica: divide el nombre en palabras y vuelve a unirlas con la regla de destino. Lo único delicado es la división, porque camelCase no tiene separador. Un convertidor detecta los límites de palabra en cada mayúscula, mientras que snake_case y kebab-case se dividen por su delimitador, permitiendo mover un nombre entre dos estilos con fiabilidad.
Preguntas frecuentes
- ¿Cuál es la diferencia entre camelCase y PascalCase?
- Solo la primera letra. camelCase empieza en minúscula (userName); PascalCase pone también en mayúscula la primera palabra (UserName). PascalCase también se llama UpperCamelCase.
- ¿Por qué no se usa kebab-case para nombres de variables?
- Porque la mayoría de lenguajes leen el guion como operador de resta, así que first-name se interpretaría como first menos name. Es seguro en URLs, CSS y HTML, donde el guion es solo un carácter.
- ¿Qué convención debo usar para los campos JSON de una API REST?
- No hay una regla única, pero camelCase y snake_case son ambos comunes. Elige uno, documéntalo y mantén todos los campos de la API coherentes para que los clientes puedan confiar en ello.
- ¿Hay un nombre para MAYÚSCULAS con guiones bajos?
- Sí, se llama SCREAMING_SNAKE_CASE, o snake case en mayúsculas. Es la convención habitual para constantes, como MAX_SIZE o API_KEY.
Artículos que podrían interesarte
Todas las guías →Herramientas relacionadas
Fuentes
¿Has detectado un error en este artículo?