Sí, más Cosas que me hubiese gustado saber cuando empecé a programar, 7ma edición.
Puedes encontrar el primer artículo de la serie aquí.
Y el artículo anterior aquí
Testea tu código
Escribir tests es una de esas cosas que aprecias más a medida que ganas experiencia.
Al principio, es difícil entender por qué necesitamos tests. ¡Sé que funciona, cómo sé que funciona? ¡bueno, lo escribí yo así que funciona!
El programador experimentado ha visto suficientes crashes y bugs para entender el valor de escribir tests. Ninguna cantidad de testing puede garantizar que tu código esté libre de bugs, pero puede ayudarte a encontrar algunos de los bugs que ya están ahí. Encontrar estos problemas antes de que tu código llegue a producción te ahorrará mucho tiempo y dinero: recuerda que mientras más cerca esté tu código de producción, más costoso es arreglarlo.
Otro gran beneficio de tener tests en su lugar es que te ayuda a mejorar la calidad de tu código. Con buena cobertura de tests, realizar grandes refactorizaciones se vuelve más fácil y seguro. Es más probable que muevas cosas y re-escribas algunas secciones de tu código si sabes que tus tests te dirán si rompiste algo.
Testear código es importante, así que no importa si escribes tus tests antes o después (aunque personalmente pienso que el enfoque test-first ofrece más ventajas). Invierte en esta habilidad y aprende cómo escribir buenos tests.
Si quieres llevar esto un paso más allá, aprende cómo usar integración continua. Este es un tema grande, pero es una de las mejores formas de ayudarte a crear productos de software de calidad.
La mejora toma tiempo
Desarrollar software es difícil, y toma varios años de esfuerzo volverse bueno en ello.
En este sentido, no es diferente de muchas otras habilidades, como tocar un instrumento musical. Toma una buena cantidad de tiempo dominar la enorme cantidad de temas que una persona necesita para crear gran software. Así que ten paciencia e invierte en mejorar tus habilidades. Esos pequeños cambios se acumularán y después de algunos años te volverás verdaderamente excelente en esto.
También, no confíes en esos productos de ‘Aprende a programar en X días/semanas’ para darte más que un nivel superficial de conocimiento. La verdadera maestría requiere paciencia, esfuerzo y tiempo, y esas cosas no tienen reemplazo. Invierte en el oficio y en ti mismo, es la única forma hacia la maestría.
A veces esto puede ser un poco frustrante. Después de todo, has estado trabajando duro en ello por tanto tiempo y aún te sientes como un principiante. O tal vez has estado por ahí por un tiempo pero te sientes como un programador mediocre. Está bien, todos se sienten así en diferentes puntos de su carrera, pero te aseguro que mejorará si trabajas duro en mejorar.
El buen diseño de software no se trata de perfección, se trata de flexibilidad
Solía pensar que el diseño de software se trataba de construir programas perfectos.
En realidad, el objetivo del diseño de software no es crear código perfecto, es crear código suficientemente flexible para acomodar cambios futuros. Recuerda que los requerimientos son la fuerza que moldea la funcionalidad de tu programa. Si esos requerimientos están satisfechos, el programa hace lo que necesita y puede ser llamado un éxito, ¿pero es eso todo lo que necesitamos?
Por supuesto que no. El software rara vez se mantiene estático. Nuevos requerimientos vendrán y necesitarás acomodarlos en tu código. Si tu programa está bien diseñado entonces los cambios en tu código serán proporcionales a la complejidad de la nueva funcionalidad. En un programa mal diseñado, agregar incluso funcionalidades pequeñas puede ser extremadamente doloroso.
El diseño de software se trata de mantener tu código responsivo y fácil de extender. Si tu código está fuertemente moldeado por los requerimientos actuales, podrías estar sobreajustándolo y agregar cambios futuros podría ser demasiado difícil. Al final del día, un buen diseño es uno que balancea satisfacer las necesidades actuales con la posibilidad de cambios desconocidos en el futuro.
Ah pero yo también sabía todas estas cosas.
Está bien, tal vez en el próximo artículo encuentres algo que aún no sabías.
Gracias por leer, espero que hayas aprendido una o dos cosas nuevas o al menos hayas conseguido algo nuevo en qué pensar.
Qué hacer a continuación:
- Comparte este artículo con amigos y colegas. Gracias por ayudarme a llegar a personas que podrían encontrar útil esta información.
- Lee el siguiente artículo de la serie.
- Envíame un email con preguntas, comentarios o sugerencias (está en la página Autor)