Ir al contenido
OneKitly

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

Daniel OkonkwoDesarrollador front-end y redactor de Tecnología en OneKitly

Rendimiento web · Formatos de archivo

Verificado con 2 fuentes

Ver perfil
En resumen

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.

Conversor de mayúsculas/minúsculas (código)Convierte identificadores entre camelCase, snake_case, kebab-case, PascalCase y CONSTANT_CASE, uno por línea. Las series de mayúsculas se separan bien: parseHTTPResponse da parse_http_response.Probar la herramienta

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
ExplicaciónEl cifrado César explicado: cómo funcionan el desplazamiento y ROT13El cifrado César desplaza cada letra una cantidad fija. Descubre cómo funciona el desplazamiento, por qué ROT13 es un caso especial, cómo codificar y decodificar a mano, y por qué el cifrado no ofrece hoy seguridad real.TutorialCómo convertir JSON a CSV: aplanar arreglos de objetos en filas y columnasUna guía práctica para convertir un arreglo JSON de objetos en un archivo CSV limpio, incluido el aplanado de campos anidados y los casos límite.Explicación¿Qué es un slug de URL? Por qué en minúsculas, con guiones y bueno para el SEOUn slug de URL es la parte legible y con guiones de una dirección web que nombra una página. Descubre por qué los slugs van en minúsculas, cómo ayudan al SEO y cómo generar uno a partir de un título.ComparativacamelCase, snake_case, kebab-case: cuál usar, y por qué rara vez eliges túLas convenciones no son cuestión de gusto. El guion es el operador menos, así que kebab-case no puede ser un identificador en la mayoría de lenguajes, y por eso justamente lo usan CSS y las URL. Además, el viaje de ida y vuelta con siglas que corrompe nombres en silencio, y la regla que lo arregla.TutorialBases de regex: guía para principiantesUna expresión regular es un patrón para buscar texto. Aquí tienes los bloques — clases de caracteres, cuantificadores y anclas — con un ejemplo.ExplicaciónEscapar una cadena para JSON: tres caracteres son obligatorios y uno es una trampaLa RFC 8259 exige escapar exactamente tres cosas dentro de una cadena JSON. Todo lo demás es opcional. El que de verdad rompe canalizaciones es un semisustituto suelto: legal en el texto JSON, imposible en UTF-8 y sustituido en silencio en cuanto tus datos se escriben.

Herramientas relacionadas

Fuentes

¿Has detectado un error en este artículo?