Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vamos falar sobre Clean Code

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Vamos falar sobre Clean Code

Práticas baseadas no livro Clean Code do Robert Martin, também conhecido como Uncle Bob, para escrever um código limpo.

Avatar for Amanda Santana

Amanda Santana

August 30, 2018

Other Decks in Technology

Transcript

  1. O que é código limpo? "Agradável de ler, focado" (Bjarne

    Stroustrup, criador do C++) "Código coberto por testes. Fácil de ler, fácil de modificar" (Dave Thomas, 'godfather' do Eclipse) "Faz com que a linguagem também pareça muito simples" (Ward Cunningham, co-inventor do eXtreme Programming)
  2. Nomes que fazem sentido RUIM //current date const yyyymmdstr =

    moment().format('YYYY/MM/DD'); BOM const currentDate = moment().format('YYYY/MM/DD');
  3. Use variáveis que expliquem RUIM const address = 'One Infinite

    Loop, Cupertino 95014'; const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/; saveCityZipCode( address.match(cityZipCodeRegex)[1], address.match(cityZipCodeRegex)[2]);
  4. Use variáveis que expliquem BOM const address = 'One Infinite

    Loop, Cupertino 95014'; const cityZipCodeRegex = /^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/; const [, city, zipCode] = address.match(cityZipCodeRegex) || []; saveCityZipCode(city, zipCode);
  5. Nomear Classes vs nomear Métodos Classes devem ser designadas por

    substantivos, evitando nomes que não adicionam informação Métodos devem ser designados por verbos, com a possibilidade de serem compostos por advérbios ou substantivos, expressando a ação que será realizada
  6. Funções devem fazer uma coisa RUIM function emailClients(clients) { clients.forEach((client)

    => { const clientRecord = database.lookup(client); if (clientRecord.isActive()) { email(client); } }); }
  7. Funções devem fazer uma coisa BOM function emailActiveClients(clients) { clients

    .filter(isActiveClient) .forEach(email); } function isActiveClient(client) { const clientRecord = database.lookup(client); return clientRecord.isActive(); }