Buen código y comentarios (y no los del blog)

Jueves 19 de Abril de 2007

Programar es más que código; es algoritmos, investigación, comunicación, testeo… y recién al final código, pero el código sigue siendo importantísimo. El código, además, se lee más veces que las que se escribe (para agregar algo es necesario entender como funciona —no todo, pero parte de— el programa). Por eso es necesario escribir código entendible, y recién cuando no se pueda, poner comentarios.

Lo primero es estandarizar lo más posible: no importa tanto qué estilo usamos (mientras no sea pésimo, y mejor si usamos uno que ya sea más o menos estándar), sino que lo mantengamos consistente en todo el código. Ejemplos buenos son el Camel Case, como en Java: imprimirValoresDeResultado, o separar con guiones bajos: imprimir_valores_de_resultados. Un ejemplo malo es usar siglas o abreviaciones (al menos las que no sean estándar; XML está bien), como imprCntd (contenido, contenedor, continuado…¿?). Con IDEs buenos, la longitud de los nombres no es importante, porque incluyen tab-completion.

También hay que mantener la consistencia en qué reciben y qué devuelven las funciones, y para cada una función agregar al menos un comentario: lista de entradas, salida, y efectos secundarios. No es necesario explicar cómo funciona la función (valga la redundancia), siempre que se conozcan esos tres elementos.

Y por último los comentarios que suelen ser usados de forma incorrecta más comúnmente: los que van al lado del código. O no se ponen, o se ponen demasiados. Es completamente inútil poner a++; // incremento a por 1 ¡Tardo más en leer el comentario que el código!

Igualmente, si estás por usar un algoritmo obscuro, o particularmente extraño, tomate el tiempo de agregar un par de líneas para explicar qué hace el algoritmo. En el momento podrías pensar “bah, ¿para qué, si sé lo que hago?”, pero cuatro meses después te encontrás con que te quedás preguntando por qué hiciste lo que hiciste, desechas el código para hacerlo de nuevo (y esta vez entendible)… y te das cuenta que era exactamente lo mismo.

Ah, y para cerrar todo esto: nunca, jamás, never ever, un comentario es excusa para usar nombres poco descriptivos para las funciones y variables: ¿Para qué vas a poner int a; //numero de vidas del jugador, si podrías poner int vidas; y hacer tu código mucho mejor (y eventualmente tu vida más fácil)?

Programá mucho, programá bien, y vas a ser un mejor programador…

Si te interesa lo que tengo para decir, seguime en Twitter.

Dejá tu comentario, o un trackback desde tu sitio. Podés seguir la conversación con el Feed de comentarios de este post.

Comentá:

Entrá con tu cuenta, registrate, o escribí tus datos:

XHTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">