1行のコードでも、メソッド化するのはアリでしょうか?
例えば、下記の(2)のように、
putsするだけのコードでも、ぱっと見で理解するのに時間がかかるものを
メソッド化しておくと、読みやすいなと思いました。
(1) メソッドは変数を返すものとして、コード内でputsする
def elapsed_time time_elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) time = (time_elapsed - @time_start).round(2) end puts "経過経過: #{elapsed_time}秒 (#{host_name}: #{woker_no} #{usee_name}) "
(2) putsするだけのメソッドを作成
1行のためだけにメソッド化すると、修正の際に、読みに行く手間がかかることと、
putsするためのメソッドが大量に出来てしまう。
しかし、メインのコードがとても読みやすい
def elapsed_time time_elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) time = (time_elapsed - @time_start).round(2) end def puts_elapsed_time puts "経過経過: #{elapsed_time}秒 (#{host_name}: #{woker_no} #{usee_name}) " end puts_elapsed_time
(3) putsまでしてしまうメソッドを作成し、別の場所で使用するときはreturnの値を使う
puts_elapsed_timeがputsするものなのか、値の利用もするものなの分かりにくい??
def puts_elapsed_time time_elapsed = Process.clock_gettime(Process::CLOCK_MONOTONIC) time = (time_elapsed - @time_start).round(2) puts "経過経過: #{time}秒 (#{host_name}: #{woker_no} #{usee_name}) " return time end puts_elapsed_time # 初回の処理 puts "#{puts_elapsed_time}秒経過しました" # 別の場所で表示方法を変えて使いたい時
どの使い方がよいでしょうか?
(2)が一番良い気がしているのですが、そうすると
putsするためのメソッドが大量に出来てしまう気もしていて、
迷い中です。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。