Bạn đã bao giờ cố gắng gỡ lỗi mã của mình bằng cách nhập các câu lệnh đặt và hy vọng cuối cùng chúng sẽ hiển thị ở nơi cần thiết chưa? Bạn hiểu ý tôi - bạn nhập:
puts “This worked!"
vào mã và sau đó chạy nó trong thiết bị đầu cuối, chỉ để không có gì hiển thị. Hoặc có thể bạn đã nghe nói về các công cụ gỡ lỗi ưa thích có sẵn cho các Rubyists nhưng ngại thử chúng. Vì vậy, thay vào đó, bạn sử dụng phương pháp gỡ lỗi spaghetti:ném mã vào trình soạn thảo văn bản của bạn và xem những gì dính. Vấn đề là, phương pháp này không đảm bảo một giải pháp.
Gỡ lỗi là việc bạn sẽ làm trong phần còn lại của cuộc đời viết mã của mình. Nó không chỉ dành cho các nhà phát triển cấp dưới! Tìm hiểu các công cụ giúp bạn tìm ra lỗi trong mã của mình càng sớm thì bạn càng có lợi về lâu dài.
Vậy những công cụ ngoài kia là gì? Mặc dù có nhiều sự lựa chọn, nhưng hôm nay chúng ta sẽ tìm hiểu một trong những công cụ tuyệt vời mà mọi Rubyist nên biết cách sử dụng - Pry. Chúng ta sẽ tìm hiểu cách thức hoạt động và tại sao nó lại quan trọng.
Pry là gì?
Pry đóng băng chương trình của bạn để bạn có thể truy cập vào mã của mình và tìm hiểu xem điều gì đang xảy ra và điều gì cần khắc phục. Pry thoạt nhìn có thể khó hiểu, nhưng hãy lấy nó từ một người đồng cấp Ruby Dev - nó sẽ dễ dàng hơn khi bạn sử dụng nó và chẳng bao lâu nữa bạn sẽ không bao giờ muốn lập trình mà không có nó.
Pry giống IRB trên steroid
Rất có thể, bạn đã cảm thấy thoải mái khi sử dụng IRB (Interactive Ruby Shell), nơi bạn có thể lấy mã của mình và chạy nó trong một sân chơi để tìm ra cái nào hiệu quả và cái gì không. Nó cũng có thể là một công cụ hữu ích để gỡ lỗi. Một phần của Pry hoạt động theo cách tương tự, nhưng có thêm các tính năng. Cả IRB và Pry đều sử dụng các lệnh REPL:Đọc, Đánh giá, In và Vòng lặp. Nhưng Pry cho phép bạn tiến xa hơn khi gỡ lỗi. Ví dụ:Pry cung cấp cho bạn cú pháp mã hóa màu, điều này giúp ích khi bạn đang cố gắng tìm ra điều gì sẽ xảy ra khi mã được thực thi. Nó làm cho các lỗi dễ phát hiện hơn, giúp mã của bạn dễ sửa hơn.
Mã mẫu
Lưu ý về gỡ lỗi
Người ta đã nói rồi, nhưng cần phải nói lại - gỡ lỗi là việc mà tất cả các lập trình viên đều làm trong suốt sự nghiệp của họ. Không có gì cơ bản về việc học những công cụ này cả! Vì vậy, bạn học chúng càng sớm, bạn sẽ càng trở thành một lập trình viên giỏi hơn.
Đặt điểm ngắt với Pry
Bây giờ đã đến lúc xem xét một trong những tính năng tốt nhất của Pry - thiết lập các điểm ngắt trong mã của bạn. Giả sử bạn đang gặp rất nhiều khó khăn để mã của mình chạy theo cách bạn mong đợi. (Tất cả chúng ta đều đã ở đó, phải không?)
Những gì bạn có thể làm là đặt một điểm ngắt trong phần mã không hoạt động như mong đợi và sau đó bạn sẽ nhận được một phiên bản của Pry, nhưng tại một điểm bị đóng băng. Cách tốt nhất để giải thích điều này là với một ví dụ.
Giả sử chúng tôi đang cố gắng tìm hiểu xem người dùng mà chúng tôi muốn xem có được đặt đúng cách hay không. Đầu tiên, chúng ta có thể thêm bind.pry vào mã. Đặt ràng buộc.pry ngay trên dòng mã đang gây ra sự cố và sau đó chạy mã.
Tiếp theo, chúng tôi thử nhấn vào trang sẽ kích hoạt mã này. Vì chúng tôi đang chạy cục bộ máy chủ rails, chúng tôi sẽ thử truy cập:localhost:3000 / users / 1
Bạn sẽ thấy rằng bạn đang ở trong một bảng điều khiển giống IRB, nơi bạn có thể kiểm tra mã của mình và xem điều gì đang xảy ra.
Tại thời điểm này, chúng tôi có thể kiểm tra xem '@user' có được đặt thành id người dùng phù hợp hay không.
Chúng tôi cũng có thể kiểm tra xem người dùng của chúng tôi đã đăng nhập hay chưa:
Điều gì sẽ xảy ra nếu không có gì xảy ra?
Đôi khi bạn sẽ đặt các điểm ngắt, chạy mã và thay vì hạ cánh bên trong Pry, dường như không có gì xảy ra. Mặc dù điều này có thể gây khó chịu, nhưng nó thực sự cho thấy một manh mối. Nó có nghĩa là mã của bạn không bao giờ kích hoạt Pry vì nó chưa bao giờ đi xa đến vậy. Vậy bạn làm gì? Bạn đặt một điểm ngắt mới trước đó trong mã và xem liệu điều đó có hoạt động hay không. Mặc dù điều này có vẻ tẻ nhạt, nhưng nó thực sự cung cấp cho bạn thông tin quan trọng!
Khi nào cần giúp đỡ
Là một Rubyist sơ cấp, đôi khi bạn sẽ cần nhờ đến sự trợ giúp của một nhà phát triển cao cấp hơn. Vấn đề là quyết định khi nào nên tiếp tục gỡ lỗi và khi nào nên gọi trợ giúp. Khi gỡ lỗi, bạn nên thử tái tạo vấn đề. Đặt các điểm ngắt của bạn với Pry và tìm hiểu sâu hơn về mã. Nếu sau 20-30 phút mà bạn không tìm được giải pháp, có thể đã đến lúc yêu cầu hỗ trợ.
Hãy thử Pry
Khi bạn đã sẵn sàng thêm Pry vào kho công cụ gỡ lỗi của mình, bạn sẽ cần thực hiện một số việc. Đầu tiên, bạn cần cài đặt gem. Bạn có thể thực hiện việc này bằng cách thêm nó vào tệp gem của mình và chạy cài đặt gói:gem 'pry'
Hoặc, bạn có thể cài đặt nó theo cách thủ công:gem install pry
Bạn cũng sẽ cần đảm bảo mã của mình đang mong đợi Pry, vì vậy hãy đặt dòng này vào tệp của bạn:
require 'pry'
Và đó là nó! Bạn đang sử dụng Pry!