#15 Rubyで学ぶデバッグの基本
Rubyのデバッグは、`puts`を使った手軽な方法に加えて、`pry`や標準の`debug`ライブラリという便利なツールがよく使われます。この記事では、Rubyにおけるデバッグの基本的な方法を、簡単なものから順に解説します。
putsでその場の状態を確認する
puts "ageの中身: #{age}"
変数の中身をコンソールに出力する、もっとも手軽な確認方法です。ただし対象が配列やハッシュのような複雑なデータだと、見づらい出力になってしまうことがあります。
pというさらに詳しい表示方法
`puts`より詳しい情報を表示したい場合は、`p`という機能を使います。
p person
`p`は`puts`と違い、文字列であれば引用符付きで、配列やハッシュであればそのままの構造が分かる形で出力してくれます。デバッグ目的であれば`puts`より`p`のほうが向いています。
ppでさらに見やすく
ハッシュや配列がネストして複雑になっている場合は、`pp`(pretty print)を使うと、インデントを付けて見やすく整形して出力してくれます。
require "pp"
pp user_data
pry / debugというツール
Rubyには`pry`や`debug`といったツールがあり、コードの途中に1行差し込むだけで、その場で処理を一時停止し、対話的に変数の中身を確認できます。
require 'debug'
binding.break
処理が一時停止すると、そのコンソール上でRubyのコードをそのまま実行できるようになります。変数の値を確認するだけでなく、その場でメソッドを呼び出して結果を試すこともできるため、原因調査のスピードが大きく変わります。停止後は`c`(continue)で処理を再開、`n`(next)で1行ずつ進める、といった操作が可能です。
Rubyならではの注意点
`binding.break`(または`binding.pry`)を差し込む方法は、`print`によるデバッグよりもはるかに効率的に原因を調査できます。Rubyの標準`debug`ライブラリはRuby 3.1以降デフォルトでインストールされており、追加のgemインストールなしに使える点も覚えておくと便利です。Rubyでの本格的な開発では、早い段階でこうしたツールの使い方に慣れておくとよいでしょう。また、`binding.break`を本番コードに残したままデプロイしてしまうと処理がそこで止まってしまうため、デバッグが終わったら必ず削除する習慣も大切です。
まとめ
Rubyのデバッグは`puts`・`p`・`pp`が手軽ですが、`pry`や`debug`を使った対話的な調査がより効率的です。変数の中身を確認するだけでなく、その場でコードを試せる強力さを活用してみましょう。エラーメッセージだけを見て推測するより、実際に処理を止めて中身を覗くほうが、原因特定までの時間を大きく短縮できます。
本ページはプロモーションを含みます。
参考書籍(PR)
Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿