自作タイマーのコードをリファクタリングしてみた
JavaScriptで作ったインターバルタイマーですが、重複している部分や命名がテキトウな部分が多々あるため同じ操作をしている部分は一つの関数にし記述量を減らし読みやすくしてみたした。
また記事中の用語の説明は参考したページをキッカケに知識を深めていただけると幸いです。
以下は自作インターバルタイマーを扱った記事です。 1) JavaScriptでインターバルタイマーを作ってみた。 2) JavaScriptで正確なタイマーを作るためにしたこと
リファクタリングとは?
外部から見た時の挙動は変えずに、プログラムの内部構造を整理すること
DRY原則とは?
Don`t Repeat Your Self (繰り返しを避けること)の頭文字をとったものであり、「重複」を嫌う原則であります。
しかし下記のページより今回することはOAOO(Once And Only Once)原則をしていると思います。
変更箇所
let time = new Date;
let nowYear = time.getFullYear();
let nowMonth = time.getMonth();
let nowDate = time.getDate();
let nowHour = time.getHours();
let nowMin = time.getMinutes();
let nowSec = time.getSeconds();
nowMin = nowMin + setmin;
nowSec = nowSec + setsec+2;
let remaining = new Date(nowYear, nowMonth, nowDate, nowHour, nowMin, nowSec);
remaining_time = remaining.getTime();
上記コードはインターバルタイマーで現在時刻をとってきて終了時刻を作っている部分になるのですが、同じ記述をしている箇所がもう2つあったので関数にしました。
まとめ
今回修正できた箇所はこの部分だけでした。
原因はテストコードを書いていなかった修正前と修正後の動作を保証できなかったからです。
なので次はフロントのユニットテストを作ってから出直したいと思います。
参考
美味しいご飯に使わせてもらいますmm