SlideShare uma empresa Scribd logo
1 de 16
Clean Code
Código ruim também funciona
Principio 80/20
● Em software, 80% ou mais do que fazemos é chamado de “Manutenção.
○ Muito desperdicio.
● Pensamento e Análise antes da construção
○ O que vamos construir e como.
● 5S
○ Seiri: Organização, saber onde estão as coisas, usar nomes adequados;
○ Seiton: Arrumação, “Um lugar para tudo, e tudo em seu lugar”;
○ Seiso: Limpeza, código limpo, livre-se dos comentários desnecessários;
○ Seiketsu: Padronização, concordância entre a equipe em manter-se limpo;
○ Shutsuke: Disciplina(auto) em seguir as praticas e estar disposto a mudar.
Código Bom / Código Ruim
O Custo de ter um Código Confuso
● O código confuso de outra pessoa fez você trabalhasse mais lentamente?
● Já começou um projeto rápido, e depois de algum tempo percebeu que estavam indo
muito devagar?
● Alguma alteração causou falha em outra parte do mesmo código?
A Bala de Prata..
● A Equipe entra em consenso que o código é impossível de trabalhar;
○ Surge necessidade de replanejar o projeto
● Forma-se uma nova equipe de Desenvolvedores
○ Projeto novo TODOS querem fazer parte;
○ Vamos começar do zero e criar algo bonito;
○ Cria-se uma outra equipe para manutenção no sistema antiga
● Novas implementações no sistema novo
○ Que também precisam ser replicadas para o sistema atual,
A Bala de Prata..
● A Equipe entra em consenso que o código é impossível de trabalhar;
○ Surge necessidade de replanejar o projeto
● Forma-se uma nova equipe de Desenvolvedores
○ Projeto novo TODOS querem fazer parte;
○ Vamos começar do zero e criar algo bonito;
○ Cria-se uma outra equipe para manutenção no sistema antiga
● Novas implementações no sistema novo
○ Que também precisam ser replicadas para o sistema atual,
O Principal Dilema
Todos os desenvolvedores com mais experiência sabem que bagunças antigas reduzem o
rendimento. Mesmo assim todos se sentem pressionados a cometer essas bagunças para cumprir
os prazos.
Porém, todos sabem que a segunda parte do dilema está errada. Voce não cumprira o prazo se
fizer bagunça no codigo. Desorganização reduzirá sua velocidade e você perderá o prazo.
A única maneira de isso não acontecer, a única maneira de ir mais rápido é sempre manter o
código limpo.
A Arte do código Limpo
● Como escrever um código limpo?
● Não vale nada tentar escrever um código limpo se não sabemos o que é um código limpo;
● Ser capaz de identificar um código ruim não quer dizer que saibamos escrever um código limpo;
● Exige disciplina, pequenas técnicas, sensibilidade ao código;
● Podemos identificar um código confuso mas não sabemos o que fazer para melhorar;
O que é um Código Ruim?
Código Limpo
Código Limpo
Código Limpo
Pequenas mudanças
● Não basta escrever um código bom. Ele precisa ser mantido sempre limpo;
● Troque o nome de uma variável por um melhor;
● Divida uma função que esteja um pouco grande demais;
● Elimine um pouco de código duplicado;
● Reduza uma instrução de if aninhada
Tenha em mente...
“Deixe a área do acampamento mais limpa do que
como você a encontrou”
Lei de Blanc: Mais tarde é igual a nunca.
Regra do Jogo
Regra do Jogo
● Encontros quinzenais de uma hora;
● 17 capítulos do livro divididos entre os membros dos times;
● Cada membro fará uma pequena apresentação do capítulo do livro no formato Talk(+-
20mins);
● Debate sobre o entendimento;
● O que podemos fazer para implementação em nossos códigos.

Mais conteúdo relacionado

Mais procurados

Expectativa ágil - Caipira Ágil 2017
Expectativa ágil - Caipira Ágil 2017Expectativa ágil - Caipira Ágil 2017
Expectativa ágil - Caipira Ágil 2017Victor Hugo Germano
 
O que não te contaram sobre entregar projetos Ágeis - TDC2017
O que não te contaram sobre entregar projetos Ágeis - TDC2017O que não te contaram sobre entregar projetos Ágeis - TDC2017
O que não te contaram sobre entregar projetos Ágeis - TDC2017Victor Hugo Germano
 
Carreira na área de Testes de Software - Meetup TestGirls
Carreira na área de Testes de Software - Meetup TestGirlsCarreira na área de Testes de Software - Meetup TestGirls
Carreira na área de Testes de Software - Meetup TestGirlsNhaiara Ramos
 
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Letticia Nicoli
 
Agilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba ConferenceAgilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba ConferenceWagner Mendes Voltz Fusca
 
DEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira mal
DEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira malDEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira mal
DEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira malElias Souza
 
Como começar a programar!
Como começar a programar!Como começar a programar!
Como começar a programar!Augusto Bilabila
 
Palestra LPI w3c
Palestra LPI w3cPalestra LPI w3c
Palestra LPI w3cRankest
 
O mundo da agilidade
O mundo da agilidadeO mundo da agilidade
O mundo da agilidadeThiago Burgos
 
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorotminastestingconference
 
12 passos para um código melhor
12 passos para um código melhor12 passos para um código melhor
12 passos para um código melhorGilmar Pupo
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeWagner Mendes Voltz Fusca
 
Agil das trincheiras
Agil das trincheirasAgil das trincheiras
Agil das trincheirasFelipe Zampa
 
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018Wagner Mendes Voltz Fusca
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLetticia Nicoli
 
Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020Wagner Mendes Voltz Fusca
 
aGITe antes de versionar
aGITe antes de versionaraGITe antes de versionar
aGITe antes de versionars4nx
 
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A  importância dos lifecycles no desenvolvimento de softwareAlm e ATLM - A  importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A importância dos lifecycles no desenvolvimento de softwareVandre Ramos, MSc, MBA, CSM
 

Mais procurados (20)

Expectativa ágil - Caipira Ágil 2017
Expectativa ágil - Caipira Ágil 2017Expectativa ágil - Caipira Ágil 2017
Expectativa ágil - Caipira Ágil 2017
 
O que não te contaram sobre entregar projetos Ágeis - TDC2017
O que não te contaram sobre entregar projetos Ágeis - TDC2017O que não te contaram sobre entregar projetos Ágeis - TDC2017
O que não te contaram sobre entregar projetos Ágeis - TDC2017
 
Carreira na área de Testes de Software - Meetup TestGirls
Carreira na área de Testes de Software - Meetup TestGirlsCarreira na área de Testes de Software - Meetup TestGirls
Carreira na área de Testes de Software - Meetup TestGirls
 
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
 
Agilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba ConferenceAgilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba Conference
 
DEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira mal
DEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira malDEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira mal
DEVCAMP 2013 - Refatorar! porque ninguém gosta de código que cheira mal
 
Como começar a programar!
Como começar a programar!Como começar a programar!
Como começar a programar!
 
Palestra LPI w3c
Palestra LPI w3cPalestra LPI w3c
Palestra LPI w3c
 
Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020
 
O mundo da agilidade
O mundo da agilidadeO mundo da agilidade
O mundo da agilidade
 
QA além da automação
QA além da automaçãoQA além da automação
QA além da automação
 
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot[MTC 2021] Vieses da qualidade -  Daniele Vieira Fiorot
[MTC 2021] Vieses da qualidade - Daniele Vieira Fiorot
 
12 passos para um código melhor
12 passos para um código melhor12 passos para um código melhor
12 passos para um código melhor
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da Agilidade
 
Agil das trincheiras
Agil das trincheirasAgil das trincheiras
Agil das trincheiras
 
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
 
Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020
 
aGITe antes de versionar
aGITe antes de versionaraGITe antes de versionar
aGITe antes de versionar
 
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A  importância dos lifecycles no desenvolvimento de softwareAlm e ATLM - A  importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
 

Semelhante a Clean Code

Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedoresguitoper
 
Clean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofiaClean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofiaAugusto Rosa
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de softwareLaura_ifpe
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwarePablo Dall'Oglio
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Thiago Barradas
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In TubaRafael Paz
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingPedro Pereira Martins
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasRafael Chinelato Del Nero
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Thiago Barradas
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoAchiles Camilo
 
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - JavaneirosTestes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - JavaneirosRenan Siravegna
 

Semelhante a Clean Code (20)

Código Limpo
Código LimpoCódigo Limpo
Código Limpo
 
Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedores
 
Clean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofiaClean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofia
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
 
ZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivasZeroBugsProject - Técnicas de programação efetivas
ZeroBugsProject - Técnicas de programação efetivas
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Código limpo php
Código limpo phpCódigo limpo php
Código limpo php
 
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - JavaneirosTestes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
 

Clean Code

  • 1. Clean Code Código ruim também funciona
  • 2. Principio 80/20 ● Em software, 80% ou mais do que fazemos é chamado de “Manutenção. ○ Muito desperdicio. ● Pensamento e Análise antes da construção ○ O que vamos construir e como. ● 5S ○ Seiri: Organização, saber onde estão as coisas, usar nomes adequados; ○ Seiton: Arrumação, “Um lugar para tudo, e tudo em seu lugar”; ○ Seiso: Limpeza, código limpo, livre-se dos comentários desnecessários; ○ Seiketsu: Padronização, concordância entre a equipe em manter-se limpo; ○ Shutsuke: Disciplina(auto) em seguir as praticas e estar disposto a mudar.
  • 3. Código Bom / Código Ruim
  • 4. O Custo de ter um Código Confuso ● O código confuso de outra pessoa fez você trabalhasse mais lentamente? ● Já começou um projeto rápido, e depois de algum tempo percebeu que estavam indo muito devagar? ● Alguma alteração causou falha em outra parte do mesmo código?
  • 5. A Bala de Prata.. ● A Equipe entra em consenso que o código é impossível de trabalhar; ○ Surge necessidade de replanejar o projeto ● Forma-se uma nova equipe de Desenvolvedores ○ Projeto novo TODOS querem fazer parte; ○ Vamos começar do zero e criar algo bonito; ○ Cria-se uma outra equipe para manutenção no sistema antiga ● Novas implementações no sistema novo ○ Que também precisam ser replicadas para o sistema atual,
  • 6. A Bala de Prata.. ● A Equipe entra em consenso que o código é impossível de trabalhar; ○ Surge necessidade de replanejar o projeto ● Forma-se uma nova equipe de Desenvolvedores ○ Projeto novo TODOS querem fazer parte; ○ Vamos começar do zero e criar algo bonito; ○ Cria-se uma outra equipe para manutenção no sistema antiga ● Novas implementações no sistema novo ○ Que também precisam ser replicadas para o sistema atual,
  • 7. O Principal Dilema Todos os desenvolvedores com mais experiência sabem que bagunças antigas reduzem o rendimento. Mesmo assim todos se sentem pressionados a cometer essas bagunças para cumprir os prazos. Porém, todos sabem que a segunda parte do dilema está errada. Voce não cumprira o prazo se fizer bagunça no codigo. Desorganização reduzirá sua velocidade e você perderá o prazo. A única maneira de isso não acontecer, a única maneira de ir mais rápido é sempre manter o código limpo.
  • 8. A Arte do código Limpo ● Como escrever um código limpo? ● Não vale nada tentar escrever um código limpo se não sabemos o que é um código limpo; ● Ser capaz de identificar um código ruim não quer dizer que saibamos escrever um código limpo; ● Exige disciplina, pequenas técnicas, sensibilidade ao código; ● Podemos identificar um código confuso mas não sabemos o que fazer para melhorar;
  • 9. O que é um Código Ruim?
  • 13. Pequenas mudanças ● Não basta escrever um código bom. Ele precisa ser mantido sempre limpo; ● Troque o nome de uma variável por um melhor; ● Divida uma função que esteja um pouco grande demais; ● Elimine um pouco de código duplicado; ● Reduza uma instrução de if aninhada
  • 14. Tenha em mente... “Deixe a área do acampamento mais limpa do que como você a encontrou” Lei de Blanc: Mais tarde é igual a nunca.
  • 16. Regra do Jogo ● Encontros quinzenais de uma hora; ● 17 capítulos do livro divididos entre os membros dos times; ● Cada membro fará uma pequena apresentação do capítulo do livro no formato Talk(+- 20mins); ● Debate sobre o entendimento; ● O que podemos fazer para implementação em nossos códigos.