Entrevistamos a Francisco M. González, malagueño y desarrollador que nos hablará sobre Código limpio: Porque ayer escribiste «legacy code».
¿Podrías presentarte brevemente? ¿A qué te dedicas y cuáles son tus aficiones?
Me gusta definirme como malagueño, coleccionista de cómics y artesano de esto del software.
Actualmente me dedico a construir cosas en Ciklum, y tengo la gran ventaja de que la programación es también una de mis aficiones, junto con mi pasión por los cómics, y lo que últimamente me ocupa más tiempo, mis hijos.
Twitter: @fmgonzalez76
¿Tu más preciado comic? ¿La joya de la corona de tu colección?
Mi gran problema es que gasto de todo tipo de géneros y orígenes, así que depende del día te podría decir que mi primera edición del Regreso del Señor de la Noche, un Sir Tim O’Theo de Raf, el Mondo Lirondo de La Penya, el Valerian de Christin y Mezieres, el Sandman de Gaiman, o el Spirit de Eisner, pero en un día normal suelo decantarme por el V de Vendetta de Moore y Lloyd. Una de mis joyas es el primer número de V de Vendetta firmado por David Lloyd.
¿De qué hablarás exactamente en tu charla? ¿Porqué ese tema?
Cuando llevas algún tiempo en esto de picar código, más de una vez te ha tocado lidiar con legacy code (una forma elegante de denominar el código que no has escrito tú). Con el tiempo y a base de leer mucho código, te das cuenta de que dejar tras de ti un código lo más limpio posible es un ejercicio de profesionalidad. Si nos consideramos profesionales y si queremos mejorar como tales, debemos tener claros una serie de conceptos básicos que, algunas veces por imposición y otras por desconocimiento, tendemos a obviar.
En la charla pondré sobre la mesa algunos de estos conceptos, y planteando su importancia en nuestro día a día como programadores. No quiero dar un listado de normas a seguir sin más. Me gustaría mostrar ejemplos prácticos que todos hemos visto, que usamos a diario, para que nos preguntemos el por qué de su uso y de las posibles opciones. Que al menos ejerzamos la responsabilidad de cada opción de forma razonada y profesional.
¿Se valora lo suficiente la calidad del código en el mundo empresarial?
Es difícil ver en según qué empresas esa puesta en valor de la calidad del código. Pero también creo que es nuestra labor saber enfocar que esa calidad no se refleja únicamente en desarrolladores menos estresados y felices con su último refactor, sino también en eficiencia y en costes de mantenimiento. Y ese es un enfoque que cualquier empresa entiende.
Aunque cada vez son más las empresas que empiezan a conocer la terminología y a aplicarla en sus procesos de selección, es importante que además de conocerlos se pongan en práctica. Las empresas que hacen especial hincapié en estos puntos son sitios en los que realmente merece la pena trabajar, y en los que generalmente los desarrolladores son valorados por este plus de profesionalidad.
¿Puedes contarnos alguna anécdota sobre código sucio/oscuro que has sufrido o vivido?
Hace ya algunos años me encontraba con un código que me parecía a todas luces horrendo: esa tabulación, esos nombres de variables, ¿¡no está en utf-8!? Tenía que conocer el nombre del responsable, sólo para comentar en equipo algunos puntos de mejora, así que busqué en el control de versiones y ahí estaba. El autor había sido yo mismo no hacía ni 3 meses. Pero ay, en este mundo en 3 meses se aprende un montón y lo que hoy te parece maravilloso en unos meses será el peor de los legacy code.
También he visto un aplicación en la que el 90% de su valor de negocio se basaba en un único fichero de miles de líneas sin una mísera clase a la que echar mano. Nadie se atrevió a tocar ese fichero en todo el tiempo que trabajé en esa aplicación.
¿Qué quieres conseguir al dar esta charla? ¿Qué esperas?
Espero plantar una semilla de interés. No creo poder condensar en 45 minutos todo lo que el tema puede dar de sí. Pero si alguno de los asistentes se para un momento mientras escribe sus próximas líneas de código pensando en si sería mejor de tal o cual forma, como ya me ocurriera a mí en su día, me daría por satisfecho.
De todos los frameworks que has conocido ¿con cuál te quedarías? ¿Cuál recomiendas?
Los frameworks PHP han dado un salto increíble en los últimos años, debido sin duda a la extensión de composer como gestor de dependencias, de los PSR y de los paquetes de Symfony. Prácticamente cualquier framework que tenga algo que ver con estos tres factores es una buena apuesta para subirte al carro, pero yo ya hace unos años que me quedo con Laravel, por su buena documentación y su excelente curva de aprendizaje. Como microframeworks, aparte de Lumen, también me gusta mucho Slim y me gustaría jugar un poco con la nueva versión, porque hace tiempo que no trabajo con él.
¿Y tu lenguaje de programación favorito?
Hoy por hoy me siento muy cómodo con PHP.
¿Cuál es tu editor o entorno de desarrollo habitual?
No me gusta atarme mucho a un IDE concreto, pero debo reconocer que últimamente el PhpStorm me ha convencido. En casa suelo usar también Atom. En cuanto a entorno, trabajo con virtualización con vagrant, concretamente con homestead (un vagrant adecuado a Laravel), aunque también he hecho cosas con docker.
¿Qué proyecto de software libre que no sea muy conocido y consideres especialmente útil recomendarías?
Últimamente ando probando vue.js y no sólo me parece una buena alternativa a los frontend (ya se, otra más), sino que también me parece muy interesante el modelo de monetización que ha planteado su creador, con un patreon.
¿Cuál es tu proyecto de software libre favorito?
phpBB, un foro open source en PHP. Es antiguo (u obsoleto, no se hoy día que ya no se usarán ni foros), pero bicheando con sus módulos fue con lo que empecé con PHP, y a la larga es la que me ha traído a donde estoy hoy día.
¿Desde cuando conoces el software libre y cuál fue tu primera experiencia con él?
Mis primeras experiencias con software libre fueron con un foro en phpBB que llevaba con unos amigos, y ya profesionalmente tuve que integrar diferentes herramientas open source, principalmente en PHP: Drupal, GLPI, Moodle,… incluso una de crowd founding (Goteo).
¿Cuál es tu principal motivación cuando aportas al software libre?
Supongo que hay una sensación más de devolver que de aportar. Creo que mía sólo hay por ahí una integración Single Sign-On, y un fix muy simple de un módulo Drupal. Pero creo que la aportación es también la participación en el debate, aunque sea planteando preguntas.
¿Estuviste en la edición anterior de la conferencia OpenSouthCode?
Sí, atendí alguna charla y tuve la oportunidad de conocer a futuros compañeros de trabajo. ¡No se puede decir que no fue provechosa!