はじめまして。
Qiita は読み専だったのですが、アウトプットも行いたいと思い、投稿をすることにしました。
よろしくお願いいたします。
概要
Ruby でより良いコードを書くための話題では無いです。(すみません)
開発時、特に動作確認(不具合修正を含む)を行う時に実施すると
少しだけ作業に掛かるコストが低減される
というお話しです。
1. デバッグ目的の出力処理などは行頭に書くと良い(理由:あとで探しやすいから)
(これは Ruby に限った話しではありませんが)
簡単な動作確認のために、中身を見たいオブジェクトの内容を
出力させて目視する、という手段は一般的かと思います。
そのような(最終製品には含まれない)目的で使うコードは行頭から書くと良いです。
このような感じです:
def hoge(arg)
if arg.class != Hash
print "arg の class は? : "; pp arg.class
end
...
end
このように書いておくと、後で(必要なくなってから)削除する時に
^p(p|rint|uts)
という(正規表現による)検索一つで、一括削除できます。
2. 同様に exit も行頭に書くと良い
動作を確認する時に、処理の途中で中断したい時は exit を使う事もあると思います。(自分はそうしています)
その時も行の先頭に書くと良いです。
理由は上記 1. と同じで、どこで強制終了させているのかが探しやすいからです。
3. それ専用の exit を用意する
単純に exit を書くだけだと、コンソール出力上は問題なく終了したように見えてしまう、という問題が起きることがあります。
そのため、このように:
def 自分が作成したクラス.exit_force()
puts # 以下で出力している情報を見やすくするため、最初に改行する
puts "<<< 強制的に exit() しています >>>" # 何をしているかをユーザに表明しておく
puts "呼び出し履歴 :"
pp caller() # 呼び出し情報を表示する。一番近いところだけなら caller()[0] を表示すれば良いです
exit
end
自前で専用メソッドを作成/使用する事で、確実に
「意図して中断している」
事が分かるようになります。
また上記コード例のように
caller()
も出力することで、「どこで」中断しているかという情報も確認できます。
以上です。
これだけの事ですが、やってみると割と役に立ちます(実体験)。