Skip to content

Instantly share code, notes, and snippets.

View rsmelo92's full-sized avatar
🌎

Rafael Melo rsmelo92

🌎
View GitHub Profile
// *SMELL*
function mutableData() {
let name = {
firstName: "Rafael",
lastName: "Melo"
};
name = `${name.firstName} ${name.lastName}`;
return name;
}
// *SMELL*
function ballSports() {
const playersTypes = [
{name: "soccerPlayers", usesFeet: true, usesHands: false},
{name: "basketPlayers", usesFeet: false, usesHands: true},
{name: "volleyPlayers", usesFeet: false, usesHands: true},
{name: "hockeyPlayers", usesFeet: false, usesHands: false}
// WHAT IF WE NEED TO ADD {name: "baseballPlayers", usesFeet: false, usesHands: false} ?
];
@rsmelo92
rsmelo92 / long.js
Last active January 13, 2020 15:12
// *SMELL*
function convertTemperatures(farenheit, celcius, kelvin) {
const farenheitToCelcius = (5 / 9) * (farenheit - 32);
const farenheitToKelvin = ((farenheit - 32) / 1.8) + 273.15;
const celciusToFarenheit = (celcius * 1.8) + 32;
const celciusToKelvin = celcius + 273.15;
const kelvinToFarenheit = kelvin * 1.8 - 459.67;
const kelvinToCelcius = kelvin - 273.15;
// *SMELL*
function generateUsername(userId, name, email, username, phone, address, country, age) {
return {
username: username || `${name}_${age}`,
userId,
name,
email,
phone,
address,
country,
// *SMELL*
// Our program only needs farenheit to celcius, but the programmer thinks: what if in the future we need every temperature?
// He searches on google and add modules to every temparature he can find. But what happens is that in 5 years the program is
// only used with celsius to farenheit and the modules he wrote thinking in the future actually is never used, not even once.
function convertToCelcius(temperature) {
const farenheitConversion = (5 / 9) * (temperature - 32);
const kelvinConversion = temperature - 273.15;
const rankineConversion = (temperature - 491.67) * (5 / 9);
const reaumurConversion = temperature * 1.25;
return {
// BEFORE
function printOwing(invoice) {
printBanner();
const outstanding = calculateOutstanding();
//print details
console.log(`name: ${invoice.custome},`);
console.log(`amount: ${outstanding},`);
}
//BEFORE
function getRating(driver) {
return moreThanFiveLateDeliveries(driver) ? 2 : 1;
}
function moreThanFiveLateDeliveries(driver) {
return driver.numberOfLateDeliveries > 5;
}
//AFTER
//BEFORE
function extractVariable(order) {
return order.quantity * order.itemPrice -
Math.max(0, order.quantity - 500) * order.itemPrice * 0.05 +
Math.min(order.quantity * order.itemPrice *0.1, 100)
}
//AFTER
function extractVariable(order) {
const basePrice = order.quantity * order.itemPrice;
//BEFORE
function inlineVariable(order) {
const basePrice = order.basePrice;
return basePrice > 1000;
}
//AFTER
function inlineVariable(order) {
return order.basePrice > 1000;
}
//BEFORE
function circum(radius) {
return 2 * Math.PI * radius;
}
//AFTER
function circumference(radius) {
return 2 * Math.PI * radius;
}