できるRubyプログラマになるためのデバッグ手法7選

できるRubyプログラマになるためのデバッグ手法7選
貝原 輝昌
書いた人 貝原 輝昌

こんにちは!Webコーダー・プログラマーの貝原(@touhicomu)です。

今日はRubyデバッグを行う方法について解説したいと思います。

この記事では、

  • puts、p、ppを使ったデバッグ方法
  • loggerを使ったデバッグ方法

という基本的な内容から、

  • Rubyのpry-debugでデバッグ実行する方法
  • Ruby On Rails でデバッグする方法
  • RubyをIDEでデバッグする方法

などの応用的な使い方に関しても学習していきます。

このページで、Rubyデバッグ、logger、pry、Railsの使い方をよく把握して自分のスキルとしていきましょう!

Rubyの基本的なデバッグ方法

puts、p、ppを使ったデバッグ方法

Rubyでデバッグを行う際、基本的な手法として用いるメソッドにputsやp、ppなどがあります。

まず、putsを見てきましょう。

putsは引数の文字列を画面に出力するメソッドです。

主に変数値の確認を行います。

引数が文字列である必要があるため、to_sメソッドが必要です。

実行結果:

以上のように、putsメソッドで変数の値を画面に出力できました。

また、putsの引数は文字列である必要があるため、to_sメソッドを使用します。

次に、pとppメソッドを使用してみましょう。

pは引数のオブジェクトを表示します。

ppはpretty pの略で、pよりも読みやすくオブジェクトを表示します。

以下、サンプルコードで確認してみましょう。

実行結果:

以上のように、pは引数のオブジェクトをユーザーの見やすさという点を気にせずそのまま表示します。

ppは引数のオブジェクトをユーザーの見やすさを考慮して表示します。

Rubyのputs、p、ppやprintfなどの表示系のメソッドについて詳しくは、以下の記事を参照してください。

loggerを使ったデバッグ方法

Rubyのloggerを使えば、Rubyプログラムの実行時に、実行と同時に変数値をログファイルに残すことができます。

ログには出力レベルがあり、Rubyの実行時に最大出力レベルを選択できます。

実行結果(’loglevel.log’):

以上のように、Rubyの実行時にログを出力できました。

Rubyのログ出力、およびloggerについて詳しくは、以下の記事を参照してください。

Rubyの応用的なデバッグ方法

Rubyのpry-debugでデバッグ実行する方法

Rubyのコマンドライン上でのデバッガとして、pry-byebugがあります。

コマンドライン上でデバッグモードになり、そこからデバッグが可能です。

pry-byebugは、コマンドラインから手軽に起動できます。

また、Rubyのソースコードにpry-byebugのブレークポイントを挿入して実行すると自動的にpry-byebugを起動できます。

この手軽さと、充実したデバッグ機能のため、pry-byebugが一番よく使われるRubyのデバッガです。

できるRubyプログラマになるためには、pry-byebugは必須の技術になってきます。

pry-byebugはブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの多くのデバッガとしての機能を備えています。

全てがCLIでの操作でデバッグが完結します。またTABキーを押すことによりデバッグ用コマンドを補完する機能もあり、使い勝手も良いです。

pry-byebugについては、下記記事をご参照ください。

Ruby On Rails でデバッグする方法

loggerを使う方法

Railsでもloggerを使用できます。

loggerは

・config/application.rb
・config/evironments/development.rb
・config/evironments/production.rb
・config/evironments/test.rb

のいずれかの初期設定ファイルであればconfig.〇〇〜で始まるコードで設定できます。

これらconfigファイル内で、

もしくは、

のコードを書くことで、loggerを設定できます。

ログを書くには、以下のようなコードを書きます。

Railsのloggerについて詳しくは、以下の記事を参照してください。

pry-bydebugを使う方法

Rubyのデバッグ時にpryを使用したのと同じように、Railsのコンソール(console)でもpryを使用できます。

pryはRailsでは、ステップ実行やステップインなどの行単位の実行や変数値表示の他、Railsのモデルやルーティング、ミドルウェアにも対応できます。

その他、メソッド検索、ドキュメント参照、カレントディレクトリ移動(cd)やls、TABキーでのコード補完にも対応しています。

Railsでのpryの使い方について詳しくは、以下の記事を参照してください。

RubyをIDEでデバッグする方法

Eclipseでデバッグする方法

Eclipseとは、IBMが制作しその後オープンソースとして公開した、Javaで作られた汎用IDEです。

ブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの機能はもちろん使えます。

EclipseはRubyにも対応しており、これを使うとIDEを使ってRubyをデバッグできます。

GUIでデバッグできるため、大変重宝します。

参考サイト:
WindowsでEclipse+Ruby | FILES=0

VSCodeでデバッグする方法

VSCodeとは、MicrosoftがWindows/Mac/Linux向けに提供しているフリーの高機能エディタです。

起動も軽く、拡張機能も方法で、色々な言語に対応しています。またデバッグにも対応しています。

Eclipseと同じく、ブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの機能を備えています。

VSCodeもRuby拡張機能を追加インストールすることで、RubyのデバッグがGUIで可能になります。

参考サイト:
Visual Studio CodeによるRubyのデバッグ | Developers.IO

Emacsでデバッグする方法

Emacsとは、古くからUNIX/Linux向けに提供されていたフリーの高機能エディタです。

現在は、Max/Linux/Windows向けに提供されています。

もともとコマンドライン上で使用することが多かったエディタで、Unixの思想を受け継いでいるため、若干の癖がありますが、機能は豊富です。

EmacsはRubyのデバッグにも対応しています。

Emacsでも、ブレークポイント、ステップ実行、変数ウォッチ、スタックトレースなどの機能を備えています。

参考サイト:
Emacsでrubydbを利用してステップ実行する | Futurismo

まとめ

今回は、Rubyデバッグ、logger、pry、Rails について学習しました!

学習のポイントを振り返ってみましょう!

  • 変数値の表示にはputs、p、ppなどが使用できる。
  • loggerによりファイルに変数値を書き込める。
  • pryにより、Rubyを実行しながら変数値などを確認できる。
  • Railsでもpryにより実行中の変数値などを確認できる。
  • IDEでRubyのデバッグをサポートしている製品もある。

以上の内容を再確認し、ぜひ自分のプログラムに生かし学習を進めてください!

Rubyカリキュラム無料公開中!
この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


Rubyを最短で習得したい方へ
近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」
このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a2

学習者インタビュー

人気記事セレクション

エンジニア転職希望者必見

プログラミング学習者必見

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

貝原 輝昌

貝原 輝昌

こんにちは!貝原(@touhicomu)と申します。
現在は、Web業界のフリーランスとして、主にPHP/WordPress/BuddyPress/VPSサーバー構築などの業務を受注しています。
現住所は、日本の西海岸、長崎県は波佐見町です。田舎ライフです。^^
地元の観光団体「笑楽井石」にボランティアでほたる撮影会やそば塾などのスタッフとして参加させて頂いています。
以下の活動も行っています。
 ・笑楽井石のブログ
 ・エクセル関数を日本語化するソフト
 ・エクセルVBAを日本語で記述するソフト