Desenvolva um código melhor com Object Calisthenics
O famoso código Hadouken
18 horas em plena sexta-feira, você doido para jogar um game e se depara com um código desse.
A vontade é de sair gritando, mas você como uma ótimo profissional, vai refatorar o código e deixar ele brilhando o/o/
Eis que eu te apresento o Object Calisthenics
O que é Object Calisthenics?
É um conjunto de boas práticas e regras criado pelos desenvolvedores Java, mas que servem para as demais linguagens.
Ao todo são 9 regras, vou explicar as mais simples eficientes.
Essas regras vão ajudar na manutenção do código, nos testes e até mesmo na compreensão.
레그라스
OBS: A linguagem utilizada é JavaScript, mas nada impede que você aplique os conceitos em outras linguagens.
Um nível de identação por método
function displayPyramid(numberOfLine) {
for (let index = 0; index < numberOfLine; index++) {
let output = "";
const limit = numberOfLine - index;
for (let secondIndex = 1; secondIndex < limit; secondIndex++) {
output += " ";
}
for (let thirdIndex = 1; thirdIndex <= 2 * index + 1; thirdIndex++) {
output += "*";
}
console.log(output);
}
}
Podemos extrair os dois laços for por duas funções separadas.
function getBlankSpace(numberOfLine, currentLineIndex) {
let output = "";
const limit = numberOfLine - currentLineIndex;
for (let index = 1; index < limit; index++) {
output += " ";
}
return output;
}
function getFilledPyramid(currentLineIndex) {
let output = "";
for (let index = 1; index <= 2 * currentLineIndex + 1; index++) {
output += "*";
}
return output;
}
function displayPyramid(numberOfLine) {
for (let index = 0; index < numberOfLine; index++) {
let output = "";
output += getBlankSpace(numberOfLine, index);
output += getFilledPyramid(index);
console.log(output);
}
}
ELSE를 사용하지 않음
function printSeat(ticketCode) {
if (ticketCode.startsWith("A") || ticketCode.startsWith("B")) {
printVipSeat();
} else {
printBasicSeat();
}
}
Faça um retorno antecipado
function printSeat(ticketCode) {
if (ticketCode.startsWith("A") || ticketCode.startsWith("B")) {
return printVipSeat();
}
return printBasicSeat();
}
혜택:
OBS: A linguagem utilizada é JavaScript, mas nada impede que você aplique os conceitos em outras linguagens.
Um nível de identação por método
function displayPyramid(numberOfLine) {
for (let index = 0; index < numberOfLine; index++) {
let output = "";
const limit = numberOfLine - index;
for (let secondIndex = 1; secondIndex < limit; secondIndex++) {
output += " ";
}
for (let thirdIndex = 1; thirdIndex <= 2 * index + 1; thirdIndex++) {
output += "*";
}
console.log(output);
}
}
Podemos extrair os dois laços for por duas funções separadas.
function getBlankSpace(numberOfLine, currentLineIndex) {
let output = "";
const limit = numberOfLine - currentLineIndex;
for (let index = 1; index < limit; index++) {
output += " ";
}
return output;
}
function getFilledPyramid(currentLineIndex) {
let output = "";
for (let index = 1; index <= 2 * currentLineIndex + 1; index++) {
output += "*";
}
return output;
}
function displayPyramid(numberOfLine) {
for (let index = 0; index < numberOfLine; index++) {
let output = "";
output += getBlankSpace(numberOfLine, index);
output += getFilledPyramid(index);
console.log(output);
}
}
ELSE를 사용하지 않음
function printSeat(ticketCode) {
if (ticketCode.startsWith("A") || ticketCode.startsWith("B")) {
printVipSeat();
} else {
printBasicSeat();
}
}
Faça um retorno antecipado
function printSeat(ticketCode) {
if (ticketCode.startsWith("A") || ticketCode.startsWith("B")) {
return printVipSeat();
}
return printBasicSeat();
}
혜택:
Não는 약어를 사용합니다.
let temp = 1;
const n = 5;
for (let i = 1; i <= n; i++) {
temp *= i;
console.log(`${i}! = ${temp}`);
}
Deixe seu código mais claro, uma mudança simples dessa evita que o seu colega perca horas tentando adivinhar o que cada variável faz
let temporary = 1;
const count = 5;
for (let index = 1; index <= count; index++) {
temporary *= index;
console.log(`${index}! = ${temporary}`);
}
혜택:
참조
Clean Code — Object Calisthenics in Javascript
Desenvolva um código melhor com Object Calisthenics
Object Calisthenics
결론
Quando falamos de um código limpo o que não falta é material disponível sobre o assunto. O que passei aqui foi só a ponta do 'iceberg', para vermos que pequenas mudanças no processo de escrita do código já podemos obter melhorias significativas na qualidade do que é produzido. 그녀는 Object Calisthenics에 관심이 있습니다.
Reference
이 문제에 관하여(Desenvolva um código melhor com Object Calisthenics), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pixelwolfhq/desenvolva-um-codigo-melhor-com-object-calisthenics-efe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)