Clean Code, opinion personal 🤓
Tags: beginners, programming, discuss, career
Published: 2023-05-04 05:55:19

## Introducción
En este comienzo del 2023 me decidí a leer "Clean Code" de Robert C. Martin, a quien Wikipedia lo define:

> Robert Cecil Martin (n. 1952, coloquialmente conocido como Uncle Bob) es un ingeniero de software y autor estadounidense, reconocido por desarrollar varios principios de diseño de software y ser uno de los coautores del Manifiesto Ágil. Martin es autor de varios artículos y libros. Fue editor de la revista C++ Report y primer director de la Agile Alliance.

En este post, voy a compartir **mi opinión personal** acerca de este libro, cualquier comentario es bienvenido para seguir discutiendo acerca de esto para compartir con quienes quieran seguir aprendiendo y mejorando en su carrera.

## Opinión personal
La realidad es que muchos de los conceptos y recomendaciones hechas en el libro las he aprendido en base a mi experiencia. Como la experiencia es relativa, y esto me ha tomado mis 7 años de carrera (y muchas cosas las sigo aprendiendo), puedo decir que **me hubiera gustado haberlo podido leer antes**, este libro tiene buenas prácticas muy interesantes para incorporar y aplicar a lo largo de nuestra carrera como profesionales. Debemos hacer nuestro código lo mejor posible, no solo por las personas que vendrán, sino porque nosotros mismos podemos ser una de esas personas. ¿Te ha pasado de leer tu propio código días después y no entenderlo? 

Algo que me queda muy marcado del libro, es el hincapié en *la regla del boy scout*:

> “Siempre deja el lugar de acampada más limpio que como lo encontraste”

## Secciones más interesantes
En cuanto a las secciones más importante que encontré, les recomiendo las siguientes:
* **Meaningful names**: Recomendaciones y prácticas sobre cómo elegir nombres de manera correcta para nuestros componentes. 
* **Functions**: Sugerencias para poder organizar y construir las funciones con buenas prácticas de manera que podamos entender nuestro código en el futuro.
* **Comentarios**: En nuestro código a veces subestimamos el poder de nuestros comentarios, lo ideal no es no escribir comentarios, sino hacerlo de la forma correcta. En este caso este capítulo nos da recomendaciones para escribirlos de forma correcta y cómo poder evitarlos.
* **Formatting**: Como formatear nuestro código, y que tener en cuenta a la hora de como formatear nuestro código. Además se entra en detalles del formateo vertical y horizontal.
* Error Handling: En cuanto al error handling se describen como manejarlo en nuestro flujo del código, y como no manejarlo.
* **Testing**: El testing es algo fundamental en nuestro código, justamente nos ayuda a verificar que el código funcione de la manera que esperamos. Al igual que el código productivo, se necesita tener un código limpio y claro para poder entender los tests que escribimos.
* **Classes**: En este capítulo se describen buenas prácticas para nuestras clases, y que tener en cuenta a la hora de crearlas en base a los principios SOLID.

Varias de estas secciones las he repasado a nivel universitario hace poco tiempo, insisto en que si las hubiera aprendido antes, esto me hubiera facilitado decisiones de diseño y desarrollo de código en mi carrera.

## Conclusión
En **mi opinion**, recomiendo leer el libro, tal vez no completo ya que también hace mucho énfasis en código Java, y si no están trabajando con Java, tal vez no valga la pena entrar en detalles de Java del todo, pero de igual manera siempre son bienvenido los ejemplos.
Como último dejo abierto para que cada quien lea este post, pueda dejar su comentario para compartir su opinión o punto de vista.