Depuración con Pry: Una guía para principiantes'

Mientras trabajaba en el curso previo al campamento de arranque proporcionado por Flatiron School, constantemente me encontraba luchando para verificar y depurar los valores devueltos dentro de iteraciones y estructuras de datos anidadas. Las Learn.co curriculum introdujo una herramienta llamada Pry, pero tuve problemas para entender cómo implementarla en mi código. No fue hasta un laboratorio difícil con el nombre de Hashketball que las cosas finalmente hicieron clic. Después de luchar por el laboratorio durante demasiado tiempo, finalmente me obligué a leer la documentación de Pry y mi capacidad para escribir y depurar iteraciones hash mejoró de inmediato.

Si alguna vez te encuentras luchando para construir un programa Ruby, Pry podría ser una herramienta invaluable en tu arsenal. Pry es una herramienta poderosa que los desarrolladores de Ruby pueden usar para depurar programas y superar obstáculos. Al igual que otras gemas Ruby, la gema Pry debe ser requerida en la configuración de su entorno o en un archivo ruby específico para acceder a su funcionalidad. Además, hay varios complementos de Pry, incluidos pry-doc y pry-byebug, que amplían las características y capacidades de la gema. Puedes pensar en estos complementos como gemas separadas que deben ser necesarias en tu gemfile.

Una vez que haya configurado su programa con la gema Pry, es hora de abrir su código y experimentar la alegría de depurar con Pry. Pry está lleno de características, pero los siguientes ejemplos resaltan lo que creo que es más útil.

REPL (Leer, Evaluar, Imprimir, Bucle)

Pry puede reemplazar el shell IRB integrado de Ruby y se basa en la funcionalidad REPL de IRB con algunas características adicionales. Tanto IRB como Pry le permiten ejecutar comandos Ruby en la terminal y recibir resultados inmediatos en la terminal. Tener la funcionalidad REPL en su terminal es una herramienta muy útil que le permite probar rápidamente el código Ruby sin ejecutar todo su programa. Digamos, por ejemplo, que desea iterar sobre una matriz y ver qué valores se devuelven. Simplemente puede ingresar la matriz, usar un iterador en esa matriz y verificar sus resultados:

Tenga en cuenta que, si bien tanto IRB como Pry devolvieron los mismos valores para esta iteración simple, la forma en que Pry imprime en el terminal se ve un poco diferente. Una de las ventajas de Pry sobre el IRB estándar es su uso de resaltado de sintaxis. Otras características que le dan a Pry la ventaja sobre IRB incluyen:

  1. Finalización de pestañas

  2. Herramientas de depuración

  3. Posibilidad de ver la documentación

Invocación en tiempo de ejecución

Quizás la característica más útil de Pry es su capacidad de detener el tiempo de ejecución de un programa en seco. El programador Ruby puede invocar la consola pry durante el tiempo de ejecución insertando el enlace de línea.entrometerse donde quieran para detener el programa. Cuando el intérprete golpea la encuadernación.pry, Pry abrirá una sesión de REPL en la consola, lo que le permitirá probar variables, devolver valores, iteraciones y más.

El siguiente es un ejemplo de la utilidad de Pry cuando se trata de diseccionar estructuras de datos anidadas en sus programas. Recientemente contribuí al desarrollo de una interfaz de línea de comandos de búsqueda de empleo de desarrollo que se basó en una base de datos de vacantes sembradas desde la API de empleos de GitHub. Los datos de la API se estructuraron en un hash JSON y nuestras tablas de base de datos se sembraron con valores de estos hashes anidados. La siguiente imagen muestra cómo rellenamos la tabla de empresas para este proyecto:

Al rellenar una tabla de base de datos, es vital que los registros que entran en la tabla se creen con los datos correctos. ¿Cómo podemos comprobar nuestros valores de iteración para asegurarnos de que todo funciona como se espera? La respuesta es entrometerse. Insertar una encuadernación.pry cerca del final del bloque «empresas de relleno» nos permite investigar los valores de retorno deteniendo el tiempo de ejecución e ingresando una sesión de REPL:

Una vez la encuadernación.pry se inserta en el bloque, el código se debe ejecutar de nuevo para abrir la consola de Pry. Cuando la consola Pry se abre en nuestro terminal, estamos dentro del bloque que está llenando la tabla de la base de datos de empresas y ahora podemos probar variables y devolver valores:

Ahora que hemos abierto el bloque «poblar empresas», ¡es hora de comprobar algunos valores! Cuando se inserta «trabajo» en la consola de palanca, se imprime en la pantalla un hash para una sola vacante de trabajo. El hash de trabajo tiene varias claves, incluyendo tipo, url,compañía, company_url, ubicación, título, etc. Para asegurarnos de que se envían los valores correctos a la base de datos, podemos introducir los siguientes comandos en el terminal de palanca:

Una vez que hemos determinado que nuestra iteración funciona como se esperaba, el enlace.pry se puede eliminar y nuestra tabla se rellenará en la próxima ejecución del programa.

Búsqueda de documentación y código fuente

Seamos realistas, ser desarrollador significa que confiarás en gran medida en Google. A menudo recurro a la web para investigar métodos Ruby y buscar documentación para asegurarme de que estoy estructurando correctamente la sintaxis. ¿Y si te dijera que Pry ofrece un complemento que te permite navegar por la documentación directamente en tu consola? Bienvenido a la joya de Pry-doc. Pry-doc le permite leer la documentación de Ruby dentro de su sesión de consola Pry actual. Ahora, por ejemplo. Digamos que no puedo recordar cómo thebuscar método funciona en un hash. Puedo introducir el siguiente comando en la consola, y voilà! La consola Pry imprime la documentación de ese método en el terminal:

¡Hurra! Ahora puede acceder a documentación útil en su terminal sin depender de Google.

Comandos de palanca útiles

  1. palanca: Abre la consola de palanca en su terminal

  2. encuadernación.pry: Detiene el tiempo de ejecución y abre la consola Pry

  3. bucle de corriente de salida-Salidas

  4. ¡salida! – Sale de la consola de palanca

  5. whereami-Imprime la ubicación actual dentro del programa

  6. show-doc: Muestra documentación para una clase o método de clase)

  7. historial: Imprime el historial de comandos de palanca en la terminal

  8. ls-Imprime las variables y métodos en el ámbito actual del programa

  9. ayuda-Imprime la lista actual de comandos de palanca disponibles

Pry mejoró drásticamente mi capacidad para depurar programas Ruby y es la herramienta a la que siempre recurro cuando estoy atascado. Espero que encuentres útiles estos consejos y trucos, y recuerda, siempre que estés en la maleza, ponte una encuadernación.¡entrométete!



+