Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

100313-日曜プログラマーにとって、短いことは良いことかもしれない

 

100313long_short

前に作ったプログラムを改良しようと思っても、

長い

と読む気がしない。特に私のような日曜プログラマーは、仕事のように必要に迫られることはないので、なおさらである。

しかしひょっとすると、プログラムが

短い

なら、読む気が起こるかもしれない。というわけで、以前書いた天気予報を取得するプログラムを、なるべく少ない行数に書き直してみた。

require 'weatherhacks'
case Time.now.hour # 午前中なら午後の天気予報を、午後なら翌日の天気予報を表示
  when 0..11 then target_day = {:label => :today, :text => "今日"}
  when 12..23 then target_day = {:label => :tomorrow, :text => "明日"}
end
puts "#{target_day[:text]}の天気:#{WeatherHacks.lwws("東京", target_day[:label]).telop}"

前のものは13行、これを6行に縮めることができた。

個人的には、たまに振り返るには5~10行の長さが限度であるように思う。ただ、上のソースは、実際には文字コードSJISに変換しなければならないので以下のようになる。

# 文字コードSJISで出力させるための、おまじない
require 'kconv'
alias puts_original puts
def puts(string = "")
  puts_original(string.to_s.tosjis)
end

# 本体
require 'weatherhacks'
case Time.now.hour # 午前中なら午後の天気予報を、午後なら翌日の天気予報を表示
  when 0..11 then target_day = {:label => :today, :text => "今日"}
  when 12..23 then target_day = {:label => :tomorrow, :text => "明日"}
end
puts "#{target_day[:text]}の天気:#{WeatherHacks.lwws("東京", target_day[:label]).telop}"

今まで書いたプログラムも同じ方法で見返してみようかな・・・