Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rails解説セミナー: Railsアプリケーションのデバッグ

501 views

Published on

Railsガイド解説セミナーのスライド資料です

Railsガイド: http://railsguides.jp/
Railsガイド解説セミナー: http://railsguides.jp/options.html#seminar


【関連リンク】
Railsチュートリアル: http://railstutorial.jp/
Railsチュートリアル解説セミナー: http://railstutorial.jp/seminars
Railsスクリーンキャスト: http://railstutorial.jp/screencasts
Railsビギナーズ倶楽部: http://coedo-rails.doorkeeper.jp/

Published in: Education
  • Be the first to comment

Rails解説セミナー: Railsアプリケーションのデバッグ

  1. 1. アプリケーションのデバッグ編 Rails解説セミナー http://railsguides.jp/
  2. 2. セミナーを 始める前に
  3. 3. 講義中に参照したリンクはコメント欄で (質問もお気軽に) 講師のターミナルは下記 URL から閲覧できます :) http://screenx.tv/yasulab
  4. 4. Slide is in SlideShare! http://www.slideshare.net/yasulab/presentations
  5. 5. 質問はいつでもお気軽に! 個別相談は休憩や終了後に :)
  6. 6. Sample App で実験 :) https://github.com/yasslab/sample_app
  7. 7. 1. $ git clone 
 https://github.com/yasslab/sample_apps.git 2. 対象のディレクトリに移動後: $ git init ;
 $ bundle exec rake db:migrate
 $ bundle exec rake db:test:prepare
 $ bundle exec rake db:populate 3. $ gem install rails --version 4.0.5 4. $ rbenv install 2.2.2 5. $ gem install rails --version 4.2.3 下準備
  8. 8. Ready?
  9. 9. 解説セミナーを 進めていきましょう!
  10. 10. アプリケーションのデバッグ編 Rails解説セミナー http://railsguides.jp/
  11. 11. • 中級者∼上級者向けの大型リファレンス • 読み進める順番は特になく、機能毎に解説: • e.g. Active Record の基礎、バリデーション • e.g. Action View の概要、フォームヘルパー • e.g. Action Controller の概要、ルーティング • 例外: Railsをはじめよう → Rails チュートリアル • ウェブ版は全編無料! http://railsguides.jp/ Railsガイドとは?
  12. 12. 今回のテーマ
  13. 13. Rails アプリケーションのデバッグ http://railsguides.jp/debugging_rails_applications.html
  14. 14. • デバッグに利用できる View ヘルパー • Logger の紹介とデモ • お題: どこのページが一番時間が掛かってる? • byebug / web-console の紹介とデモ • コマンド: help, step, next, var, display, edit, quit • byebug で sign_in メソッドを探索してみよう! • web-console で sign_in してみよう! 今回やること
  15. 15. • デバッグに利用できる View ヘルパー • Logger の紹介とデモ • お題: どこのページが一番時間が掛かってる? • byebug / web-console の紹介とデモ • コマンド: help, step, next, var, display, edit, quit • byebug で sign_in メソッドを探索してみよう! • web-console で sign_in してみよう! 今回やること
  16. 16. • debug メソッド • to_yaml メソッド (+ simple_format メソッド) • inspect メソッド
 <%= simple_format params.to_yaml.inspect %>
 • お題: 確認してみよう!
 <%= debug params %> と
 <%= simple_format params.to_yaml %> は
 同じ結果になる? デバッグに役立つ View ヘルパー
  17. 17. • STDOUT出力とファイル出力
 Rails.logger = Logger.new("foobar")
 # config/initializers/logger.rb • デバッグの出力レベル
 logger.(debug|info|warn|error|fatal)
 緊急度: 低 debug <———> fatal 高 • rails s -e production のエラー原因を出力してみよう!
 本番環境を手元で作ってエラー原因を調べてみる
 # RAILS_ENV=production • お題: どこの処理が一番時間が掛かっている? Logger の紹介とデモ
  18. 18. • デバッグに利用できる View ヘルパー • Logger の紹介とデモ • お題: どこのページが一番時間が掛かってる? • byebug / web-console の紹介とデモ • コマンド: help, step, next, var, display, edit, quit • byebug で sign_in メソッドを探索してみよう! • web-console で sign_in してみよう! 今回やること
  19. 19. • Gemfile に byebug を追加
 `def sign_in(user)`の直後に `byebug` と追加して実行 • 各種コマンド:
 help コマンドの説明を表示する
 list 次の10行を表示して、Iterator を移動
 list- 前の10行を表示して、Iterator を移動
 list= Iterator を現在位置まで戻し、前後10行を表示
 backtrace 現在のコードに至るまでの過程を表示
 frame n 呼び出したメソッドの絶対位置に移動
 up [n] / down [n] 呼び出しメソッドに相対的に移動 byebug gem の紹介
  20. 20. • 各種コマンド (続き):
 Ctrl-d byebug から抜け出す
 thread [list|switch] 現在のスレッドを [表示 | 移動]
 next 次の1行を実行する (frame 内の次の行)
  # remember_token に値が代入されたことに注目
 var [local|global] スコープ内の変数を一覧表示する
 display 引数に与えられた変数を監視する
  # display @current_user でログイン情報を確認
 step 次に1行を実行する (frame 関係なく次の行)
  # @current_user は、いつ代入されるのか? byebug gem の紹介
  21. 21. • 他、細かいメソッドなど:
 break breakpointsの設置/表示などで使う
 catch 与えられた例外処理の種類を調査
 edit  エディタで与えられたファイルを開く
 quit  全てのスレッドを終了する (サーバも停止)
 set  各種設定を変更する
 system システムコマンドを呼び出す • お題: この self は誰?
 self.current_user = user
 # app/helpers/sessions_helper.rb byebug gem の紹介
  22. 22. • byebug の簡易ブラウザ版みたいなもの (併用化)
 Rails 4.2 から標準として導入された
 変数をちょっと確認したい時とかに便利 • Gemfile に web-console を追加
 gem 'web-console', '~> 2.0' • コード内に console を追加
 コントローラ: console
 ビューの場合: <% console %>
 いつも表示したい: application.html.erb に設置
 デモ: sign_in User.first を実行して byebug に入ろう! web-console gem の紹介
  23. 23. • デバッグに利用できる View ヘルパー • Logger の紹介とデモ • お題: どこのページが一番時間が掛かってる? • byebug / web-console の紹介とデモ • コマンド: help, step, next, var, display, edit, quit • byebug で sign_in メソッドを探索してみよう! • web-console で sign_in してみよう! 今回やること
  24. 24. お疲れ様でした
  25. 25. 今回やったこと • デバッグに利用できる View ヘルパー • Logger の紹介とデモ • お題: どこのページが一番時間が掛かってる? • byebug / web-console の紹介とデモ • コマンド: help, step, next, var, display, edit, quit • byebug で sign_in メソッドを探索してみよう! • web-console で sign_in してみよう!
  26. 26. 参考情報
  27. 27. Rails アプリケーションのデバッグ http://railsguides.jp/debugging_rails_applications.html
  28. 28. アプリケーションのデバッグ編 Rails解説セミナー http://railsguides.jp/

×