Hoy me pasé horas hurgando código. Resulta que quería cambiar un par de cosas de la home de uno de nuestros sitios, así que me puse a analizar cómo cambiar cada componente de los que arman la home.
El detalle es que el sitio está programado sobre Symfony, framework que no usé en mi vida. Por lo que estuve leyendo en los últimos tiempos, se ve muy bien, pero claro, si uno no lo maneja se le complica bastante agarrarle la mano a la primera.
Cuestión que me puse a rastrear todos los archivos que tenía que tocar para cambiar los componentes. Cuando los encontré, intenté entender el código. Me encontré con Propel, que tampoco lo había visto en mi vida -yo, en mi ignorancia, buscaba el SQL viejo y peludo… cosa que no iba a encontrar dentro de la symfonyada
Probé cambiar varias cosas, logré unas mínimas pero no me convencía… Lo que yo quería no lograba hacerlo. Rompí, volví para atrás, rompí de nuevo, volví una vez más, modifiqué, hice una gilada y rompí dos, y así hasta que me di cuenta de que el día se estaba acabando y yo seguía con la freaking home.
En ese momento pensé: “pero a ver, ¿cada cuánto voy a necesitar cambiar esto? Si igual no voy a hacer un ABM para manejarlo desde el backend, ¿qué sentido tiene armar un componente completo para algo que va a ser prácticamente estático?”
Y ahí apareció en mi mente el diablillo que me susurraba “hardcodealo y listo”.
No me pude resistir: lo hardcodeé. Lo que era un componente que traía todo dinámicamente, lo convertí en un componentito estático minúsculo, cerrado, hardcodeado y que renderea en media millonésima de segundo (dato inútil, si el otro también iba a las chapas
). Claro, es un código estático y nada elegante, pero no le hace mella a nada, muestra lo que debe mostrar y ya.
Me quedé pensando entonces: muchas veces uno se mata programando cosas que en realidad son innecesarias. El miedo a hardcodear de los programadores es el mismo miedo a usar tablas de los diseñadores. A veces, algo que hardcodeando se solucionaría en medio minuto causa tanto terror en un programador que termina haciendo código inútil. Como cuando un diseñador reinventa la rueda creando una tabla con divs, sólo porque no se atreve siquiera a tipear “table”.
Ahí están mis archivitos con componentitos estáticos. Hechos en medio minuto.
Y me duermo con la conciencia tranquila, sépanlo, porque no rompí la lógica de nada, no tiré el MVC a la basura ni generé incoherencias de ningún tipo. Sólo me dejé llevar por la tentación de no escribir código al divino botón.
A veces hardcodear sí que rinde. Lo único vital es saber cuándo.
One comentarios
… O será que este es el consuelo de los que somos malos programadores