Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Master Pry: Essential Debugging Tool Mọi Junior Rubyist Nên Học

Bạn từng debug code bằng cách type puts statements và hy vọng chúng show up đúng chỗ? Biết cảm giác — type:

puts "This worked!"

vào code chạy terminal, nhưng không thấy gì show up. Hoặc nghe về fancy debugging tools nhưng sợ thử. Thay vào đó dùng "spaghetti method": ném code vào editor xem gì stick. Vấn đề: method này không guarantee solution.

Debugging là việc bạn làm suốt đời coding. Không chỉ cho junior devs! Càng sớm học tools tìm bugs, càng better long run.

Tools có gì? Nhiều choices, hôm nay pry vào tool tuyệt vời mọi Rubyist nên biết — Pry. Học cách hoạt động và tại sao quan trọng.

Pry Là Gì?

Pry freeze chương trình để bạn get inside code, tìm hiểu gì đang xảy ra và cần fix gì. Pry có thể confusing lúc đầu, nhưng từ fellow junior Ruby Dev — nó dễ hơn khi dùng nhiều, và sớm bạn không muốn code without it.

Pry Như IRB Trên Steroids

Chắc bạn comfortable dùng IRB (Interactive Ruby Shell) chạy code trong playground xem gì work gì không. Cũng useful debugging. Phần của Pry hoạt động tương tự, nhưng với added features. Cả IRB và Pry dùng REPL: Read, Evaluate, Print, Loop. Nhưng Pry cho đi xa hơn khi debugging. Ví dụ, Pry cho color-coded syntax, giúp khi figure out gì xảy ra khi code executed. Dễ spot mistakes, dễ fix code.

Sample Code

Master Pry: Essential Debugging Tool Mọi Junior Rubyist Nên Học

Note Về Debugging

Đã nói nhưng worth saying again — debugging là việc all programmers làm suốt career. Không có gì junior về việc học tools này! Càng sớm học, càng good programmer.

Setting Breakpoints Với Pry

Xem one of the very best features của Pry — setting breakpoints. Giả sử code không chạy như expected. (Ai cũng từng vậy, đúng?)

Set breakpoint tại phần code không working, end up trong version của Pry, nhưng frozen tại điểm đó. Best explain bằng example.

Giả sử tìm xem user muốn view có set properly không. Thêm binding.pry vào code. Set ngay dòng trước line gây trouble, run code.

Master Pry: Essential Debugging Tool Mọi Junior Rubyist Nên Học

Thử hit page trigger code. Chạy rails server local, vào: localhost:3000/users/1

Land trong IRB-like console test code xem gì happening.

Master Pry: Essential Debugging Tool Mọi Junior Rubyist Nên Học

Check '@user' có set right user id không.

Master Pry: Essential Debugging Tool Mọi Junior Rubyist Nên Học

Check user logged in:

Master Pry: Essential Debugging Tool Mọi Junior Rubyist Nên Học

What If Nothing Happens?

Đôi khi place breakpoints, run code, thay vì land in Pry, nothing happens. Frustrating nhưng gives clue: code never triggered Pry vì never got that far. Làm gì? Set breakpoint earlier, xem có work không. Có vẻ tedious nhưng actually giving important info!

When To Ask For Help

Là junior Rubyist, đôi khi cần ask senior dev help. Vấn đề: quyết định khi keep debugging vs call help. Khi debugging, good idea try replicate problem. Set breakpoints với Pry, dig deeper. Sau 20-30 phút no closer to solution, có thể time to ask.

Give Pry A Try

Ready add Pry vào debugging arsenal, cần làm vài việc. First, install gem. Add vào Gemfile chạy bundle install: gem 'pry'

Hoặc manual install: gem install pry

Cần code expect Pry, đặt line này trong file:

require 'pry'

Xong! Up and running với Pry!