sábado, 9 de agosto de 2014

El diseño interno visto desde fuera

Que tal gente, este es mi primer post y antes de empezar les quiero dar las gracias al equipo de codeamesta ya que ustedes son las espermas que a partir de su perseverancia, inteligencia innata y esfuerzo empiezan a engendrar un buen desarrollo, incrustándose en en el IDE y el compilador para dar como resultado un hermoso código, código que al principio todos miran y dicen que bonito es, pero que conforme pasa el tiempo terceros dicen no manches como es que llegó a estar esto como está, pero lo bueno es que es tarea de nosotros mismos el hacer que este código crezca con la posibilidad de una vida mejor a la de sus antecesores y que al final del camino sea un código de bien y que ayude a la sociedad a lograr su cometido.... ha cabrón como que ya me fui por otro lado, bueno el chiste es que gracias a ustedes por hacerme crecer y creer.

Ahora si empezamos.....

En la semana pasada estábamos en la junta diaria y un desarrollador comentó que ya casi terminaba su tarea que solo le faltaba llenar un POJO necesario para crear estadísticas y que era responsabilidad de otro crear, en ese momento sentí algo raro en la panza, ¿por qué esperar si tu tarea es hacer ciertas transformaciones sobre datos, no llenar un POJO para estadísticas? y recordé los principios enseñados por en tío Bob, y empecé a divagar y pensar sobre eso y llegue a la conclusión que lo que el desarrollador pensaba es meter en su clase una instancia del POJO para poder así llenarla para luego crear su respectivo método getter para que quien la usara pudiera obtener el POJO creado y hacer uso de él, en ese momento algo no me gustó y pensé en proponer algo para dejar un poco mas mejor esa clase y les dije cuidado al hacer eso, por que es como llamar al chamuco para que te haga un favor, al principio te puede hacer respirar y hacer que la situación en la que está "mejore" de pronto, pero te vas a quedar con un pedo más en la cabeza y no vas a estar a gusto con la decisión que tomaste y a largo plazo puede ser que te cause mas problemas de los que te "resolvió", así que lo que vimos es que esa clase tendrá más de una razón por la que podría cambiar, si el POJO cambia hay que cambiar la clase y si la forma de hacer la transformación cambia entonces hay que cambiar la clase lo cual vimos que no es lo mejor de acuerdo al principio de responsabilidad única, así que llegamos a una mejor solución en la que la clase que hace la transformación sólo hace eso, la transformación, pero puede entregar también una descripción de lo que hizo y quien es, de forma que la clase externa sea quien genere el POJO y así hacer que esta clase de transformación tenga una responsabilidad única.

Bueno lo chistoso acá es que me pongo a pensar en cuánto código así de feo generé yo en su momento y que seguramente aún sigo generando y me doy cuenta que no se por que pero cuando el desarrollador tira código no piensa claramente, o se nubla, tal vez por que está en "la zona", pero cuando el mismo desarrollador ve un código o escucha de otro su posible solución dice ....mmmmm.... como que algo está jodido ahí y entramos en el asunto de que no es lo mismo ver algo desde afuera que estar en la situación, es como cuando te vas de parranda y ves a una chava que te late, pero no sabes por que te friqueas y no haces nada y no sabes por que, pero cuando esa mista situación le pasa a tu amigo le dices no mames yo ya hubiera hecho x, y o z, esto para mi es exactamente lo mismo y es en donde creo en que es bueno que alguien desde fuera del desarrollador vea el código y de su punto de vista, para esto es para lo que yo creo que deben de servir mas las inspecciones de código.

Bueno, espero que les haya sido entretenida la lectura y que pensemos ¿qué podemos hacer para pensar claramente al tirar código? ¿como puedo ayudar a los demás a encontrar una mejor solución?, así que a ser críticos de nuestro código y del de nuestros compañeros que aunque al principio pueda ser molesto al final te genera mas experiencia y armas para solucionar futuras situaciones en el bar, antro o donde sea que estés.

Bueno, tal vez se pregunten donde quedo yo en el asunto de la esperma y todo ese choro,pues yo soy el tío del código, lo aclaro por que ya que leí el post como que parecía que estaba evitando decir algo sobre mi y nunca dejaba claro mi lugar en esa historia, así que ahí está antes de que me albureen.


NOTA: Este post está basado en un suceso real y ha sido exagerado para tratar de hacerlo mas entretenido jeje.