Las convenciones de nombres en el código, ¿cómo traducrilas? camelCase, PascalCase, SNAKE_CASE, kebab-case y Train-Case

Las convenciones de nombres en el código, ¿cómo traducrilas? camelCase, PascalCase, SNAKE_CASE, kebab-case y Train-Case
Artículo actualizado el 1/9/2021.

¡Hola! Hoy vengo a presentar unos conceptos de programación relacionados con la legibilidad y que son muy importantes de detectar cuando localizamos software, web e incluso denominaciones de marcas. Las convenciones de nombres son muy curiosas, descriptivas y ¡a partir de ahora los reconocerás por todas partes porque te presento una serie de imagenes que harán que no las puedas olvidar y que las localices al instante.

Moritz Zimmermann y Lenny Sander de Cómo Vender Drogas Online (Rápido) programando.
¿Has visto la serie de Netflix Cómo vender drogas online (rápido)? Lenny Sander siempre usa la misma convención de nombres en su código y eso es decisivo en uno de los capítulos de la tercera temporada. No te adelanto nada, pero con este artículo entenderás a qué se refieren en la serie. De nada 😉.


Índice

👇 ¿Empezamos?

Legibilidad en el código

Muchas veces es necesario incorporar léxico propio del lenguaje escrito o hablado para nombrar variables, clases y demás elementos del código fuente.

Sin embargo, esto supone algunos retos y uno de ellos, como ya sabrás, es que no siempre es posible introducir espacios en el código.

Entonces, ¿cómo se hace si necesitamos una denominación con más de una palabra?

Podemos escribir todas las palabras juntas, ¿pero cómo quedaría?

estoesunejemplo

No se puede leer ni entender bien, ¿verdad? Pero, ¿qué tal así?

estoEsUnEjemplo

O así:

EstoEsUnEjemplo

Puede que os resulte más cómodo si introducimos guiones bajos:

esto_es_un_ejemplo

También podemos usar guiones medios:

esto-es-un-ejemplo

Incluso en alguna ocasión habrás visto que se combinan los guiones con las iniciales en mayúscula:

Esto-Es-Un-Ejemplo

Estas opciones son mejores que la primera en cuanto a que se pueden leer y entender mejor, ¿verdad?

Esta es la razón por la que se recomienda usar alguno de estos estilos o convenciones de nombres como buenas prácticas de programación. El uso de un estilo u otro suele depender, entre otros motivos, del lenguaje de programación utilizado.

En español se denominan «convenciones de nombres» porque forman parte de las convenciones y de las guías de estilo de los desarrolladores, como esta de la documentación de .NET, pero, como toda convención, puede no seguirse siempre o, incluso, cada empresa o profesional (recordemos a Lenny Sander, el de la serie) puede tener sus propias decisiones al respecto.

Cada uno de estas convenciones tiene un nombre muy visual que nos facilita reconocerlas posteriormente. ¿Y para qué nos sirve a los traductores? Para saber que no lo tenemos que tocar a menos que nos indiquen lo contrario. Es más importante de lo que puede parecer, te lo aseguro, si lo tocas, todo se romperá.

Veamos las convenciones de nombres 👇.

camelCase y PascalCase

Imagen de un dromedario con las letras camel Case, la segunda palabra con la letra ce en mayúscula.
El dromedario camelCase te ayudará a recordar cómo se utiliza esta convención de nombres.

Se trata de escribir en mayúscula todas las palabras que forman el nombre excepto la primera.

Esta convención se suele utilizar en las variables de lenguajes orientados a objetos como C# o en PHP, siempre que este se utilice siguiendo el paradigma de programación orientada a objetos (POO).

Pero ¿y si escribimos la primera letra también en mayúscula?

Imagen de un camello con las palabras Pascal Case y Upper Camel Case, todas juntas pero en mayúscula.
El camello UpperCamelCase, PascalCase para los amigos, se diferencia del camelCase en que la primera palabra que forma el nombre también se escribe con mayúscula inicial. De ahí que una de las maneras de denominar esta convención sea UpperCamelCase.

¡Seguro que te recuerda a las redes sociales!

Muchos utilizamos esta convención también para los hashtags: #PonUnTraductorEnTuVida.

Además, es un recurso muy utilizado en nombres corporativos y marcas comerciales, como MasterCard, AliExpress o CaixaBank.

En programación, se suele utilizar para las clases o en ciertos lenguajes de programación como Pascal, de donde recibe el nombre de PascalCase.

SNAKE_CASE, kebab-case y Train-Case

Fíjate en las URL de las páginas en las que entres a partir de ahora, porque vas a reconocer estas convenciones que te presento a continuación.

Imagen de una serpiente con la palabra snake guion bajo case.
La serpiente SNAKE_CASE no puede ser más descriptiva: palabras separadas por guiones bajos.

Esta convención tiene distintas variedades (en minúsculas, en mayúsculas…), pero siempre se denomina de la misma forma.

Se suele utilizar en C y en Python, siempre y cuando se siga una programación estructurada que recomiende esta convención de nombres.

Imagen con varias brochetas que kebab con la palabra kebab guion medio case.
La convención más sabrosa de todas: kebab-case.

Cuando las palabras se colocan separadas por un guion y en minúscula, eso es usar la convención kebab-case.

Imagen con una vía y un tren antiguo con la palabra Train, con la te mayúscula, guion medio y Case, con la ce mayúscula.
Las palabras, como vagones de tren: Train-Case.

Train-Case es una variación de kebab-case, pues la única diferencia es que cada una de las palabras empiezan en mayúscula.

¿No te suena de nada esta estructura?

Pues la has visto millones de veces, mira: Coca-Cola.

¿Se te ocurren más ejemplos? Déjamelos en los comentarios ⌨.

Ejemplo de traducción desde el código

A continuación, os muestro un ejemplo de código ficticio (algo absurdo, pero sencillo) para que veáis algunos de los conceptos anteriores en práctica.

Ejemplo de código con las convenciones descritas anteriormente.
Se trata de un fragmento de código en PHP que recoge el nombre y el apellido del cliente para que, posteriormente, en pantalla los muestre de una determinada manera.

Primero nos pide que insertemos el nombre y luego los apellidos para que en pantalla nos devuelva la información de la siguiente manera:

Customer: Cristina Lanuza

Pongamos que en un encargo de localización te encuentras con este fragmento de código, ¿cómo lo traducirías?

Puede que tu primer impulso sea traducir las palabras que conoces, incluso usando la misma sintaxis, como FormatoDelCliente, NOMBRE_PÚBLICO_DEL_CLIENTE, nombreDePila, apellidos… Esto sería un error por muchos aspectos y os aseguro que nada funcionaría, así que sigue leyendo 👇.

En este caso, debe traducrise únicamente la información marcada en verde de la siguiente manera:

public const PUBLIC_CLIENT_NAME = 'Cliente';

$name = readline('Escribe tu nombre: ');

$surname = readline('Escribe tus apellidos: ');

Esto se vería en patalla de la siguiente manera (marco en rojo los datos que escribiríamos a modo de ejemplo después de ejecutar el código):

Escribe tu nombre: Cristina
Escribe tus apellidos: Lanuza
Cliente: Cristina Lanuza

No obstante, como digo, este es un ejemplo algo absurdo y no es un caso real. Desarrolladores y personas con conocimientos de programación, no os alteréis.

Por lo que respecta al resto del texto…

Lo más seguro es que no tenga ningún sentido traducir las variables y las constantes de un código y, por ello, a menos que el cliente te indique lo contrario: déjalo como aparece en el original.

Traducir también es saber qué hay que dejar como el original y qué no.

Importante: Si tienes dudas, pregunta al cliente. Y si necesitas localizar tu producto, pon a un traductor en tu vida que ofrezca este servicio de localización.

¿Te han parecido curiosos los nombres de estas convenciones?

¿En qué otros casos te has encontrado con palabras escritas de esta manera?

Déjamelo en los comentarios ⌨.

Y si quieres saber para qué más te puede servir aprender localización o programación, te invito a que leas el artículo que escribí confesándote que este blog es posible gracias a que aprendí más lenguajes.

¡Nos leemos!

lanuzacristina.com

¿Te ha gustado este artículo?
Entra en mi sitio web y conoce los servicios lingüísticos que ofrezco 👩‍💻.

comments powered by Disqus