DEV Community

Cover image for Formatação (Código Limpo: Que Bruxaria é Essa?!?! - Parte 10)
ananopaisdojavascript
ananopaisdojavascript

Posted on

Formatação (Código Limpo: Que Bruxaria é Essa?!?! - Parte 10)

Formatação é subjetivo. Como várias das regras mencionadas aqui, não há uma regra difícil e rápida que você tenha que seguir. O ponto principal é NÃO DISCUTA a respeito de formatação. Há toneladas de ferramentas para automatizá-la. Use uma! Discutir sobre formatação é um desperdício de tempo e dinheiro para engenheiros. Para o que não está ao alcance da formatação automática (alinhamento, tabulação vs. espaço, aspas duplas vs. aspas simples), veja aqui algumas orientações.

Uso consistente de letras maiúsculas

JavaScript não tem tipos, portanto letras maiúsculas dizem muito a você sobre suas variáveis, funções, etc. Essas regras são subjetivas, por isso sua equipe pode escolher o que quiser. O ponto é que, não importa a sua escolha, apenas seja consistente.

Não é recomendável:

const DAYS_IN_WEEK = 7;
const daysInMonth = 30;

const songs = ["Back In Black", "Stairway to Heaven", "Hey Jude"];
const Artists = ["ACDC", "Led Zeppelin", "The Beatles"];

function eraseDatabase() {}
function restore_database() {}

class animal {}
class Alpaca {}
Enter fullscreen mode Exit fullscreen mode

É recomendável:

const DAYS_IN_WEEK = 7;
const DAYS_IN_MONTH = 30;

const SONGS = ["Back In Black", "Stairway to Heaven", "Hey Jude"];
const ARTISTS = ["ACDC", "Led Zeppelin", "The Beatles"];

function eraseDatabase() {}
function restoreDatabase() {}

class Animal {}
class Alpaca {}
Enter fullscreen mode Exit fullscreen mode

As funções que chamam e as funções chamadas devem estar próximas

Se uma função chama outra, mantenha-as verticalmente próximas no arquivo fonte. O ideal é manter a função que chama logo acima da função chamada. Nos tendemos a ler o código de cima para baixo, como se fosse um jornal. Por conta desse princípio, mantenha seu código lido desse modo.

Não é recomendável:

class PerformanceReview {
  constructor(employee) {
    this.employee = employee;
  }

  lookupPeers() {
    return db.lookup(this.employee, "peers");
  }

  lookupManager() {
    return db.lookup(this.employee, "manager");
  }

  getPeerReviews() {
    const peers = this.lookupPeers();
    // ...
  }

  perfReview() {
    this.getPeerReviews();
    this.getManagerReview();
    this.getSelfReview();
  }

  getManagerReview() {
    const manager = this.lookupManager();
  }

  getSelfReview() {
    // ...
  }
}

const review = new PerformanceReview(employee);
review.perfReview();
Enter fullscreen mode Exit fullscreen mode

É recomendável:

class PerformanceReview {
  constructor(employee) {
    this.employee = employee;
  }

  perfReview() {
    this.getPeerReviews();
    this.getManagerReview();
    this.getSelfReview();
  }

  getPeerReviews() {
    const peers = this.lookupPeers();
    // ...
  }

  lookupPeers() {
    return db.lookup(this.employee, "peers");
  }

  getManagerReview() {
    const manager = this.lookupManager();
  }

  lookupManager() {
    return db.lookup(this.employee, "manager");
  }

  getSelfReview() {
    // ...
  }
}

const review = new PerformanceReview(employee);
review.perfReview();
Enter fullscreen mode Exit fullscreen mode

E aí? Gostaram? Até a próxima tradução! 🤗

Discussion (0)