Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

ジュニアRubyistが学ぶべき最重要ツール「Pry」——その理由と使い方を徹底解説

コードのバグを見つけるために、putsステートメントをあちこちに挿入して、実行結果が表示されることをひたすら祈ったことはありませんか?たとえば、こんなコードを書いてみる:

puts "うまくいった!"

これをコードに組み込んでターミナルで実行しても、何も表示されない——そんな経験があるのではないでしょうか。あるいは、Ruby開発者向けの高機能なデバッグツールの噂は聞いたことがあるけれど、難しそうで手を出せずにいるのかもしれません。結局、「スパゲッティ方式」のデバッグ、つまりエディタにコードを投げて当たるかどうか確かめる方法に頼ってしまうわけです。しかし、この方法では解決策が見つかる保証はまったくありません。

デバッグは、コーダー人生の終わりまで付き合っていくものです。ジュニア開発者だけの作業ではありません!バグを見つけるためのツールを早く習得するほど、長い目で見て大きなメリットになります。

では、どんなツールがあるのでしょうか?選択肢はたくさんありますが、今回はすべてのRubyistが使い方を知っておくべき優れたツールの一つ——Pryを掘り下げてみましょう。その仕組みと、なぜ重要なのかを学んでいきます。

Pryとは?

Pryはプログラムを一時停止(フリーズ)させ、コードの中に入り込んで「今何が起きているのか」「どこを修正すべきなのか」を確認できるデバッグツールです。最初は少し戸惑うかもしれませんが、同じジュニアRuby開発者として断言します——使えば使うほど扱いやすくなり、やがてPryなしでのプログラミングは考えられなくなるでしょう。

Pryは「強化版IRB」

おそらくあなたは、IRB(Interactive Ruby Shell)を使って、コードをお試し環境で実行し、何が機能して何が機能しないのかを確かめることに慣れていることでしょう。IRBもデバッグに役立つ便利なツールです。Pryの一部はこれと似た働きをしますが、さらに多くの機能が備わっています。IRBもPryもREPLコマンド(Read=読み込み、Evaluate=評価、Print=出力、Loop=ループ)を採用しています。しかし、Pryはデバッグにおいてさらに先へ進めます。たとえば、Pryには構文を色分けして表示する機能があり、コードが実行されたときに何が起こるかを把握する際にとても役立ちます。ミスに気づきやすくなり、コードの修正も格段に楽になるのです。

サンプルコード

ジュニアRubyistが学ぶべき最重要ツール「Pry」——その理由と使い方を徹底解説

デバッグについての補足

すでにお伝えしましたが、もう一度強調しておきましょう——デバッグは、すべてのプログラマーがキャリアを通じて行うものです。こうしたツールを学ぶことに「ジュニアらしい」要素などまったくありません。早く学べば学ぶほど、より優れたプログラマーになれるのです。

Pryでブレークポイントを設定する

さて、ここからはPryの最も強力な機能の一つである「ブレークポイントの設定」を見ていきましょう。コードが期待どおりに動かず、本当に苦労している状況を想像してください(誰もが一度は経験しますよね)。

そんなときは、期待どおりに動作していない部分のコードにブレークポイントを設定します。すると、Pryがその時点でプログラムを停止した状態にし、内部を自由に調べられるようになります。具体例で見るのが一番わかりやすいでしょう。

表示したいユーザー情報が正しくセットされているかどうかを調べたいとします。まず、コードにbinding.pryを追加します。問題を引き起こしているコード行の直前にbinding.pryを配置して、コードを実行します。

ジュニアRubyistが学ぶべき最重要ツール「Pry」——その理由と使い方を徹底解説

次に、このコードが実行されるページにアクセスしてみます。Railsサーバーをローカルで起動しているなら、localhost:3000/users/1 にアクセスしてみましょう。

すると、IRBに似たコンソールが立ち上がり、そこでコードを試したり、実際に何が起こっているのかを確認したりできるのです。

ジュニアRubyistが学ぶべき最重要ツール「Pry」——その理由と使い方を徹底解説

この状態で、変数@userに正しいユーザーIDがセットされているかどうかを確認できます。

ジュニアRubyistが学ぶべき最重要ツール「Pry」——その理由と使い方を徹底解説

ユーザーがログイン済みかどうかを確認することもできます:

ジュニアRubyistが学ぶべき最重要ツール「Pry」——その理由と使い方を徹底解説

何も起こらない場合は?

ブレークポイントを設定してコードを実行したのに、Pryに入らず、何も起こらないように見えることがあります。これはイライラさせられますが、実は重要な手がかりでもあります。それは、コードがその地点まで到達しておらず、Pryが発火しなかったという意味だからです。ではどうすればいいのでしょうか?答えは、コードのより前の段階に新しいブレークポイントを設定して、そこで止まるかどうか確かめることです。地味で面倒に思えるかもしれませんが、これは「処理がどこまで進んでいるのか」という貴重な情報を教えてくれるのです!

ヘルプを求めるタイミング

ジュニアRubyistとしては、時により経験豊富な開発者に助けを求める必要があります。問題は、「いつまで自分でデバッグを続け、いつ助けを呼ぶべきか」の判断です。デバッグ中は、まず問題を自分で再現できるか試してみるとよいでしょう。Pryでブレークポイントを設定し、コードを深く掘り下げます。20〜30分経っても解決策に近づいていないようなら、そろそろ助けを求めるタイミングかもしれません。

さっそくPryを使ってみよう

デバッグツールの武器庫にPryを加える準備ができたら、いくつかのステップを行います。まず、gemをインストールしましょう。Gemfileに以下を追加してbundle installを実行する方法があります:

gem 'pry'

または、手動でインストールすることもできます:

gem install pry

さらに、コード側でもPryを読み込む必要があるため、使用するファイルに以下の行を追加します:

require 'pry'

以上です!これでPryを使い始める準備は完了です!

  1. Xbox Oneを最大限に活用するための6つのヒント|ゲーム体験をワンランク上へ

    家庭用ゲーム機といえば、PlayStation 4に真っ向から対抗しうる強力なライバルといえば、やはりXbox Oneをおいて他にありません。ソニーのPlayStationであれ、Xbox Oneであれ、どちらのゲーム機もあなたのゲーム体験をまったく新しい次元へと引き上げるポテンシャルを秘めています。 2016年に発売されたXbox One Sは、世界中で大きな話題を呼び、ゲーム業界に旋風を巻き起こした大ヒット作となりました。その後、2017年には後継モデルとなるXbox One Xが登場。圧倒的な4K解像度でのゲームプレイを実現し、多くのゲーマーから不動の人気を誇る名機となりました。 すで

  2. スマホで小説デビュー!新進小説家のためのおすすめ執筆アプリ10選

    「最新のガジェットや便利ツールがないから、夢だった小説を書き始められない」と、つい言い訳をしてしまうことはありませんか?実は、スマートフォンさえあれば十分なのです。移動中でも、深夜3時にふとインスピレーションが湧いてベッドで横になっているときでも、すぐに書き留められる手軽なツールです。必要なのは、スマホに最適な小説執筆アプリだけ。あとは自分だけの物語の旅(オデッセイ)を始めるのみです。ここでは、スマホユーザーにおすすめの最高の小説執筆アプリをご紹介します。 スマホで使えるおすすめ小説執筆アプリベスト10 以下にご紹介するのは、スマホユーザー向けの厳選ライティングアプリです。これらを使えば、小説