platanus / guides

guides!
27 stars 13 forks source link

herramientas de debugging en rails #71

Closed juliogarciag closed 9 years ago

juliogarciag commented 9 years ago

Me dio problemas para actualizar la siguiente línea:

gem 'debugger', require: 'ruby-debug'

La solución rápida fue cambiar debugger por byebug. Sin embargo, me cuestiono un poco su utilidad sobre todo porque ya se encuentra pry-rails que puede hacer lo mismo. ¿Les parece quitar agregar byebug en vez de debugger o suprimir debugger simplemente?

blackjid commented 9 years ago

Yo creo que si, pero puedes explicar un poco mas que significa hacer los cambios que propones?

pry-rails hace que rails console se abra usando pry cierto?

pero que beneficio tiene tener byebug? tambien hay un pry-byebug, seria bueno definir un estandar en la platilla sobre las herramientas de debugging en rails

FYI: le cambien el titulo al issue para pasarlo a discussions :)

bunzli commented 9 years ago

Apoyo también la idea de tener una guía de como usar estas herramientas. Yo uso binding.pry y no sé si hay mejoras cosas

juliogarciag commented 9 years ago

Bueno, quería poner en discusión el asunto de byebug por ser una alternativa a debugger que (como ellos mismos dicen) no soporta ruby 2.0 por lo que, para comenzar, no deberíamos tenerlo en la plantilla si la usamos para crear proyectos de ruby 2+ (por otro lado, byebug no soporta ruby 1.9+).

Generalmente uso un simple binding.pry y listo. Me parece que sería buena idea decidirnos entre simplemente quitar debugger (porque de todos modos no está soportado) y quitar debugger y agregar pry-byebug o alguna otra alternativa (aunque me parece que pry-byebug es suficiente).

bunzli commented 9 years ago

cual es la ventaja de pry-byebug sobre el simple binding.pry ?

juliogarciag commented 9 years ago

Agrega más comandos de debug como step que hace que el intérprete de la vm de ruby avance un frame en el stack de ejecución, o en código:

def hello
  puts "step 1"
end

binding.pry
hello

Sin esa gema deberías haber puesto 2 binding.prys en el código para pausar también dentro de hello. Usando step puedes saltar adentro del método hello. Eso es sólo un ejemplo. Aquí hay más información con respecto a lo que puedes hacer con esa gema de debug.

bunzli commented 9 years ago

me gusta +1

blackjid commented 9 years ago

excelente, me gusta tambien. Como que ahora me queda mas claro que pry es solamente el REPL y el byebug te da mas cosas para debug como step break etc

ldlsegovia commented 9 years ago

+1 pry-byebug

juliogarciag commented 9 years ago

Transformé la issue en un PR cambiando debugger por pry-byebug. Alguien a favor de mezclarlo? :)