Rodrigo Brito
@rodrigo-brito
@RodrigoFBrito
Desenvolvedor
Pesquisador
Gopher
O pulmão do paciente está fora do lugar. Não tem problema, na próxima cirurgia consertamos isso.
ABSURDO
Essa função está estranha. Fiz um workarround antes da entrega. Na próxima sprint consertamos isso.
NORMAL
O cliente quer o prédio pronto hoje. Pode instalar uma janela provisória de papel.
ABSURDO
(Aparecido et al., 2013)
Robert C. Martin, Clean Code
Consequentemente...
Martin Fowler
Kent Beck (Once And Only Once) / Martin Fowler (Refactoring)
/*
* Converte data para formato dd/MM/yyyy
*/
function convert(v) {
return +new Date(v)
}
function convertDateToTimestamp(dateValue: string): number {
return +new Date(dateValue);
}
function checkType(value) {
if (value % 2 == 0) {
return "Par";
} else if(value % 2 == 1) {
return "Ímpar";
}
}
function checkType(value) {
if (value % 2 == 0) {
return "Par";
}
return "Ímpar";
}
function yesterday() {
const today = new Date();
const weekdays = ["Dom","Seg","Ter","Qua","Qui","Sex","Sab"];
const index = (today.getDay() - 1) % weekdays.length;
return weekdays[index];
}
function tomorrow() {
const today = new Date();
const weekdays = ["Dom","Seg","Ter","Qua","Qui","Sex","Sab"];
const index = (today.getDay() + 1) % weekdays.length;
return weekdays[index];
}
function shiftCurrentDay(shift) {
const today = new Date();
const weekdays = ["Dom","Seg","Ter","Qua","Qui","Sex","Sab"];
const index = (today.getDay() + shift) % weekdays.length;
return weekdays[index];
}
function yesterday() {
return shiftCurrentDay(-1);
}
function tomorrow() {
return shiftCurrentDay(1);
}
Domain Drive Design
S - Single responsibility
O - Open/closed
L - Liskov substitution
I - Interface segregation
D - Dependency inversion
@RodrigoFBrito