Costumbres del código: Uso de las llaves en programación { }
Publicado el Miércoles, 28 de mayo de 2008Voy a analizar algunas de las costumbres que tengo al programar. En ésta ocasión voy a hablar de las llave. Las llaves { }, un tipo de paréntesis, usados en pares para separar nuestro código.
A mí me queda más cómodo de leer el código cuando escribo las llaves en la línea donde termina la condición de un if o while, o la declaración de una función:
Por ejemplo:
if(condicion){ pasa algo; } |
Ó
int funcion(int algo){ return algo+1; } |
Ahora, el maldito IDE que uso en el trabajo cambia automáticamente el código, y cuando escribo un if, una función, o lo que lleve las llaves, me indenta así:
int funcion(int algo) { return algo+1; } |
Ésto me hizo pensar, que seguramente el estándar para el IDE, es con las llaves de esa manera. Por lo que probablemente así como el uso de llaves, deben haber miles de costumbres que uno va adquiriendo al programar, que pueden coincidir con la mayoría o no.
Así que le pregunto a ustedes los lectores, ¿les queda más cómodo leer así? Es cuestión de costumbre, pero ¿no es un desperdicio de líneas?
Miren cómo queda un if con else:
if(condicion){ pasa algo; } else{ pasa otra cosa; } |
¿Qué otras costumbres se agarra uno con la sintaxis y programando? Porque no siempre aprendemos con el estándar...
Te puede interesar el seguimiento de éste post en
Costumbres del código: Uso de las llaves en programación { } - Parte 2
28 comentarios en este post
Feed de comentarios-
Costumbres del código: Uso de las llaves en programación { } - Parte 2 | Picando Código |
28 mayo. 2008 - 21:12
[…] Mi blog sobre programación, tecnología, web, software libre, videojuegos y más « Costumbres del código: Uso de las llaves en programación { } Wed May […]
-
Costumbres del código: [Lenguaje del teclado] | Picando Código |
15 junio. 2008 - 21:22
[…] (en vez de . y “Shift 7“). También los corchetes rectos y las llaves, de las cuales mucho hablamos… La arroba se hace con Shift 2, más práctico también que “Alt 2” o […]
Blaxter 28 mayo. 2008 - 04:21
Al inicio de los tiempos, también programaba sin salto de línea para las llaves, pero después me empezó a gustar más ponerlas con salto. Es un desperdicio de líneas, si, pero nada es suficiente para la legibilidad que es más importante que las líneas.
Marto 28 mayo. 2008 - 04:28
coincido plenamente con Blaxter. Para mi es mucho mas copado usar llaves con saltos de linea. Es mas y tambien en c por ejemplo pongo lineas en blanco entre distintos tipos de “segmentos” de codigo, llamese, declaracion de variables, un if nuevo, un while nuevo, for, etc.
Calculo que todo eso lo hago luego de ver tanto codigo fuente ilegible. Que se yo. Va en gustos tambien.
Omar 28 mayo. 2008 - 05:26
Estoy muy de acuerdo con Marto y Blaxter, yo programo en el segundo estilo (antes no), pero ahora me gusta más, más legible y a parte, si los IDE lo tiene por defecto (no sólo VS) será por algo.
Saludos¡
fernando 28 mayo. 2008 - 05:39
Baxter, Marto y Omar:
Gracias por compartir su experiencia. A mí me resulta hasta más cómodo leer el código cuando lo escribo sin saltos de línea. Sí agrego un salto de línea entre el fin de una función y la declaración de la otra:
void algo(){
}
void otracosa(){
}
Es interesante conocer sus puntos de vista. Realmente no esperaba que más gente escribiera de esa forma.
Pero bueno, eso demuestra que para gustos, colores. No es algo que afecte el resultado final de todas formas.
Seguiré investigando las costumbres entonces para conocer más…
Saludos y gracias por comentar
DonPiluso 28 mayo. 2008 - 05:49
Cuando empecé a estudiar PHP, en los códigos de ejemplos que aparecían en libro no siempre usaba las llaves para las condiciones, cuando los pasaba para probarlos siempre las agregaba.
Cuando comencé a programar por mi cuenta los seguí usando, si después de un tiempo tengo que revisar un script para realizar algún cambio es mejor que sea fácil de leer.
La otra costumbre que me agarré es la de tabular las condiciones y funciones. Por ejemplo:
if(condición){
echo “tal cosa”;
}else{
echo “tal otra”;
}
Un abrazo
Lino 28 mayo. 2008 - 09:14
Personalmente prefiero la opción en la que se abre la llave en una nueva línea. De todas formas, como para gustos colores, de ahí la posibilidades de configuración del editor del Visual Studio. No tienes más que ir a Tools->Options->Text Editor y ahí configuras el formateo del código para cada tipo de lenguaje de forma que tan solo tienes que indicarle que no te introduzca una nueva línea para las llaves.
Un saludo.
FaCuZ 28 mayo. 2008 - 10:23
Yo soy de los que buscan la menor cantidad de lineas posibles, una linea con un { no sirve para nada! Muchos dicen que se entiende mejor el codigo pero para eso esta el tab. Cada bloque leva un tabs mas que el anterior. Asi se entiende perfectamente el codigo sin tener que estar media hora para encontrar algo de tantas lineas inutiles.
fernando 28 mayo. 2008 - 10:45
DonPiluso y FaCuZ, de los míos 😛
Hay que ahorrar la mayor cantidad de líneas como sea posible! Lástima que WordPress no me deja mostrar las tabulaciones, pero sí, la idea es que todo quede correctamente tabulado, cosa de orientarnos.
Lino: Gracias por el tip. Supuse que en algún lado estaría eso. De todas formas me queda poco con el innombrable… Pero lo voy a personalizar.
Pablo 28 mayo. 2008 - 12:53
Yo también prefieron la opción de utilizar la llave en una nueva línea. Para mi gusto, es mucho más fácil de leer.
if (condicion)
{
…. hace algo;
}
else
{
…. hace otra cosa
}
es mucho más fácil de leer que:
if (condicion){
…. hace algo;
}else{
…. hace otra cosa
}
Está como “muy aglutinado todo”, ni hablar si tenés una buena cantidad de línes dentro de cada bloque.
Edder 28 mayo. 2008 - 13:22
Estoy de acuerdo con FaCuZ, es bueno ahorra lineas además en Javascript, como en C y PHP ayuda mucho leer el codigo con la llave si el salto de linea más que todo en códigos complicados.
kbza 28 mayo. 2008 - 13:37
agree con la mayoría… yo soy de poner la llave en una linea aparte también…
sobre gustos no hay nada escrito.. en realidad creo que esto sería una flamewar.. jajaja..
y cual es la idea de que el código tenga la menor cantidad de líneas posibles ??.. no sería mejor que fuese mas legible, en vez de que sea una sola línea de 3000 caracteres ? 🙂
saludos
Diego 28 mayo. 2008 - 14:48
A mi personalmente me queda mas comodo asi:
C:
if(condicion){
pasa algo;
}
Tanto en java como en C o PHP, me resulta mas legible. Igualmente en el laburo por un estandar de la emrpesa en C# lo estamos usando asi:
C:
if(condicion)
{
pasa algo;
}
Al fin y al cabo te acostumbras y es lo mismo, pero bueno, cuestion de gustos. Es como decir “me queda mas comodo linux que Windows” o viceversa. Flamewarss
jeje
Saludos bo
Marto 28 mayo. 2008 - 17:39
No entiendo a que se refieren con ahorrar lineas, al menos en lo que respecta a lenguajes compilados, es distinto con interpretados. SI en definitiva una vez comiplado, el codigo en asm no cambia porque le agregues una linea mas en blanco o no.
Y con respecto a la cantidad de memoria que ocupa un archivo en disco, no creo que estemos en esta epoca, desesperados por ahorrar, mas con los nuevos discos que estan saliendo en la actualidad de 500 gb o mas.
Repito, siempre refiriendome a lenguajes compilados.
Leandro 28 mayo. 2008 - 19:42
Yo siempre puse las llaves arriba.
No por ahorrar lineas, sino porque me parece más prolijo.
Es más siempre que agarro un Visual Studio lo primero que le configuro es poner las llaves arriba.
Pero parece que somos minoria en esto.
dm 28 mayo. 2008 - 19:46
Yo hacía lo mismo que Fernando con el código, no me gustaba ver una línea ahi solo con una llave abierta, pero a medida que las funciones que uno hace son mas complicadas me parece que queda mucho mas prolijo con esa línea pero bueno, es cuestión de gustos…
Menda 28 mayo. 2008 - 20:04
Yo idento de la siguiente manera:
if (condicion) {
blablabla;
} else {
blablabla2;
}
Para trozos de codigo grandes como funciones y clases si idento así:
class Usuario
{
}
function hola ()
{
}
Esto lo hago así porque muchas veces buscamos funciones en el código y pasando código rápidamente no se encuentran ni se visualizan bien. Así sí se destacan.
Y si es un if simple y que no requiera mucha comprensión:
if (condicion) printf (“yes!”);
Y otra manía mía es siempre dejar un espacio antes de poner un paréntesis, y no como hace la mayoría de la gente:
function hola();
eduardomatica 28 mayo. 2008 - 20:31
Yo idento de la segunda manera, pongo las llaves en nuevas lineas, pero reconozco que antes lo hacia como lo haces vos ahora fer.
Se gana mucha legilibilidad, sobre todo para codigos grandes (osea todos).
Tengo un articulo en mi blog sobre los distintos tipos de indentacion 😉
Salu2.
fernando 28 mayo. 2008 - 21:13
Gente:
Muchísimas gracias por sus invaluables aportes.
Respondo a sus comentarios en otro post:
Continuación de Costumbres del código.
Saludos a todos y gracias por comentar!
Marcelo 5 octubre. 2013 - 19:44
Mmhhmh a mi me parece mejor que sea como el IDE que mencionaste, ya que asi te das cuenta mejor si te falta alguna llave que olvidaste, bueno solo es por mi parte talves a otros les gusta como el anterior
Raziel 6 octubre. 2013 - 18:10
para mi es mejor que este en una nueva linea
guzman6001 18 noviembre. 2013 - 11:38
if(estoyProgramando())
{
identoAsi(); // Resulta más fácil encontrar la pareja de cada llave cuando son muchas.
}
BAYRON 25 junio. 2014 - 10:18
para mi es mejor …. las llaves, de hecho estaba investigando esto .
charly 16 julio. 2017 - 16:55
gracia por elresumen me sirvio mucho
Osvaldo 22 septiembre. 2018 - 16:22
Buenos argumentos, me gusta tu idea, tienes razón, se me hace más cómoda la estructura de la primera imagen
beatmaster 4 mayo. 2019 - 16:25
Bueno leo que es una publicación ya de hace tiempo a lo mejor a estas fechas ya hasta cambiaste de parecer.
Cuando escribes códigos pequeños digamos de máximo unas 50 a 100 lineas de código podríamos decir que es irrelevante la identacion que uses, así como si el corchete abre en la misma o en otra linea, podemos decir que es cuestión de gustos.
El problema viene cuando los proyectos son enormes y ademas es un proyecto “colaborativo” osea intervienen mas de un programador, aquí las cosas ya no pueden ser por gusto y por aquí es donde comienzas a diferenciar de un programador que ya es experimentado a un novato, a uno que a la larga podrá tener un crecimiento profesional del que se quedara estancado.
En la programación leemos mas de lo que escribimos y sobre todo como ya mencione en proyectos grandes en donde mucho código tal vez no lo escribiste tu es de suma importancia que el código sea estándar que no te cueste trabajo leerlo para poder editarlo y esto incluye principalmente que el código este ordenado, bien identado, con variables y nombres de funciones que ayuden a entender que es lo que hace el código y ya para profesionales que el código este bien comentado.
El hecho de abrir los corchetes en una nueva linea, y en si darle a cada linea una importancia propia osea no caer en el error de escribir varias instrucciones en la misma linea, facilita operaciones de debug, de lectura de código y ademas permite que muchos IDE te brinden herramientas muy útiles como el colapsar secciones de código gracias a que el código esta bien estructurado, pero definitivamente la parte mas importante el factor humano, un programador no debería tener que estar “entendiendo” o separando código encimado para poder localizar alguna variable o función.
Una cosa importante, NUNCA te “ahorres” lineas de código, un código no es mejor ni peor por su cantidad de lineas de código, todo eso de la obsesión con las lineas de código viene de la programación prehistórica, cuando las computadoras tenían recursos muy limitados, en aquel tiempo se buscaba “gemas” de programación (los mas veteranos seguro recordaran) en donde una función de código hiciera un propósito y toda ella cupiera en una sola pantalla del editor de código y estamos hablando de las resoluciones donde por mucho te dejaba ver unas 80 lineas de código entonces eso provocaba que no se “desperdiciara” una linea en un corchete y la pusieras en la misma linea de la declaración, o cuando tenias varias operaciones simples las pusieras en la misma linea porque claro era un desperdicio toda una linea de código para un incremento de una variable por ejemplo variable++; hoy en día esto ya no es un problema, las computadoras o celulares ya no tienen las limitantes que tenían los dispositivos hace 40 años, por lo que no te limites en cuanto al numero de lineas, lo importante es la funcionalidad si en algún futuro le dedican un tiempo a la optimizacion pueden ahí si descartar funciones o lineas necesarias pero eso siempre debe ser posterior a la funcionalidad.
Y bueno espero les sirva de algo este comentario, algo tan simple como el estilo de escritura de código en un futuro puede ayudarlos o perjudicarlos, ayer justamente liquidamos a una persona en mi trabajo por no poder escribir código “limpio”, se empeñaba en hacer código enredado con variables sin sentido, amontonado, sin identar, sin comentar, bueno algo desastroso que nunca quiso mejorar y despeas de 3 años y no mejorar se tuvo que ir.
Aquiles Viloria 13 abril. 2024 - 13:30
Se puede colocar la llave de cerrar } en la misma línea?