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

Hudson Silva - Clean Code: O que fazer para alcançá-lo

Hudson Silva - Clean Code: O que fazer para alcançá-lo

Esta palestra visa encorajar a prática do Clean Code para aumentar a comunicação e eficiência da equipe, dando alternativas do que devemos evitar e o que perseguir. Serão mostrados exemplos de especificações de cenários (Cucumber) e de testes em Ruby.

Agile Testers

April 08, 2017
Tweet

More Decks by Agile Testers

Other Decks in Technology

Transcript

  1. Desenvolver / Programar - Ato de comunicação - Atividade de

    Time - Mesmo numa EUquipe - Você do Passado, Presente e Futuro
  2. Mindset - Se importar (Com usuários, equipe, produto, cliente e

    vc) - Curiosidade - Linguagem verbal - Vencer a resistência tecnológica/em aprender - A partir do momento em que você argumenta a favor de suas limitações, você tende a mantê-las
  3. Então, Clean Code Capitão Barbossa (Piratas do Caribe) "First, your

    return to shore was not part of our negotiations nor our agreement so I must do nothing. And secondly, you must be a pirate for the pirate's code to apply and you're not. And thirdly, the code is more what you'd call "guidelines" than actual rules. Welcome aboard the Black Pearl, Miss Turner." the code is more what you'd call "guidelines" than actual rules
  4. O que fazer?! - Melhore a comunicação - Alinhar jargões

    - definir padrões de código - converse, discuta e pergunte - Pense no código como se você fosse contar uma história - Conheça a linguagem que você está utilizando - Funções - Utilizar nomes claros e significativos (verbos ou ações) - Devem fazer somente uma coisa - Com no máximo 1 (um) nível de abstração - Evoluir incrementalmente (Regra do 3° uso) - YAGNI - You Ain't Gonna Need It
  5. O que evitar?! - Criar/adicionar funcionalidades só pq você acha

    que vai precisar. - Lembre-se que as coisas mudam - Else - Cases - getXXX/setXXX 1. Tell and don't ask 2. Setters violam encapsulamento 3. Getters expõem detalhes na implementação - Labels ao invés de nomes significativos - Comentários inúteis - Código comentado - Evite deixar easter eggs e/ou piadinhas
  6. S.O.L.I.D. Single Responsibility: Code strategy Dependecy Inversion: Code strategy Open/Closed

    Principle: É um objetivo Liskov Substitution Principle: Fórmula complicada Interface Segregation: Linguagens fortemente tipadas
  7. Design Patterns - A pattern is a recognized way of

    doing something with a full understanding in where it applies and its consequences. @KevlinHenney - 3 níveis de abstração (4 -.-‘) - Saber que existe (nome) - Uma descrição (no máximo 2 linhas) - Aí de fato estudar o Pattern - Os tipos (Creational, Structural e Behavioral)
  8. Referências - Livros: - Clean Code - Pragmatic Programmer -

    97 things every programmer should know - Scrum Guide http://www.scrumguides.org/scrum-guide.html - Palestras/Talks - Clean Code para testers, Stefan Teixeira https://www.infoq.com/br/presentations/clean-code-para-testers - Seven Ineffective Coding Habits of Many Programmers, Kevlin Henney https://www.infoq.com/presentations/7-ineffective-coding-habits - Coders on Beer iOS RJ - SOLID, Astine https://www.youtube.com/watch?v=fBPlTHLb8AE - SOLID Design Principle in Ruby, Sandy Metz https://www.youtube.com/watch?v=8STtzjyDTTQ - Patterns, Code Smells, and the Pragmatic Programmer https://www.infoq.com/presentations/the-reading-list
  9. www.concretesolutions.com.br Ajudamos empresas a criar produtos digitais de sucesso Belo

    Horizonte - Av. Getúlio Vargas, 671 8º andar, sala 800 - Savassi - (31) 3360-8900 Rio de Janeiro - Rua São José, 90 - cj. 2121 Centro - (21) 2240-2030 São Paulo - Av. Nações Unidas, 11.541 3º andar - Brooklin - (11) 4119-0449