SlideShare uma empresa Scribd logo
1 de 20
Community
Webcast
CÓDIGO LIMPO:
UMA ABORDAGEM
INTRODUTÓRIA E
PRÁTICA DE COMO
LIMPAR CÓDIGOS
Um pouco de mim…

QUEM SOU
YAN DE LIMA JUSTINO. interessado por adoção de boas
práticas de Arquitetura e engenharia de desenvolvimento.

O QUE FAÇO
Desenvolvedor Sênior na Tec-Soft Informática; responsável por pesquisas
e implementação de melhores práticas de desenvolvimento de software;
palestrante em eventos técnicos.
HÁ DUAS RAZÕES PELAS QUAIS
VOCÊ ESTÁ ASSISTINDO ESTE
WEBCAST:
“Você é um programador e deseja se tornar
um ainda melhor. Ótimo. Precisamos de
programadores melhores” Rober C. Martin
“Qualquer um pode escrever código
que um computador possa entender.
Bons programadores escrevem código
que humanos podem entender” Martin Fowler
O QUE É CÓDIGO LIMPO?

             Escrito por Robert C.
             Martin, O livro apresenta
             técnicas de como escrever
             códigos limpos, advindas
             de anos de experiências.
             Representa uma escola de
             pensamento sobre código
Custo de ter um código confuso
              Produtividade X Tempo
120

100

80

60
                                          Série 1
40

20

 0
      1   2          3         4      5
“Não basta escrever um código bom. Ele
Precisa ser mantido sempre limpo”.

Regra dos escoteiros:
Deixe a área do acampamento mais
Limpa do que como você a encontrou”
BLAH
 BLAH
              BLAH
       BLAH

                     B
   BLAH       BLAH
Nomes Significativos
Nomes Significativos

•   Use Nomes que revelem seu propósito
•   Evite informações Erradas
•   Use Nomes Pronunciáveis
•   Passíveis de Busca
•   Evite a notação Húngara
•   Nomes de Classes
•   Nomes de Métodos
Mãos à obra
Funções

•   Faça Funções Pequenas
•   Quer Faça Apenas uma Coisa
•   Use Nomes Descritivos
•   Use no máximo três parâmetros em funções
•   Prefira exceções a retorno de código de erro
Mãos à obra
Comentários

• Explique-se No Código
• Use comentários para coisas relevantes: como
  alertas sobre consequências, Destaque, TODO
• Evite comentários redundantes
Mãos à obra
Classes

• Organização
  – Funções publicas abaixo após lista de variáveis e de
    propriedades
  – Tarefas privadas chamadas por uma função publica
    logo depois desta.
• Encapsulamento
  – As vezes é necessário tornar uma variável ou função
    como protected de modo que possa ser testada
• Classes pequenas
• Princípio da Responsabilidade única
Mãos à obra
POR TANTO,
“Um programador sem
sensibilidade ao código pode
visualizar um módulo
confuso e reconhecer a
bagunça, mas não saberá o
que fazer a respeito dela. Já
um com essa sensibilidade
verá alternativas”.
OBRIGADO

Mais conteúdo relacionado

Destaque

Destaque (9)

Si - Segurança da Informação
Si - Segurança da InformaçãoSi - Segurança da Informação
Si - Segurança da Informação
 
Vssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativosVssummit 2016 - DDD em cenários corporativos
Vssummit 2016 - DDD em cenários corporativos
 
Angular
AngularAngular
Angular
 
Introdução ao Aspnet Core
Introdução ao Aspnet CoreIntrodução ao Aspnet Core
Introdução ao Aspnet Core
 
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDOARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
 
Padroes de projetos gof
Padroes de projetos gofPadroes de projetos gof
Padroes de projetos gof
 
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...
 
Bounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadasBounded Context e CQRS na evolução de aplicações .NET legadas
Bounded Context e CQRS na evolução de aplicações .NET legadas
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do software
 

Semelhante a Community webcast

Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheiras
Higor César
 

Semelhante a Community webcast (20)

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
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimento
 
Clean code
Clean codeClean code
Clean code
 
Clean Coder
Clean CoderClean Coder
Clean Coder
 
Aprensentacao oo-trincheiras
Aprensentacao oo-trincheirasAprensentacao oo-trincheiras
Aprensentacao oo-trincheiras
 
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...
 
Clean code 101 do caos ao nirvana em poucos passos
Clean code 101  do caos ao nirvana em poucos passosClean code 101  do caos ao nirvana em poucos passos
Clean code 101 do caos ao nirvana em poucos passos
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Clean code clickbus
Clean code   clickbusClean code   clickbus
Clean code clickbus
 
A Arte do Código Limpo
A Arte do Código LimpoA Arte do Código Limpo
A Arte do Código Limpo
 
Clean code
Clean codeClean code
Clean code
 
Clean code
Clean codeClean code
Clean code
 
TDD com Clean Code: Chega de amadorismo!
TDD com Clean Code: Chega de amadorismo!TDD com Clean Code: Chega de amadorismo!
TDD com Clean Code: Chega de amadorismo!
 
Clean Code na prática
Clean Code na práticaClean Code na prática
Clean Code na prática
 
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 @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
Código limpo: Boas práticas e sua importância no desenvolvimento de software.
Código limpo: Boas práticas e sua importância no desenvolvimento de software.Código limpo: Boas práticas e sua importância no desenvolvimento de software.
Código limpo: Boas práticas e sua importância no desenvolvimento de software.
 
Domain Driven Design com Python
Domain Driven Design com PythonDomain Driven Design com Python
Domain Driven Design com Python
 

Mais de Yan Justino

Fundamentos ORM com entityframework
Fundamentos ORM com entityframeworkFundamentos ORM com entityframework
Fundamentos ORM com entityframework
Yan Justino
 

Mais de Yan Justino (10)

TDC Future - comunidade XP - Abraçando a variedade de padrões de arquitetura...
TDC Future - comunidade XP -  Abraçando a variedade de padrões de arquitetura...TDC Future - comunidade XP -  Abraçando a variedade de padrões de arquitetura...
TDC Future - comunidade XP - Abraçando a variedade de padrões de arquitetura...
 
Criando multi-agent systems com .net Hosted Services
Criando multi-agent systems com .net Hosted ServicesCriando multi-agent systems com .net Hosted Services
Criando multi-agent systems com .net Hosted Services
 
LIVE: BDD, GWTDO e Specification Matching no .NET
LIVE: BDD, GWTDO e Specification Matching no .NETLIVE: BDD, GWTDO e Specification Matching no .NET
LIVE: BDD, GWTDO e Specification Matching no .NET
 
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
Evitando o declínio arquitetural de suas aplicações na velocidade de desenvol...
 
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
Modernizando sistemas e-Gov legados: um relato sobre adoção de microservices ...
 
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
Palestra TDC POA 2018 - Reengenharia de aplicações asp.net legadas para arqui...
 
Modernizando plataformas eGovernment: migração do sistema Uvt
Modernizando plataformas eGovernment: migração do sistema UvtModernizando plataformas eGovernment: migração do sistema Uvt
Modernizando plataformas eGovernment: migração do sistema Uvt
 
Modernizando plataformas e-Government : Lições e Método
Modernizando plataformas e-Government : Lições e MétodoModernizando plataformas e-Government : Lições e Método
Modernizando plataformas e-Government : Lições e Método
 
DocumentDb: escalando sua aplicação
DocumentDb: escalando sua aplicaçãoDocumentDb: escalando sua aplicação
DocumentDb: escalando sua aplicação
 
Fundamentos ORM com entityframework
Fundamentos ORM com entityframeworkFundamentos ORM com entityframework
Fundamentos ORM com entityframework
 

Último

Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
rfmbrandao
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
LidianeLill2
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 

Último (20)

Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 

Community webcast

  • 2. Um pouco de mim… QUEM SOU YAN DE LIMA JUSTINO. interessado por adoção de boas práticas de Arquitetura e engenharia de desenvolvimento. O QUE FAÇO Desenvolvedor Sênior na Tec-Soft Informática; responsável por pesquisas e implementação de melhores práticas de desenvolvimento de software; palestrante em eventos técnicos.
  • 3.
  • 4. HÁ DUAS RAZÕES PELAS QUAIS VOCÊ ESTÁ ASSISTINDO ESTE WEBCAST: “Você é um programador e deseja se tornar um ainda melhor. Ótimo. Precisamos de programadores melhores” Rober C. Martin
  • 5. “Qualquer um pode escrever código que um computador possa entender. Bons programadores escrevem código que humanos podem entender” Martin Fowler
  • 6. O QUE É CÓDIGO LIMPO? Escrito por Robert C. Martin, O livro apresenta técnicas de como escrever códigos limpos, advindas de anos de experiências. Representa uma escola de pensamento sobre código
  • 7. Custo de ter um código confuso Produtividade X Tempo 120 100 80 60 Série 1 40 20 0 1 2 3 4 5
  • 8. “Não basta escrever um código bom. Ele Precisa ser mantido sempre limpo”. Regra dos escoteiros: Deixe a área do acampamento mais Limpa do que como você a encontrou”
  • 9. BLAH BLAH BLAH BLAH B BLAH BLAH
  • 11. Nomes Significativos • Use Nomes que revelem seu propósito • Evite informações Erradas • Use Nomes Pronunciáveis • Passíveis de Busca • Evite a notação Húngara • Nomes de Classes • Nomes de Métodos
  • 13. Funções • Faça Funções Pequenas • Quer Faça Apenas uma Coisa • Use Nomes Descritivos • Use no máximo três parâmetros em funções • Prefira exceções a retorno de código de erro
  • 15. Comentários • Explique-se No Código • Use comentários para coisas relevantes: como alertas sobre consequências, Destaque, TODO • Evite comentários redundantes
  • 17. Classes • Organização – Funções publicas abaixo após lista de variáveis e de propriedades – Tarefas privadas chamadas por uma função publica logo depois desta. • Encapsulamento – As vezes é necessário tornar uma variável ou função como protected de modo que possa ser testada • Classes pequenas • Princípio da Responsabilidade única
  • 19. POR TANTO, “Um programador sem sensibilidade ao código pode visualizar um módulo confuso e reconhecer a bagunça, mas não saberá o que fazer a respeito dela. Já um com essa sensibilidade verá alternativas”.