Getting the most out of Python to improve your codebase Python is currently used in many different areas such as software construction, systems administration, and data processing. In all of these areas, experienced professionals can find examples of inefficiency, problems, and other perils, as a result of bad code. After reading this book, readers will understand these problems, and more importantly, how to correct them. The book begins by describing the basic elements of writing clean code and how it plays an important role in Python programming. You will learn about writing efficient and readable code using the Python standard library and best practices for software design. You will learn to implement the SOLID principles in Python and use decorators to improve your code. The book delves more deeply into object oriented programming in Python and shows you how to use objects with descriptors and generators. It will also show you the design principles of software testing and how to resolve software problems by implementing design patterns in your code. In the final chapter we break down a monolithic application to a microservice one, starting from the code as the basis for a solid platform. By the end of the book, you will be proficient in applying industry approved coding practices to design clean, sustainable and readable Python code. This book will appeal to team leads, software architects and senior software engineers who would like to work on their legacy systems to save cost and improve efficiency. A strong understanding of Programming is assumed.
Se trata de un libro técnico que viene a ayudar en varios puntos:
✅ Por un lado, cómo su nombre lo indica, propone consejos para escribir código más limpio, definiendo "código limpio" en función de su utilidad y aceptando que es un concepto sobre el que hay discusión. En esta dirección nos propone buenas prácticas en varios aspectos: Nombres de variables, orden a nivel de código y a nivel arquitectura, principios SOLID, dependency injection, entre otros.
✅ A su vez, explica conceptos intermedios y avanzados de Python en profundidad (decoradores, corutinas, context managers, programación asíncrona, programación orientada a objetos) y precisa formas "Pythonicas" de resolver distintos problemas (con muy buenos ejemplos)
Algunos conceptos de valor que me llevo del libro (sin un orden en particular):
💡 Un buen código siempre tiene consistencia interna.
💡Documentar código no es lo mismo que escribir comentarios en él.
💡Nunca usar los comentarios para dejar una parte del código que ya no se va a usar. Si no se usa, se elimina.
💡Los Docstrings son documentación pero requieren mantenimiento regular. Si la función es chica y autoexplicativa, mejor no usarlos.
💡Todos los patrones de diseño no tienen por qué tener sentido en cualquier lenguaje.
💡Todos los métodos y atributos de un objeto son públicos.
💡No usar objectos mutables cómo argumentos default en las funciones. Da lugar a comportamientos inesperados.
💡 Cohesión significa que los objetos tiene que tener un propósito bien definido y ser lo más pequeño posible. Mientras que "coupling" se refiere a la interdependencia entre dos o más objetos. Queremos aumentar la cohesión y disminuir el coupling.
💡Generar software mantenible no significa preveer todo lo que pueda necesitarse en el futuro, sino que haga lo que se espera ahora y posea la flexibilidad suficiente para poder adaptarse a esa futuros requerimientos con facilidad.