Convenciones de nomenclatura: Camel, Pascal, Kebab y Snake case

akemi-tomioka
akemi-tomioka
Compartir

Una imagen que muestra un código en lenguaje Python

Introducción

Si estudias programación, es probable que te encuentres en todo momento nombrando cosas, como variables, clases, métodos, funciones y mucho más. ¿Pero será que existe alguna convención para ayudar en este proceso de nombramiento?

Un gif de una niña de una animación tecleando freneticamente

Hay diversas maneras de aplicar las buenas prácticas en tu código, una de ellas es la convención de nomenclatura, que son recomendaciones para nombrar identificadores ayudando a que su código sea más limpio y sencillo de comprender, manteniendo un patrón para el lector e incluso proporcionando información sobre la función del identificador.

Además, podemos encontrar otros lenguajes, como Go, que dependen mucho de que conozcas la diferencia entre los casos de uso, ya que la convención utilizada en el nombre también tiene un efecto semántico.

Ahora, vamos a conocer los cuatro tipos más comunes de convenciones de nomenclatura para combinar palabras en una única cadena (string). ¡Hagámoslo!

Camel case

En Camel case debes empezar con la primera letra minúscula y la primera letra de cada nueva palabra subsecuente en mayúscula:

cosasParaHacer
edadDelAmigo
valorFinal

Pascal case

También conocido como "upper camel case" o "capital case", Pascal case combina palabras poniéndolas todas con la primera letra en mayúscula:

CosasParaHacer
EdadDelAmigo
ValorFinal

Snake case

En Snake case, conocido también como "underscore case", se utiliza guión bajo (underscore) en lugar de espacio para separar las palabras. Cuando snake case está en mayúsculas, se le conoce como "screaming snake case":

cosas_para_hacer
edad_del_amigo
valor_final
PRIMER_NOMBRE
LISTA_INICIAL

Kebab case

En Kebab case se utiliza el guión para combinar las palabras. Cuando el Kebab case está en mayúsculas, se llama "screaming kebab case":

cosas-para-hacer
edad-del-amigo
valor-final
PRIMER-NOMBRE
LISTA-INICIAL

Convenciones Java

Java tiene el Java Secure Coding Guidelines, una documentación disponible por Oracle, basada en los patrones de codificación presentados en el Java Language Specification. Es importante destacar que estas convenciones de código Java se escribieron en 1999 y no se han actualizado desde entonces, por lo que alguna información contenida en el documento puede no estar actualizada. Las convenciones más comunes son:

  • camelCase para variables, atributos y métodos;
  • PascalCase para clases, enum e interfaces;
  • SCREAMING_SNAKE_CASE para constantes.
public class Persona{
    public static void main(String[] args) {
        String primerNombre = "Maria";
        int edad = 22;
        double alturaActual = 1.65;
        final String MENSAGE_PATRON = "Hola";
    }
}

Convenciones JavaScript

Se recomienda usar:

  • camelCase para variables, constantes, funciones y métodos;
  • PascalCase para clases.
class ClienteBanco {
    constructor(primerNombre, documentoIdentidad) {
      this.primerNombre = primerNombre;
      this.documentoIdentidad = documentoIdentidad;
    }
  exibirPrimerNome(){
     console.log(this.primerNombre);
    }
}
var clienteUno = new ClienteBanco('Maria', 150);
var clienteDos = new ClienteBanco('João', 70);

Convenciones Python

Python tiene una guía de estilo y estructuración, el PEP8, que proporciona convenciones de codificación para el código. Esto no significa que tu código no funcionará si no sigue las directrices, sin embargo, según el PEP 20 -- The Zen of Python, la legibilidad cuenta.

Se recomienda usar:

  • snake_case para variables, funciones y métodos;
  • PascalCase para clases;
  • SCREAMING_SNAKE_CASE para constantes.
class Persona:
    def __init__(self, nombre, documento_identidad):
        self.nombre = nombre
        self.documento_identidad = documento_identidad
        def exibir_primer_nombre(self):
        print(self.nombre)
        persona_uno = Persona('Alice', '123456789')

Convenciones Go

Los nombres en el lenguaje Go tienen un efecto semántico, la visibilidad de un identificador fuera de un paquete se determina si el nombre comienza con una letra mayúscula o minúscula, por lo que debemos estar atentos con las convenciones utilizadas. Go también tiene una documentación con excelentes consejos para escribir un código claro, el Effective Go.

Se recomienda usar:

  • PascalCase para exportar (accesible fuera del paquete);
  • camelCase para internos (no es exportado).
package nombre
type ExportedStruct {
    unexportedField string
}

Convenciones Ruby

El lenguaje Ruby usa el Ruby Style Guide, una guía de estilo que te da buenos consejos para la escritura del código.

Se recomienda usar:

  • PascalCase para clases y módulos;
  • snake_case para métodos, variables, nombrar archivos y directorios;
  • SCREAMING_SNAKE_CASE para constantes.
class Persona
    def initialize(primer_nombre, documento_identidad)
        @primer_nombre = primer_nombre
        @documento_identidad = documento_identidad
    end
    def exibe_primer_nombre
        @primer_nombre
    end
end
persona_uno = Persona.new('Alice', 123456789)

Tabla

Para ayudarte, consulta esta tabla que muestra las principales convenciones de nomenclatura que abordamos en esta lectura.

Convención Ejemplo
Camel case primerNombrePersona
Pascal case PrimerNombrePersona
Snake case primer_nombre_persona
Screaming snake case PRIMER_NOMBRE_PERSONA
Kebab case primer-nombre-persona
Screaming kebab case PRIMER-NOMBRE-PERSONA

Conclusión

En este artículo, vimos que cada lenguaje tiene sus propias convenciones de nomenclatura. Inclusive, algunas empresas y proyectos adoptan un patrón a seguir, como por ejemplo Google, que utiliza el Google Style Guides, una guía de estilos para ayudar a los desarrolladores que trabajan en sus proyectos de código abierto.

Las particularidades de cada lenguaje de programación pueden hacer que una convención sea más útil que en otro lenguaje, por lo que es importante estar atento a las convenciones utilizadas en tu proyecto y mantener la consistencia con la elegida.

¿Y tú, qué tal si aplicas esas buenas prácticas en tu código? ¡Buen estudio y hasta la próxima!

Foto de la autora

Akemi Alice

Monitora en Alura actuando en la Escuela de Programación con enfoque en Java y estudiante de Informática en el Instituto Federal de São Paulo (IFSP).

Este artículo fue adecuado para Alura Latam por: Bruno Souza

akemi-tomioka

akemi-tomioka

Ver otros artículos sobre Programación

Whatsapp de Alura LATAMNewsletter de Alura LATAMContáctanos
Convenciones de nomenclatura: Camel, Pascal, Kebab y Snake case | Alura Cursos Online