Más allá de los lenguajes de programación, existe literatura que desarrolla técnicas de buenas prácticas que aplican a cualquiera de ellos. Para aquellos que dominen (en profundidad!) algún lenguaje, ha llegado el momento de dar un paso hacia el conocimiento de las mejores prácticas de programación.
En ellos se introducen o desarrollan técnicas de testing, TDD, metodologías extreme programming, refactor, criterios de denominación de clases o variables y un largo etcétera.
A continuación te recomendamos libros imprescindibles para conocer las buenas prácticas en el desarrollo de software.
Clean Code: A Handbook of Agile Software Craftsmanship
Este libro a menudo se suele decir que es una especie de biblia para todos los programadores. Y no falta razón. No es un libro para aprender a programar, pero sí te guía para ser mejor programador. Es muy fácil hacer que una aplicación funcione. Incluso el código mal hecho puede llegar a funcionar. Pero si el código no está limpio, genera dificultades dentro de un equipo de desarrolladores.
Aun que utiliza Java como vehículo, las buenas prácticas son aplicables a cualquier lenguaje: desde cómo comentar código (o si es buena idea comentarlo), a qué nombre poner a las funciones y variables, diseño, arquitectura, etc.
Puedes encontrarlo en Amazon.
The Pragmatic Programmer: From Journeyman to Master
Otro libro considerado clásico. Andrew Hunt y David Thomas explican su experiencia y ponen luz en muchos aspectos de la vida de un programador de software profesional.
Muchos libros de software se centran en las complejidades de un lenguaje o en la idiosincrasia de problemas específicos pero, de nuevo, The Pragmatic Programmer se centra en cómo usar el software de manera efectiva para resolver problemas. Contiene información para crecer pragmáticamente como desarrollador; no solo cómo ser un buen programador, sino también cómo resolver los problemas difíciles que rodean la codificación, como: hacer estimaciones precisas pero flexibles, no repetirse (DRY), como combatir el estancamiento como desarrollador, etc.
Encuéntralo en Amazon.
Software Craftsman
Otro libro mítico acerca de las buenas prácticas en programación y que introduce al programador en el concepto de «artesano de código» y principios ágiles. Escrito por Sandro Mancuso (fundador de Codurance) pone foco en los principos de TDD, la sencillez del código, etc.
Puedes comprarlo también en Amazon.
Software Craftsmanship – The new imperative
La artesanía del software trasciende la «ingeniería del software» y demuestra que el software de calidad no puede simplemente «fabricarse»: debe ser construido por artesanos con orgullo por su trabajo y un compromiso personal con la excelencia. Pete McBreen se centra en el arte del desarrollo de software, explica por qué las técnicas actuales de «ingeniería de software» a menudo fallan y ofrece a los programadores un nuevo camino hacia la excelencia.
Puedes adquirirlo en Amazon.
Agile Technical Practices Distilled
Escrito entre otros por Pedro Moreira, cofundador de Cokaido y profesor de algunos de nuestros alumnos, el libro trata sobre técnicas ágiles, sus principios y valores: muchísimo TDD, técnicas de refactorización, pair programming, extreme programming, diseño, etc. La calidad docente de Pedro ha llevado a varios de nuestros alumnos a poder dar charlas sobre distintas técnicas de refactorización en lenguajes como Java o C#.
Pedro es un mago de las buenas prácticas y basa la mayoría del contenido del libro en el desarrollo de katas muy bien diseñadas para comprender los principios de cada capítulo.
Puedes adquirirlo en LeanPub.
The Art of Readable Code: Simple and Practical Techniques for Writing Better Code
Usando ejemplos con diferentes lenguajes, este libro se centra en los principios básicos y las técnicas prácticas a aplicar cada vez que se escribe código. Cada capítulo se sumerge en un aspecto diferente y demuestra cómo se puede hacer código fácil de leer.
Entre muchos otros, es una guia para simplificar nombres, comentarios y el formato, refinar los ciclos, la lógica y las variables para reducir la complejidad. Como atacar problemas a nivel de función, como reorganizar bloques de código para realizar una tarea a la vez según los principios SOLID.
«You need to write code that minimizes the time it would take someone else to understand it—even if that someone else is you».
Puedes encontrarlo en Amazon.