Mejores prácticas en programación
Muchas veces tomamos notas para nosotros mismos en un papel. Garabateamos cuatro lineas y listos. Total, sólo lo leeremos nosotros… En cambio, cuando tenemos que escribir una carta manuscrita con un tono formal, nuestra caligrafia, estructura y estilo cambian. Lo mismo pasa en programación.
El concepto de ingeniería de software es mucho más que escribir código. Hay muchos elementos involucrados en llevar un producto desde su concepción hasta su lanzamiento, y mantenerlo funcionando después. Es fácil caer en la tentación de empezar a picar código. ¿Es lo que un programador hace, no? ¡Reprime el instinto! En este artículo hablaremos de algunas mejores prácticas en programación necesarias para alcanzar determinadas franjas salariales y que separan cláramente a los amateur de los profesionales en un trabajo como programador web.
¿Cómo organizarse? ¿Cómo dividirse el trabajo? ¿Como no solaparse? ¿Como evitar conflictos en el código? ¿Cómo hacerlo para no bloquear a otros compañeros?
Saber comunicar en el código y en el día a día
Saber comunicar tus movimientos y decisiones es importante. No solo en el código sino en el día a día. Hace que el equipo pueda adaptarse, discutirlo o saber en todo momento donde está uno de sus miebros para poder avanzar juntos más deprisa.
Incluso cuando trabajas solo es importante utilizar un repositorio de código, como Github y obligarse a trabajar con issues (para poder tracearla lógica y los pasos que has seguido), pull requests (en lugar de hacer push a master directamente), se formal con los comentarios (para poder saber porqué tomaste un camino u otro), etc.
Dentro de un año, cuando quieras retocar algo, ¿te acordarás de qué hiciste o porqué lo hiciste así? ¡Pues imagínate si otra persona ve tu código! Si trabajas en equipo, este aspecto es fundamentales: no serás el único que va a tocar un código, así que tienes que dar visibilidad al resto de qué has hecho y porqué lo has hecho.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Martin Fowler, 2008.
Durante las once semanas que dura el bootcamp de programación de ISDI Coders, hacemos que los alumnos tengan que compartir código, trabajar juntos en un mismo desarrollo y coordinarse. Si nos mantuviéramos en un plano teórico, nuestros estudiantes no vivirían la experiencia de gestionar mal este aspecto y sus efectos adversos. Introduciéndolo desde la primera semana nos aseguramos que durante casi tres meses comprenden e incorporan este tipo de prácticas.
En este sentido es importante aprender cosas tan aparentemente sencillas como darle el nombre adecuado a las variables, las funciones, etc. De este modo es sencillo comprender la función de cada uno.
Una forma de validar que sigues el camino adecuado es utilizar las code reviews. Haz que tus compañeros revisen tu código y revisa tú el de ellos. Este proceso hace que el código que finalmente sube a producción ha sido visto por varios pares de ojos y se ajusta a vuestros estándares.
Componentiza
Piensa en los principios DRY, FIRST o incluso los SOLID. Cuando veas código que se repite, reúsalo. Minimiza cosas. Mantén la responsabilidad de cada parte de código, que cada pieza haga una única función y que puedas testearlo todo de forma independiente.
Piensa que eso hará que el código que haces se puede refactorizar sin afectar al resto de la aplicación. Si falla, el error será más fácil de localizar y el tiempo de debugging mucho más corto. Cuanto mayor sea el código, más probabilidades tiene de fallar y más extenso el alcance del error.
Durante el curso aprendemos los principios de ingeniería que rigen este aspecto, pero conseguimos que nuestros estudiantes interioricen la necesidad de hacerlo al darse cuenta de los beneficios que supone para un equipo que trabaja junto. Cuanto más separado y estanco es el código, más miebros pueden estar trabajando en un proyecto sin solaparse, además de no depender de la lógica de otros componentes.
Hechos y no palabras
Trabajar de este modo transmite que eres un jugador de equipo, que entiende como el código afecta al rendimiento y al avance del negocio, que haces la vida fácil a los que te rodean y que eres capaz de minimizar el trabajo futuro de mantenimiento o corrección de errores. En resumen, no solo dirás que eres un programador profesional sino que actúas como tal.
¿Te ha parecido interesante? ¡Compártelo!
Seguro que a tus contactos le gusta leerlo.