Ir al contenido

Desarrollo basado en copiar y pegar

·479 palabras·3 mins
Programación
Alejandro Duarte
Autor
Alejandro Duarte
Alejandro Duarte es un Ingeniero de Software, escritor publicado y galardonado. Actualmente, trabaja para MariaDB plc como Ingeniero de Relaciones con Desarrolladores (Developer Relations Engineer). Comenzó su trayectoria en programación a los 13 años con BASIC en una rudimentaria pantalla negra, para lugo rápidamente transitar a C, C++ y Java durante sus años académicos en la Universidad Nacional de Colombia. Trasladándose primero al Reino Unido y luego a Finlandia, Alejandro profundizó su participación en la comunidad de código abierto. Es reconocido en los círculos de Java, acreditado con artículos y videos que acumulan millones de vistas, y presentaciones en eventos internacionales.

Nota: Traducido de la versión original en Inglés.

Teclado de copiar/pegar

Esta es la historia de un tal Sr. W. J., un desarrollador amable y simpático que trabajaba para una empresa de TI en una ciudad cosmopolita. Él estaba a cargo de otros cinco desarrolladores. Yo era uno de ellos.

Probablemente era mi segundo día en la empresa y me asignó una tarea de programación. Estaba trabajando en ella, tratando de descifrar de qué diablos trataba ese software que iba a ayudar a mantener durante los próximos meses. Entonces, el Sr. W. J. quiso “pedir prestado mi cerebro” por un segundo. Como no lo estaba usando, se lo presté. “¿Crees que ésta es una buena implementación?” preguntó el Sr. W. J. desconcertado, mirando la pantalla, luego a mi cara, de nuevo a la pantalla y luego al infinito. “Ummm… Yo diría…” apenas logré balbucear cuando me interrumpió. “Creo que también puedo hacer esto…” dijo y de inmediato comenzó a seleccionar toda una clase con cien líneas de código o más. Copió el código. Pegó el código. Lo pegó en un archivo vacío, cambió ligeramente el nombre de la clase e hizo algunas modificaciones en un par de líneas. Ejecutó la aplicación, probó algo en la pantalla y dijo “gracias” sin rastro alguno de ironía.

No pude resistir mi curiosidad. “Entonces… ¿vas a subir ese código?” pregunté desconcertado, mirando la pantalla, luego a su cara, de nuevo a la pantalla… “¡Sí!” respondió rápidamente sin darme la oportunidad de mirar al infinito. Pensé que sería Algo Bueno™ explicarle que el Desarrollo Orientado a Copiar y Pegar™ es algo Malo™ a veces. Explicarle a un desarrollador junior por qué esa técnica debería evitarse no es lo mismo que explicárselo a tu jefe*, así que decidí contarle al Sr. W. J. una historia sobre copiar y pegar en el desarrollo de software.

“Es curioso”, empecé a decir. “Hace algunos años, estaba trabajando en una empresa e hice algo como lo que tú hiciste”, continué. “Copié una gran porción de código, la pegué en otro lugar e hice un pequeño ajuste”, agregué. “No me di cuenta de que mi jefe estaba ahí cuando me dio una palmada en el hombro y me dijo «no hagas eso de nuevo»”, finalicé de manera convincente**. “¿Por qué dijo eso?” preguntó el Sr. W. J. desconcertado, mirando la pantalla, luego a mi cara, de nuevo a la pantalla. “No sé…” respondí derrotado mientras miraba la pantalla, luego a su cara, de nuevo a la pantalla, y luego al infinito…

* Depende mucho del jefe y del desarrollador junior en cuestión.

** Cambié los roles mientras contaba esta breve historia para ser más empático con el Sr. W. J. ¿Pensaste que yo era un maniaco de copiar y pegar? Creo que el Sr. W. J. lo era. A veces lo vi copiando y pegando identificadores de 2 o 3 caracteres de longitud.

Relacionados

Acoplamiento semántico
·485 palabras·3 mins
Programación
Nota: Traducido de la versión original en Inglés. Code Complete es uno de esos libros que todo desarrollador debería leer.
Comentarios: Un desodorante para disimular los malos olores del código
·274 palabras·2 mins
Programación
Nota: Traducido de la versión original en Inglés. No me malinterpreten.
Comentando rápidamente (on-off)
·125 palabras·1 min
Programación
Nota: Traducido de la versión original en Inglés. He usado esto dos o tres veces en mi vida, pero es uno de esos trucos simples (¿y útiles?