Nos gusta demasiado la pornografía

Es innegable que a casi todos los que nos dedicamos a esto del desarrollo de software nos gusta demasiado la pornografía. Nos gustan las cosas explícitas, directas, sin preámbulos. No tenemos tiempo que perder en historias, queremos acción. Por supuesto, no me refiero a este tipo de pornografía, aunque también habrá a quién le guste, sino a la pornografía de código fuente.

Sentimos una curiosidad natural por el código. Eso es bueno y natural. Tratar de entender cómo funcionan las cosas es una de las características innatas del ser humano (al menos de algunos) y en nuestro caso eso pasa por ver el código fuente.

Leer código fuente es una parte importante de nuestra formación como desarrolladores, especialmente cuando se trata de código fuente de otros. Eso nos permite comprender cómo hacer las cosas, aprender nuevas técnicas y adquirir nuevas ideas.

El problema es que a veces queremos demasiada inmediatez, nos saltamos todos los preliminares y vamos directamente al grano, es decir, al código. Nos perdemos la historia y, con ella, el contexto.

A veces el código por si mismo no vale de mucho. Sin comprender las motivaciones que hay detrás de ese código, sin entender el contexto en que está escrito, los problemas que trata de solucionar y la forma en que lo hace, podemos acabar usándolo de forma incorrecta y meternos en líos que luego pueden ser difíciles de resolver.

Esto se hace especialmente patente cuando tratamos de aplicar metodologías de diseño o arquitecturas novedosas, que están de moda, suenan muy bien y creemos que son la forma de hacer las cosas bien. Todas esas siglas que nos encantan: DDD, CQRS/ES, ORMs, IoC… al final nos pasamos más tiempo hablando de código que entendiendo cuándo y por qué se debe usar cada cosa.

Muchas veces al intentar explicar TDD, BDD o cualquier otra técnica empezamos por describir la librería de turno, por enseñar el código que debemos escribir para emplear esas técnicas, en lugar de empezar… por el principio. Es necesario empezar explicando los problemas que pretenden solucionar, los principios en que se basan, las ventajas que aportan.

Una vez comprendido el contexto, el código viene sólo. Seamos realistas, la mayoría del código que escribimos en nuestro día a día es muy simple. La complejidad está en la interactuación de las distintas partes del código, ya sean clases, funciones o lo que sea que use el lenguaje en el que estes programando. El porqué de esa organización es complicado de apreciar sólo leyendo el código.

La próxima vez que vayas a copiar código que hayas visto por ahí, intenta antes entender para qué se escribió y por qué se escribió así. Date un respiro, no hace falta ir al grano directamente. A veces una película con un poco de guión puede resultar más satisfactoria que una que se salta todo para ir directamente a la acción. Como dice el tagline que puse en este blog desde el primer día, el código importa, pero el contexto más.


3 comentarios en “Nos gusta demasiado la pornografía

  1. Pingback: Fachadas estáticas para tratar con estado global

  2. ajajjaajjaaja la pornografia, bueno si tienes razon nos vamos directo al charco de lodo en lugar de entender como fue que se formo, lo bueno que ya estamos entendiendo que debemos analizar el contexto y el dominio de la aplicacion y por que se hicieron de cierta manera las cosas, en vez de llegar ver el codigo criticar que lo pudo haber hecho mejor de tal forma, pero sin entender 100% el contexto pero con el tiempo vamos entendiendo que debemos entender primero para que se hizo asi y luego pinchar codigo :)

  3. bueno si tienes razon nos vamos directo al charco de lodo en lugar de entender como fue que se formo, lo bueno que ya estamos entendiendo que debemos analizar el contexto y el dominio de la aplicacion y por que se hicieron de cierta manera las cosas, en vez de llegar ver el codigo criticar que lo pudo haber hecho mejor de tal forma, pero sin entender 100% el contexto pero con el tiempo vamos entendiendo que debemos entender primero para que se hizo asi y luego pinchar codigo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>