##リーダブルコード11章「1度に1つのことを」をjavaで
1章の内容は
・コードはひとつずつタスクを行うようにしなければいけない
・タスクは小さくできる
というものですが、サンプルコードがjavascriptで書かれており、私はまだjavaの知識しかないもので、javaで説明していただきたいです。
サンプルコードと11章内容は以下の通りです。
ブログに設置する投票用のボタンがあり、ユーザーはアップ(賛成)とダウン(反対)を東京で来ます。scoreはすべての投票を合計したもので、アップは1点で、ダウンは-1点となります。
var vote_changed = function (old_vote, new_vote) { var score = get_score(); if (new_vate !== old_vote) { if (new_vote === 'Up') { score += (old_vote === 'Down' ? 2 : 1); } else if (new_vote === 'Down') { score -= (old_vote === 'Up' ? 2 : 1); } else if (new_vote === '') { score += (old_vote === 'Up' ? -1 : 1); } } set_score (score); }
ここでは、このコードに対して、
1.old_voteとnew_voteを数値にパースする
2.scoreを更新する
という2つのことがなされています。
2つのタスクを別々に行い読みやすいよう以下コードにします。
var vote_value = function (vote) { if (vote === 'Up') { return +1; } if (vote === 'Down') { return -1; } return 0; }
ここで投票を数値にパースし、
var vote_changed = function (old_vote, new_vote) { var score = get_score (); score -= vote_value(old_vote); score += vote_value(new_vote); }
これでスコアの更新を行うようにします。
以上javaでのサンプルコードを教えてください。
よろしくお願いいたします。