hoje marca o fim da segunda semana do meu curso de imersão em Engenharia de software na escola Flatiron. O currículo tem sido fortemente focado em apreender os fundamentos centrais de Ruby, incluindo orientação de objetos, métodos de classe, instâncias de classe, trabalhando com enumeradores, arrays, hashes e relacionamentos de objetos.
a maioria, se não toda a linguagem ruby que eu tenho escrito está no ambiente de Desenvolvimento Orientado a testes (TDD). Estou a escrever um código para passar nos testes Rspec que foram escritos por outra pessoa ou por mim. A realidade que me ocorreu quando me aproximei do final da segunda semana, é que a disponibilidade de mensagens de erro informativo e Rspec não pode ser assumida. Por essa razão, eu encontrei prazer mais profundo em escrever e passar meus próprios testes com o Pry como meu ajudante.
esta jóia de todas as pedras preciosas (Sim, instalação de pedras preciosas necessária, trocadilho também pretendido) é uma ferramenta essencial para depuração, teste e apenas ter um bom e velho snoop em seu código.
então, o que é O Pry?
assim como IRB (Ruby interativa), Pry é um tipo de REPL (ler, avaliar, imprimir, Loop). É incrível porque em vez de codificar através do IRB, você pode codificar diretamente em seu programa e colocar em um ‘encadeamento.pry ‘ em qualquer lugar do código para avaliar o programa.
inserção de ligantes.O pry ‘ em seu código irá congelar seu programa no ponto de sua inserção. Quando o programa atingir o pry, o programa abrirá um REPL e teremos a oportunidade de entrar no nosso código e ver o que se passa debaixo do capô.
para utilizar, Primeiro instale Pry gem
execute “gem install pry” na sua linha de comandos.
Usando Erguer
eu criei um exemplo de um Partido de classe com classe e métodos de instância.
eu pessoalmente uso de “vinculação.pry ” em dois casos comuns, é claro, há muitas outras situações que você usaria Pry.
instância um: intrometer-se no valor de um argumento passou para um método.Pergunto-me o que será a” ocasião ” na linha 19?
eu coloquei um “enlace.pry ” no fundo para que eu pudesse bisbilhotar neste método particular. Note ” binding.pry ” não funciona se eu colocá-lo dentro da minha declaração se/else, de modo que o pry foi colocado após a declaração de condição terminou.
Agora, quando eu chamo a “música” método no meu programa e execute o meu arquivo no terminal, o Levante REPL será aberta. Eu posso agora testar para ver qual é o valor de “ocasião” da linha 19 escrevendo em “ocasião” no meu terminal.É um “aniversário”! Uma vez que sabemos que é um aniversário, podemos ter certeza de que uma vez executado, este método vai retornar “parabéns a você, parabéns a você”. Fixe!No exemplo abaixo, o método de classe “all_party_types” irá coletar todos os tipos de ocasião do partido e retornar uma série de todas as ocasiões que já foram criadas na classe do partido.
Porque o levante é uma incrível ferramenta de depuração, nos permite olhar para os valores de quase tudo o que queremos. Por exemplo, o que está dentro da festa.todas ” (linha 31), ou “parte” (linha 31) ou “parte”.ocasião ” (linha 32)? Dá-nos os dados que esperamos?
se escrevermos o que queremos, o REPL imprimirá exactamente o que é. Veja, abaixo. Note que “item” e ” item.a ocasião “só nos mostra uma instância de “partido”, mas se carregarmos em” sair ” na linha de comando e executar de novo esses comandos, o REPL irá imprimir a próxima instância no loop e mostrar-nos o próximo valor no array.
Retire Dicas
Porque o trabalho em equipe faz o trabalho com sonhos, aqui está o meu top quatro dicas sobre o uso de Levante.
- Requer então recorrer ao método antes de tentar pry
é necessário ” exigir ‘pry’ “no topo do seu ficheiro e, em seguida, recorrer ao método primeiro antes de “ligação”.a bisbilhotice vai funcionar.
2. Entrando em um loop (“saída”)
você pode usar” saída ” para se intrometer no valor de retorno do próximo loop.
por exemplo, se “parte.all contém um array de 3 instâncias de” party”, escrevendo” exit ” em sua linha de comando irá passar para a próxima instância do loop. Para cada exemplo do loop, você pode acessar o valor “partido”. Magia!
3. Force exit out of the loop (“!!!”/”saída!”)
When you’re done with all that snooping around, you can hit “!!!”ou” saída!”para sair completamente da bisbilhotice. “saída” sem o”!”também é uma opção se você não está se intrometendo em um método com um loop.
4. A reiniciar o pry (“reload-code”)
Qual é o objectivo da depuração se não pode alterar o seu código e testar em movimento?
depois de actualizar o seu código, pode escrever “reload-code” na sua linha de comando. Isto irá reiniciar a sua sessão de pry com o novo programa sem ter de sair manualmente da pry e, em seguida, reentrar pry depois de ter feito alterações ao seu programa.Então, isso é tudo meu. Feliz depuração!