Slide 1

Slide 1 text

Clean Code: Let's get started!

Slide 2

Slide 2 text

Olá! Sou Marylly Araújo Estou aqui porque quero que exista uma comunidade de desenvolvedoras e sou desenvolvedora de software não somente na ThoughtWorks. 2

Slide 3

Slide 3 text

1. O que é o Clean Code? Ou Código Limpo

Slide 4

Slide 4 text

Abrange vários aspectos Nomes Significativos Funções Comentários 4 Formatação Limites Tratamento de Erro Tratamento de Erros Objetos e Estruturas de Dados Testes de Unidade

Slide 5

Slide 5 text

Aspectos para serem considerados (cont.) 5 ◂ criado a partir de experiências e vivências pessoais; ◂ experiência maior com estruturas procedurais (paradigmas imperativos); ◂ experiência com orientação à objeto; ◂ experiência com níveis baixos ou altos de granularidade de métodos e/ou funções;

Slide 6

Slide 6 text

Aspectos para serem considerados 6 ◂ influência de colegas de trabalho que dizem se um código está bom e limpo; ◂ boas e más experiências com projetos anteriores e cultura de time que tem esse domínio muito bem definido; ◂ conhecer o domínio e regras de negócio e o mercado atendido.

Slide 7

Slide 7 text

Funções Conceitos e práticas que englobam construção ou refatoração de métodos/funções 7

Slide 8

Slide 8 text

1. O que NÃO fazer ou EVITAR

Slide 9

Slide 9 text

9 Evite nomes parecidos Podem confundir

Slide 10

Slide 10 text

10 Evite acrônimos, siglas Podem confundir

Slide 11

Slide 11 text

11 Evite as letras "L" e "Ó" minúsculas Podem parecer "1" e "0"(zero) no código

Slide 12

Slide 12 text

12 Evite nomes que tenham no nome apenas uma letra Podem não ajudar na compreensão do código e de seu contexto

Slide 13

Slide 13 text

13 Evite palavras distintas que podem expressar informações do mesmo contexto ou não

Slide 14

Slide 14 text

14 Evite adicionar contextos desnecessários Nome ou as siglas da empresa em todas as classes, métodos e funções, prejudicando a pesquisa

Slide 15

Slide 15 text

Mais alguns para evitar ◂ Evite usar números sequenciais em nomes ( a1, a2, ..., aN ), não expressa nenhuma informação que ajude a compreender o contexto do código. ◂ Evite linguagem informal e/ou gírias. Exemplos: whack(), eatMyShorts(), abort(). ◂ Quanto mais longo é um programa, mais tempo e difícil para entender o que ele faz. 15

Slide 16

Slide 16 text

O que PRATICAR

Slide 17

Slide 17 text

Nomes significativos ◂ Acho que todo mundo se depara não com o desafio de criar uma função método com um cálculo matemático, mas sim, como nomear essa função que executa este cálculo matemático complexo. 17

Slide 18

Slide 18 text

“ Escolher bons nomes leva tempo, mas economiza mais - Martin, Robert 18

Slide 19

Slide 19 text

Nomes significativos ◂ Funções/Métodos devem fazer apenas uma coisa, devem fazê-la muito bem e apenas ela. Devem comunicar o que fazem e como usa de forma compreensível 2 e que revelem seu propósito. Cuide de seus nomes e troque quando encontrar melhores. 19

Slide 20

Slide 20 text

20 Crie nomes que sejam pronunciáveis e pesquisáveis e de fácil escuta

Slide 21

Slide 21 text

Mais alguns para exercitar ◂ Use nomes a partir do domínio(projeto, negócio, objetivo) da solução ou do problema da aplicação; ◂ Nomes curtos geralmente são melhores contanto que sejam objetivos e compreensíveis; ◂ Blocos dentro de instruções if/else, while devem ter uma linha, porque a chamada dentro do bloco pode receber um nome mais descritivo. 21

Slide 22

Slide 22 text

Perguntas boas para fazer durante o processo ◂ Como fazer uma função/métodos transmitir seu propósito? ◂ Quais atributos das nossas funções/métodos que permitirão um leitor comum deduzir o tipo de programa ali contido? ◂ Funções devem ser pequenas: Qual o tamanho ideal? 3, 4 linhas? 22

Slide 23

Slide 23 text

23 Obrigada! Alguma dúvida, comentário, complemento? ◂ [email protected] ◂ LinkedIn: Marylly Silva ◂ Twitter: @MaryllyOficial ◂ IG: @MaryllyOficial

Slide 24

Slide 24 text

Referências ◂ Araújo, Marylly. Clean Code: Comece por aqui, https://dev.to/marylly/clean-code-introducao-bfb. Acessado em 25 de março de 2020. ◂ Araújo, Marylly. Clean Code: Funções, https://dev.to/marylly/clean-code-funcoes-3n78. Acessado em 25 de março de 2020. ◂ Martin, Robert, Código Limpo: Habilidades práticas do Agile Software, 2011, Alta Books, Rio de Janeiro. ◂ Fowler, Martin, Refactoring: Improving the Design of Existing Code, 2019, Pearson, EUA. 24