家計簿プログラム

簡単な家計簿プログラムのリファクタリングをしたお話し

github.com

昨年一人暮らしをする際に作ったrubygnuplotを用いたプログラムのリファクタリングをこの前行ったので、メモがてらにブログを久々に更新しようと思う。

リファクタリングを行った部分は、支出の計算部分に冗長性があったので、その部分に対してコードを纏めることで読みやすくした。

具体的には以前のコードだと

  # 固定費の計算
  n = 1
  total_one = 0
  tmp_one.size.times do
    total_one += tmp_one[tmp_one.size - n]
    n += 1
  end


  # 必要経費の計算
  n = 1
  total_two = 0
  tmp_two.size.times do
    total_two += tmp_two[tmp_two.size - n]
    n += 1
  end

~以下続く~

のように書いていて、変数部分の違いはあれど行っている処理は同じであった。

そのため、変数を1つの配列に纏めることで管理し、

  tmp_summary = [tmp_all, tmp_one, tmp_two, tmp_three, tmp_four]

その配列を動的に処理することで、纏めることに成功した。

# 計算部分  
    (tmp_summary.size).times do |summary|
      total = 0   
      (tmp_summary[summary].size).times do |tmp|
        total += tmp_summary[summary][tmp]
      end
      total_result << total
    end

今回、自分のコードをリファクタリングしてみて思ったことは、以前書いたコードでも久々に読み返してみたら忘れているところ及び読みづらいところがたくさんあったということ。

そして、その読みづらさは変数名が的を得ていない変数名だったからだと思うので、今後は変数名にも気をつけていきたいと思う。