While working through the pre-bootcamp coursework provided by Flatiron School, I constantly found myself strugling to check and debug return values within iterations and nested data structures. O Learn.co o currículo introduziu uma ferramenta chamada Pry, mas eu tive dificuldade em entender como implementá-la em meu código. Só num laboratório difícil chamado Hashketball é que as coisas finalmente se encaixaram. Depois de lutar pelo laboratório por muito tempo, eu finalmente me forcei a ler a documentação de Pry e minha capacidade de escrever e depurar iterações de hash imediatamente melhorou. Se alguma vez se encontrar a lutar para construir um programa de Ruby, O Pry pode provar ser uma ferramenta inestimável no seu arsenal. Pry é uma ferramenta poderosa que os desenvolvedores Ruby podem usar para depurar programas e empurrar barreiras passadas. Como outras gemas de Ruby, a gema Pry deve ser necessária em suas configurações de ambiente ou arquivo ruby específico, a fim de Acessar a sua funcionalidade. Além disso, existem vários plugins Pry, incluindo pry-doc e pry-byebug, que expandem as características e capacidades da gem. Você pode pensar nestes plugins como pedras separadas que devem ser necessárias em seu gemfile.
uma vez que você tenha configurado seu programa com a jóia Pry, é hora de abrir seu código e experimentar a alegria que está debugando com Pry. O Pry está cheio de recursos, mas os seguintes exemplos destacam o que eu acredito ser o mais útil.
REPL (Read, Evaluate, Print, Loop)
Pry pode substituir a linha de comandos integrada do IRB de Ruby e baseia-se na funcionalidade de REPL do IRB com algumas funcionalidades adicionais. Tanto o IRB quanto o Pry permitem que você execute comandos Ruby no terminal e receba resultados imediatos no terminal. Ter a funcionalidade REPL no seu terminal é uma ferramenta muito útil que lhe permite testar rapidamente o código Ruby sem executar todo o seu programa. Digamos, por exemplo, que você quer iterar sobre uma matriz e ver quais valores são retornados. Você pode simplesmente entrar na matriz, use um iterador sobre essa matriz, e verificar os seus resultados:
Observe que enquanto ambos IRB e Retire devolvidos os mesmos valores para esta iteração simples, a maneira de Erguer impressões para o terminal parece um pouco diferente. Uma das vantagens de Pry sobre o padrão IRB é o seu uso de realce de sintaxe. Outras características que dão Pry a vantagem sobre IRB incluem:
-
Guia de conclusão
-
ferramentas de Depuração
-
Capacidade de exibir a documentação
tempo de execução invocação
Talvez o mais útil recurso de Erguer é a sua capacidade de parar um tempo de execução do programa em suas faixas. O programador Ruby pode invocar a consola pry durante o período de execução inserindo a ligação da linha.onde quer que queiram parar o programa. Quando o intérprete atingir a ligação.pry, Pry abrirá uma sessão de REPL na consola, permitindo testar variáveis, valores de retorno, iterações e muito mais.
a seguir é um exemplo da utilidade de Pry quando se trata de dissecar estruturas de dados aninhadas em seus programas. Eu contribuí recentemente para o desenvolvimento de um CLI de pesquisa de emprego dev que dependia de um banco de dados de aberturas de emprego semeado a partir da API de empregos GitHub. Os dados da API foram estruturados em um hash JSON e nossas tabelas de banco de dados foram semeadas com valores desses hashs aninhados. A imagem a seguir mostra como nós povoamos a tabela de empresas para este projeto:
ao popularizar uma tabela de banco de dados, é vital que os registros que vão para a tabela são criados com os dados corretos! Como podemos verificar os nossos valores de iteração para garantir que tudo está funcionando como esperado? A resposta é curiosa. A inserir uma ligação.pry perto do final do bloco “populating companies” permite-nos investigar os valores de retorno, parando o tempo de execução e entrando em uma sessão REPL:
uma vez a ligação.pry é inserido no bloco, o código deve ser executado novamente, a fim de abrir a consola Pry. Quando o Levante console abre em nosso terminal, estamos dentro do bloco, que é preencher as empresas tabela de banco de dados e agora somos capazes de teste de variáveis e valores de retorno:
Agora que temos erguida abrir a “preencher as empresas” do bloco, é hora de verificar alguns valores! Quando ‘job’ é inserido na consola pry, um hash para uma única abertura de trabalho é impresso na tela. O hash do trabalho tem várias chaves, incluindo Tipo, url, empresa, company_url, localização, título, etc. Para ter certeza de que os valores corretos estão sendo enviados para o banco de dados, podemos inserir os seguintes comandos no Terminal Pry:
assim que determinarmos que a nossa iteração está a funcionar como esperado, a ligação.pry pode ser removido uma nossa tabela irá povoar na próxima execução do programa!
sejamos realistas, ser um desenvolvedor significa que você vai depender muito do Google. Muitas vezes me dirijo à web para pesquisar métodos Ruby e documentação scour para garantir que estou estruturando corretamente a sintaxe. E se eu lhe dissesse que o Pry oferece um plugin que lhe permite navegar pela documentação em seu console? Bem-vindo ao Pry-doc gem. O Pry-doc permite-lhe ler a documentação do Ruby na sua sessão actual da consola Pry. Agora, por exemplo. Digamos que não me lembro como … o método de procura funciona com um haxixe. Eu posso inserir o seguinte comando no console, e voilà! A consola Pry imprime a documentação para esse método no terminal:
Viva! Agora você pode acessar documentação útil em seu terminal sem contar com o Google!
comandos bisbilhoteiros úteis
-
pry-abre a consola Pry no seu terminal
-
vinculativo.pry-pára a execução e abre a consola Pry
-
saída-sai do ciclo actual
-
saída! -Sai Erguer console
-
whereami -Imprime localização actual no programa
-
mostrar-doc -Exibe a documentação para uma classe ou método(s)
-
história -Imprime a história do Levante dos comandos para o terminal
-
ls -Imprime as variáveis e métodos no escopo atual do programa
-
ajuda -Imprime a lista atual de disponível Erguer comandos
Retire drasticamente melhorou a minha capacidade de depurar programas em Ruby e é a ferramenta que eu sempre voltar para quando eu estou preso. Espero que achem estas dicas e truques úteis, e lembrem-se, sempre que estiverem no mato, coloquem uma ligação.mete-te nela!