Primera semana como Ironhacker completada. He aquí el concepto más importante que he aprendido:
Esto está demasiado acoplado. Refactorízamelo un poco.
Creo que esta es una de las frases que más repitieron en clase Rafa y Fernando, mis profesores (¡vaya cracks!) de la semana pasada.
Más o menos era consciente de la importancia que tiene escribir código bonito y legible, pero en realidad no sabía en qué consitía eso más allá de evitar la repetición.
Pero después de un puñado de horas batallando iteración tras iteración parece que por fin empiezo a entender lo que marca la diferencia entre un buen código y otro mediocre.
Puedes dominar perfectamente el lenguaje que quieras. Saberte de memoria todos los métodos. Ser capaz de montar algoritmos mortales... Que si el que llegue al código dentro de un mes (que probablemente serás tú) no es capaz de entender qué demonios has hecho, vas dado.
Y parecerá una tontería, pero hasta que no experimentas las ventajas de escribir un código bien encapsulado, en el que cada parte está lo más desacoplada posible, no te das cuenta de las comodidades que supone en el largo plazo. Y en el no tan largo.
Por mi parte ya me he convencido de que invertir algo más detiempo al principio para estructurar de la forma más independiente posible cada parte del código es una práctica que merece la pena.
Te ahorra un montón de dolores de cabeza, ya que puedes tocar cada pieza de código sin preocuparte de cómo afectará al resto.
Encapsular. Qué bella palabra. Para un neofito en el tema como yo, la siguiente definición ha sido clave para pillarlo:
Los objetos deben ser como cajas negras en las que metes cosas y salen otras cosas, sin que nos importe qué hay y qué sucede por dentro.
Así que al final el objetivo al escribir un código que lo pete es crear esas cajitas con cero dependencias (o por lo menos reducidas al mínimo). Cajitas que interactuen entre ellas sin que tengan que saber nada la una de la otra. ¡Viva la independencia! ¡Viva el código limpio! ¡Vivan los principios SOLID! (De los cuales hablaré en próximas entregas...)