3 herramientas de Python para simplificar el código

Con la experiencia, se reduce la cantidad de herramientas utilizadas en el trabajo, ya que muchas de ellas simplemente se te escapan. Pero como estos permanecen en uso durante mucho tiempo.

Herramienta 1: finalización de IA y acceso rápido a la documentación con Kite

Los IDE modernos tienen un autocompletado incorporado que se ve así:

Una herramienta integrada suele utilizar la documentación para determinar los nombres y tipos de funciones y parámetros posibles. Pero, ¿qué sucede si el editor tiene acceso al código de todos los repositorios públicos de GitHub y comienza a obtener no solo nombres, sino líneas completas de código? Y esto está implementado en Kite.

Nota ed. Esta función está disponible en los planes Pro y Team. En el momento de escribir este artículo, el plan Pro está en versión beta gratuita.

Echemos un vistazo más de cerca a las funciones de Kite, una herramienta para Python con autocompletado inteligente y acceso rápido a la documentación.

Consejos inteligentes

El complemento Kite revisa su código, variables, nombres de parámetros de uso frecuente, documentación y, solo después de recopilar todos los datos, recomienda algo como esto:

Antes de molestar a un compañero de trabajo más antiguo o buscar respuestas en Stack Overflow, lea la documentación.

Kite Copilot facilita la búsqueda de documentación. Se ejecuta en paralelo con el IDE y muestra información sobre todos los objetos o funciones sobre los que pasa el cursor.

Trabaja localmente, en privado

Además de eso, el complemento está diseñado para funcionar localmente, por lo que obtiene una guía rápida, el trabajo se realiza sin conexión y su código nunca se envía a la nube.

Esto es extremadamente importante para las personas con mala conexión a Internet y quienes trabajan en fuentes cerradas.

Todo lo que necesita hacer es descargar e instalar el complemento Kite para su editor: hay una versión gratuita y una versión beta gratuita en el plan Pro con autocompletado inteligente.

Herramienta 2: Análisis de código estático con Mypy

Python es un lenguaje tipado dinámicamente. Esto significa que una variable está asociada a un tipo de datos no en el momento de la declaración, sino en el momento de asignarle un valor. Es decir, una misma variable puede ser una cadena, un entero y otro tipo, dependiendo del último valor que se le asigne.

# Например, вот одна и та же переменная с разными типами данных. # Python определяет тип данных динамически:  # string var_name = "string here"  # integer var_name = 1234 

Y aquí hay ejemplos de lenguajes con tipado estático, donde cada variable tiene un tipo de datos específico, y en la lógica del código tienes que ceñirte a él:

# Для многих языков обязательно предварительное объявление типа.  # string str str_var_name = "string here"  # integer int int_var_name = 1234 

Ventajas y desventajas de la entrada dinámica

La principal ventaja de la escritura dinámica es que puede ser demasiado perezoso para escribir tipos todo el tiempo, y un lenguaje como Python lo ayudará con eso.

Pero hay más desventajas:

  • generalmente encuentra errores en etapas posteriores de desarrollo;
  • el código es más lento porque Python está constantemente calculando tipos;
  • el código se vuelve menos seguro, porque la misma variable puede tener diferentes tipos de datos en la entrada y en la salida de la función;
  • su código se vuelve más difícil de leer porque la otra persona no puede estar segura de que una variable ya declarada no cambiará de tipo más tarde.

Escritura estática en Python

No hay escritura estática per se en Python, pero hay anotaciones de tipo que los analizadores estáticos verifican para verificar los tipos de variables.

Echa un vistazo a Mypy. Este es un analizador de tipo estático para Python que lo ayuda a encontrar errores de desajuste de tipo en su código. Mypy arroja un error si, al usar anotaciones de tipo, el valor de una variable no coincide con el tipo que se le asignó.

from typing import Iterator  def fib(n: int) -> Iterator[int]:     a, b = 0, 1     while a < n:         yield a         a, b = b, a + b  fib(10) fib("10") 

Siguiendo la ejecución del analizador estático Mypy en el código anterior, obtendrá el siguiente error: main.py:10: error: Argument 1 to "fib" has incompatible type "str"; expected "int". Por lo tanto, Mypy advierte que estamos tratando de asignar un valor de cadena a una variable con un tipo de dato entero. Este es solo un ejemplo del uso de Mypy. Todas las funciones de la herramienta, descritas con más detalle en la documentación, se pueden probar en el entorno de pruebas.

Si su código está en producción y le preocupa la resistencia a los errores tipográficos, use la herramienta Mypy.

Herramienta 3: encuentre errores rápidamente y limpie el código con SonarLint

Ahora casi todos los IDE tienen un linter, un analizador estático de posibles errores. En otras palabras, anticipa lo que podría salir mal antes de ejecutar el código y resalta los errores sospechosos.

3 instrumenta dlja python kotorye uprostjat rabotu s kodom 1995418 - 3 herramientas de Python que facilitarán el trabajo con código

Python Linter predeterminado en VS Code

A su vez, dinámica el análisis no predice, sino que en realidad ejecuta/compila partes del código para determinar si funciona, pero lo hace automáticamente en segundo plano. Es decir, realmente sabe lo que está mal con el proceso de ejecución del programa.

SonarLint es el mismo analizador de código dinámico que te ayudará a resolver los siguientes problemas.

Código adicional

Digamos que no eliminó partes comentadas del código, dejó funciones sin usar y otros rudimentos. SonarLint le notificará esto y podrá limpiar el código de todas las cosas innecesarias de manera oportuna.

Vulnerabilidades

Una gran base de datos actualizada con una lista de vulnerabilidades permite que el complemento le notifique a tiempo sobre cualquier vulnerabilidad conocida que ocurra en su código.

Complejidad cognitiva

Puedes leer más sobre esto en el artículo. En resumen, los desarrolladores del complemento han creado una fórmula matemática que puede evaluar la legibilidad de su código.

No solo es útil, sino también simple. Cada vez que SonarLint te advierte de una complejidad excesiva, va acompañado de una explicación de la regla que has incumplido. Por ejemplo, «demasiadas sentencias if anidadas», mejor conocido como código espagueti. Práctico, ¿verdad?

El complemento SonarLint le permite usar las mejores prácticas y escribir código limpio y comprensible.

Vamos a resumir

  • Autocompletado de IA y acceso rápido a la documentación con Kite Copilot y complemento IDE.
  • Ingresando código estático con el módulo Mypy.
  • Detección rápida de errores y código limpio con el complemento SonarLint.

Todas las herramientas de Python enumeradas son gratuitas o existen en varias versiones, incluida una que es gratuita.

Traducción del artículo «3 locas armas secretas para Python»
Autora: Alina Utkina

Deja un comentario