Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

¿Y tú cómo pones las llaves cuando programas?

Cuando aprendes a programar en lenguajes con una sintaxis similar a C, uno de los aspectos más insignificantes desde el punto de vista práctico pero más relevantes desde el estético, es la situación de las llaves en los bloques de control, para los ejemplos usaremos la sentencia if. En esta entrada vamos a mostraros los estilos más populares.

Forma básica

Estilo Whitesmith (uno de los primeros compiladores de C)

Estilo GNU

Estilo BSD/Allman

Estilo Kernighan&Ritchie/Kernel

¿Y tú qué estilo usas?

  • null

    Forma básica para una sola instrucción.

    Por lo general BSD (claro y legible a costa de meter una línea más).

    Salu2.

  • Jaime

    Kernigan y Ritchie son mis pastores, nada me falta

  • brk

    Kernighan&Ritchie/Kernel

    yeah!

  • AlexSlocker

    Aunque no es que programe demasiado uso Kernighan&Ritchie/Kernel, me parece la más “legible”.

  • Kernighan&Ritchie/Kernel 🙂

  • Kastle

    ¿K&R/Kernel? Me suena a frase de geek elitista de masas.
    Por lo demás estoy con null, la legibilidad que ofrece indentar un bloque entero en la parte interna de unas llaves paralelas es incomparable.Sólo añadir que algunos espaciamos el control de flujo de la condición:
    if (condicion)
    {
    sentencia0;
    sentencia1;
    }

    Un saludo!

  • Kastle

    No se han indentado las sentencias de mi post anterior. Viva el trim() ^^

  • @Kastle: la solución que se suele utilizar en estos casos es usar puntos en lugar de espacios blancos… es algo cutre pero así al menos se desplaza el texto como si se indentara.

  • El estilo Kernighan&Ritchie/Kernel proporciona la suficiente legibilidad sin que el número de lineas de código se dispare.

  • Pensé que nadie usaba Kernighan&Ritchie/Kernel Visual hace lo suyo, ya ni me fijo, si me fijo lo hago al estilo K&R.

    Besos.

  • Pingback: Microsiervos | Linkeando()

  • Vaya! Veo que hasta la forma de escribir tiene nombre! Pues yo uso todas esas formas, según qué y según cuando. Supongo que una mezcla según la complejidad de las sentencias y mi estado de ánimo 🙂

  • Pingback: { El eterno cuatrilema } | Noticias de tecnología()

  • Gustavo Alberto Lara Gómez

    Para mi criterio me parece mejor BSD/Allman, mis razones para no usar las demás son las siguientes (no difamo, solo expreso mis opiniones para ir descartando y quedarme mejor con BSD):
    1 – No uso Whitesmith porque simplemente pienso que el código lógico (en el cual las llaves no califican) es el que debe llevar la identación, el bloque definido a nivel del if, código del bloque definido a nivel del if + tabulación.
    2 – No uso GNU por la razón anterior (o parte de ésta), además de que este estilo genera más columnas en el código (lo cual aumenta de manera exponencial si son muchos bloques anidados), lo cual puede ser molesto e incluso se considera una mala práctica (a menos que el proyecto requiera líneas muy largas, como Strings, etc.).
    3 – No uso K&R/Kernel porque alinear las llaves en una sola vertical es simple y llanamente más cómodo de manera visual, en BSD encuentras una llave, avanzas mil líneas hacia abajo sin quitar la vista de esa vertical, y listo, te topas con con la llave de cierre. Una razón que hasta cierto punto considero válida (y la cual dan la mayoría de quienes prefieren K&R) es que te ahorras una línea al subir la llave de apertura al nivel del if/clase/ciclo/etc, “No me gusta tener una línea que no sirva para nada” me han dicho, sin embargo siguiendo esta lógica entonces estas personas deberían programar así:

    if (…) {

    … }
    cosa que no es muy atractiva, lo sé, sin embargo mi razón principal sigue siendo la primera.
    Saludos, gente!

  • Gustavo Alberto Lara Gómez

    Exacto.

  • Gustavo Alberto Lara Gómez

    jajaja buena esa.

  • Gustavo Alberto Lara Gómez

    De verdad nadie? Que buena autoestima tienes 🙂 Tal vez te refieras a nadie de tu oficina.

  • Gustavo Alberto Lara Gómez

    Te comprendo amigo, en la universidad me tocó hacer un compilador desde cero, desde diseñar el léxico, hasta la generación automática del ensamblador para el .exe, toda una aventura 🙂

  • Gustavo Alberto Lara Gómez

    Por que los odias? Pregunta curiosa.

  • Mago Marlon

    Con respecto a la 3ra razon, en este caso K&R/kernel si usa la llave de la ultima línea para algo. Y es para delimitar el cierre del bloque a la misma altura de la apertura. Imagina que tienes otros if anidados, no habria manera de saber donde cierra el bloque.

    Ahora la primera llave debajo del if, si es un mal gasto de línea porque ya la identacion del if indica apertura de cierre.

    En cualquier caso, que viva los dos puntos (:) de python jeje

Leer entrada anterior
Sobremesa

Cerrar