デバックについて
デバッグとは
コンピュータのプログラムの誤り(=バグ)を見つけ、手直しをすること。 詰まった時に、「どこに原因があるのかを追求する」ことがとっても大事!
分割統治法という。
ガチで超重要な考え方「問題の切り分け」について | Take off Rails
Rails アプリケーションのデバッグ - Railsガイド
何かが動かない
どの処理まで通っているのかを潰していくのがまじで大事。
モデル ビュー (erbだと囲み方気をつけてね) コントローラー ヘルパーなど
たとえその当該の処理が動かなくても、前述した分割統治法でどこか原因を探ればあたりがわかる。とにかく、細かく分割すること。これに尽きる。(N回目)
Rails(Ruby) でのデバッグは何を使うの?
byebug debugger binding.pry など
おすすめコマンド一部紹介
cd → 移動 (めちゃくちゃ長い命名 HogeFugaRunteqIizoControlles とかだとcd後のself確認が楽) ls → 変数とメソッドの一覧を表示 !!! → 強制終了 @ → whereamiのalias 現在位置を表示する ? → document見れる show-routes --grep users → rails routesみたいな感じ show-model User
helpで結構見れます.
cd -h とかしてみるとわかる
実践してみる
1 binding.pry 書いて値確認 2 nextで移動して確認 3 ls @user で何のメソッド生えてるかとか
細かいおすすめ紹介
省略しよう
こんな感じでaliasつけたりするとヨシ!
(ただ eという変数は例外で拾ったりので二文字にしたりする )
if defined?(PryByebug) Pry.commands.alias_command 's', 'step' Pry.commands.alias_command 'n', 'next' Pry.commands.alias_command 'f', 'finish' Pry.commands.alias_command 'c', 'continue' Pry.commands.alias_command 'ex', 'exit' end require 'awesome_print' AwesomePrint.pry! # もし挙動がおかしければ上記消せばOK # https://github.com/awesome-print/awesome_print
gem 'pry-rails' gem 'awesome_rails_console' gem 'awesome_print' (色がつく)
自分がやってるデバッグ方法
1とにかく処理を言語化しておく。
→ まず自分の頭がクリアになるし、丁寧に書いているとどこまで調べたか、人に聞く時に共有しやすい。
【解決したい】 エラー解決 【現状】 Aが~~なので、◎◎というエラーでてる 【処理】 A hoge B huga C hage 【仮説】 1. 〇〇 2. △△ 3. ✕✕
まず自分で自分に質問する(ラバーダッグデバッグ)
それでもわからなければ、質問してみる。
問題の解決策が瞬時に見つかる「ラバーダック・デバッグ」はいかが? | BAsixs(ベーシックス)
2自分のレベルに応じて質問を書く
雑談
Macの打ったコマンドを画面に表示するツール
キーボード操作の解説に便利!押したキーを画面上に表示できるMacアプリ「ShowKeys」 | iTea4.0
Alfred(これは、担当された方がガチでおすすめしていた。)
clipy
iterm
peco
tig
タブ補完とか、Macのショートカットキーは覚えよう!
Macアプリ「CheatSheet」 - ショートカットキーのリストを表示 | PC設定のカルマ
その他
・ログを見る
・リクエストされたのか何かを確認する。(ディベロッパーツール)
・Qiitaで調べて、その内容を深掘りしたい時は公式ドキュメントを見る。