From 8aeb6e4f9730c184b70de6426c28c369f6141b34 Mon Sep 17 00:00:00 2001 From: Pedro Henrique Garcia Date: Tue, 18 Oct 2022 19:48:11 -0300 Subject: [PATCH 1/3] refactor: abstract operations on random numbers --- refactor.js | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/refactor.js b/refactor.js index 3e1f351..34112d6 100644 --- a/refactor.js +++ b/refactor.js @@ -2,26 +2,16 @@ function returnRandomNumber() { return Math.random(); } -function sumToRandomNumber(num) { - const numberToSum = returnRandomNumber(); +function operateRandomNumber(num, operation) { + const number = returnRandomNumber(); - return `Seu número é ${Math.round(numberToSum * 100) + num}!`; + return `Seu número é ${operation(Math.round(number * 100), num)}!`; } -function subtractRandomNumber(num) { - const numberToSubtract = returnRandomNumber(); - - return `Seu número é ${Math.round(numberToSubtract * 100) - num}!`; -} - -function multiplyToRandomNumber(num) { - const numberToMultiply = returnRandomNumber(); - - return `Seu número é ${Math.round(numberToMultiply * 100) * num}!`; -} - -function divideRandomNumber(num) { - const numberToDivide = returnRandomNumber(); - - return `Seu número é ${Math.round(numberToDivide * 100) / num}!`; -} +// Para não estragarmos a interface publica, recriamos os metodos antigos com a nova mudança +// Além de diminuir a repetição de código, agora podemos também criar operações arbitrarias +// utilizando operateRandomNumber. +const sumToRandomNumber = (num) => operateRandomNumber(num, (a, b) => a + b); +const subtractRandomNumber = (num) => operateRandomNumber(num, (a, b) => a - b); +const multiplyToRandomNumber = (num) => operateRandomNumber(num, (a, b) => a * b); +const divideRandomNumber = (num) => operateRandomNumber(num, (a, b) => a / b); From f85becadfc88c5a72fb279b80f2b5459c1e25f9e Mon Sep 17 00:00:00 2001 From: Pedro Henrique Garcia Date: Tue, 18 Oct 2022 20:06:38 -0300 Subject: [PATCH 2/3] refactor: break down to multiple operations --- refactor.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/refactor.js b/refactor.js index 34112d6..aa42fa0 100644 --- a/refactor.js +++ b/refactor.js @@ -3,9 +3,11 @@ function returnRandomNumber() { } function operateRandomNumber(num, operation) { - const number = returnRandomNumber(); + // Número aléatorio entre 0 e 100 + const randomNumber = Math.round(returnRandomNumber() * 100); + const result = operation(randomNumber, num); - return `Seu número é ${operation(Math.round(number * 100), num)}!`; + return `Seu número é ${result}!`; } // Para não estragarmos a interface publica, recriamos os metodos antigos com a nova mudança From 95300a21ae7aa9f29a4eab3a8fa662d3a89171a3 Mon Sep 17 00:00:00 2001 From: Pedro Henrique Garcia Date: Tue, 18 Oct 2022 20:28:50 -0300 Subject: [PATCH 3/3] refactor: 2 spaces --- refactor.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/refactor.js b/refactor.js index aa42fa0..e11c537 100644 --- a/refactor.js +++ b/refactor.js @@ -3,11 +3,11 @@ function returnRandomNumber() { } function operateRandomNumber(num, operation) { - // Número aléatorio entre 0 e 100 - const randomNumber = Math.round(returnRandomNumber() * 100); - const result = operation(randomNumber, num); + // Número aléatorio entre 0 e 100 + const randomNumber = Math.round(returnRandomNumber() * 100); + const result = operation(randomNumber, num); - return `Seu número é ${result}!`; + return `Seu número é ${result}!`; } // Para não estragarmos a interface publica, recriamos os metodos antigos com a nova mudança