SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Dezembro/2012
A Importância do Código Limpo na
Perspectiva dos Desenvolvedores e
Empresas de Software
Aluno: Joberto Diniz Junior
Orientador: Dr. Djalma Domingos da Silva
Roteiro
1. Introdução
2. Fundamentação Teórica
3. Métodos
4. Resultado e Discussão
5. Conclusão
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
2
1. Introdução
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
3
Por que essa estrutura
está aqui?
Para onde será que essa
ponte leva?
Essa placa não me ajuda
muito.
//Esta é a ponte
1.1 Justificativa
 Desenvolvedores
“Escrever código limpo é o que você deve fazer a fim de se intitular
um profissional. Não há nenhuma desculpa razoável para fazer nada
menos que o seu melhor” (Martin, 2009)
 Empresas
 Melhor qualidade de código
 Diminuição de bugs
 Manutenção eficiente e rápida
 Menores custos
 Clientes mais satisfeitos
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
4
1.2 Problema
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
5
1.2 Problema
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
6
Encontrando o nosso
caminho através do código
ruim
1.3 Objetivo
 Mostrar as técnicas do Código Limpo
 Mostrar as vantagens do Código Limpo
 Através
• Experimento
• Análise Estatística
 Analisando Métricas
• Tempo gasto
• Quantidade de linhas
• Índice de manutenibilidade
• Complexidade ciclomática
 Questionário
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
7
2.1 Código ruim custa caro
Menor produtividade = gerência
adicionando mais membros = maior custo
Pode levar a falência
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
8
2.2 O que é Código Limpo?
 “Escrever um código limpo exige o uso
disciplinado de uma miríade de pequenas
técnicas aplicadas por meio de uma
sensibilidade meticulosamente adquirida
sobre “limpeza”. A “sensibilidade ao
código” é o segredo. Alguns de nós já
nascemos com ela. Outros precisam se
esforçar para adquiri-la.” (Martin, 2008)
 Um código limpo sempre parece que foi
escrito por alguém que se
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
9
importava
2.3 Nomes significativos
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
10
Evitar abreviaturas
Usar nomes do domínio do problema
Renomear / Refatorar
Evitar números e strings “mágicas”
 Criar constantes
2.4 SOLID
Princípio da Responsabilidade Única
Princípio Aberto-Fechado
Princípio da Substituição de Liskov
Princípio da Segregação de Interface
Princípio da Inversão de Dependência
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
11
2.5 Referência nula
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
12
Charles Hoare
 Meu erro de
bilhões de dólares
Utilizar padrão de
projeto Objeto
Nulo
2.6 Testes unitários
Uma forma de documentação
Impacto na Arquitetura e Design do
sistema
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
13
3. Métodos
Amostra
Experimento
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
14
4.1 Manutenibilidade
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
15
Lim
po
C
onvencional
0
25
50
75
100
0,036
Indice de manutenibilidade
Media(desvio-padrão)
4.2 Tempo
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
16
Lim
po
C
onvencional
0
25
50
75
100
0,019
Tempo
Minutos
Media(desvio-padrão)
4.3 Quantidade de linhas
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
17
Lim
po
C
onvencional
0
25
50
75
100
0,001
Linhas de código
Media(desvio-padrão)
4.4 Características Subjetivas
Facilidade de leitura do código
Facilidade para adição de nova
funcionalidade
Tamanho de classes e métodos
Comentários ajudam?
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
18
5. Conclusão
A Importância do Código Limpo na Perspectiva dos
Desenvolvedores e Empresas de Software
19
Treinamento Empresarial
Treinamento Individual

Weitere ähnliche Inhalte

Was ist angesagt?

323 ger.pdf ca epidermoide
323 ger.pdf ca epidermoide323 ger.pdf ca epidermoide
323 ger.pdf ca epidermoideKarina Vázquez
 
O mercado de trabalho no futuro, tendências para 2020
O mercado de trabalho no futuro, tendências para 2020O mercado de trabalho no futuro, tendências para 2020
O mercado de trabalho no futuro, tendências para 2020Francisco Mat
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기Changwan Jun
 
Carreira e profissões introdução
Carreira e profissões introduçãoCarreira e profissões introdução
Carreira e profissões introduçãoSandra Marques
 
Direito Eleitoral para Concurso TRE-PR 2017
Direito Eleitoral para Concurso TRE-PR 2017Direito Eleitoral para Concurso TRE-PR 2017
Direito Eleitoral para Concurso TRE-PR 2017Estratégia Concursos
 
Como montar e facilitar um workshop de Design Sprint - Coletivo Mola
Como montar e facilitar um workshop de Design Sprint - Coletivo MolaComo montar e facilitar um workshop de Design Sprint - Coletivo Mola
Como montar e facilitar um workshop de Design Sprint - Coletivo MolaColetivo Mola
 
Gestão de pessoas - COMUNICAÇAO
Gestão de pessoas - COMUNICAÇAOGestão de pessoas - COMUNICAÇAO
Gestão de pessoas - COMUNICAÇAOAnderson Pontes
 

Was ist angesagt? (11)

Projecto de criacao de lanchonete
Projecto de criacao de lanchoneteProjecto de criacao de lanchonete
Projecto de criacao de lanchonete
 
323 ger.pdf ca epidermoide
323 ger.pdf ca epidermoide323 ger.pdf ca epidermoide
323 ger.pdf ca epidermoide
 
Citações
CitaçõesCitações
Citações
 
Personas e Cenários
Personas e CenáriosPersonas e Cenários
Personas e Cenários
 
O mercado de trabalho no futuro, tendências para 2020
O mercado de trabalho no futuro, tendências para 2020O mercado de trabalho no futuro, tendências para 2020
O mercado de trabalho no futuro, tendências para 2020
 
Oratória
OratóriaOratória
Oratória
 
PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기PHP로 Slack Bot 만들기
PHP로 Slack Bot 만들기
 
Carreira e profissões introdução
Carreira e profissões introduçãoCarreira e profissões introdução
Carreira e profissões introdução
 
Direito Eleitoral para Concurso TRE-PR 2017
Direito Eleitoral para Concurso TRE-PR 2017Direito Eleitoral para Concurso TRE-PR 2017
Direito Eleitoral para Concurso TRE-PR 2017
 
Como montar e facilitar um workshop de Design Sprint - Coletivo Mola
Como montar e facilitar um workshop de Design Sprint - Coletivo MolaComo montar e facilitar um workshop de Design Sprint - Coletivo Mola
Como montar e facilitar um workshop de Design Sprint - Coletivo Mola
 
Gestão de pessoas - COMUNICAÇAO
Gestão de pessoas - COMUNICAÇAOGestão de pessoas - COMUNICAÇAO
Gestão de pessoas - COMUNICAÇAO
 

Ähnlich wie TCC - Código Limpo

A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...Joberto Diniz
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareGabriel Felipe Soares
 
Programando com prazer com DDD
Programando com prazer com DDDProgramando com prazer com DDD
Programando com prazer com DDDGiovanni Bassi
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...André Paulovich
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negóciosRamon Durães
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?Isaac de Souza
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!Isaac de Souza
 
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0tdc-globalcode
 
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
 
NITECH - EVENT STORM
NITECH - EVENT STORM NITECH - EVENT STORM
NITECH - EVENT STORM NitechAcademy
 
NITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdfNITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdfNitechAcademy
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven DesignAndré Borgonovo
 

Ähnlich wie TCC - Código Limpo (20)

A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
 
clean code
clean codeclean code
clean code
 
Clean Code na Prática
Clean Code na PráticaClean Code na Prática
Clean Code na Prática
 
Clean Code na prática
Clean Code na práticaClean Code na prática
Clean Code na prática
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 
Programando com prazer com DDD
Programando com prazer com DDDProgramando com prazer com DDD
Programando com prazer com DDD
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
 
Impacto do DevOps nos negócios
Impacto do DevOps nos negóciosImpacto do DevOps nos negócios
Impacto do DevOps nos negócios
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!A importância de DDD e o Domain Model na construção de APIs!
A importância de DDD e o Domain Model na construção de APIs!
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
 
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
 
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...
 
NITECH - EVENT STORM
NITECH - EVENT STORM NITECH - EVENT STORM
NITECH - EVENT STORM
 
NITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdfNITECH - EVENT STORM revisado 25Set.pdf
NITECH - EVENT STORM revisado 25Set.pdf
 
Instituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitáriosInstituto Stela S&T#001, Projeto de software com testes unitários
Instituto Stela S&T#001, Projeto de software com testes unitários
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Introdução ao Domain-Driven Design
Introdução ao Domain-Driven DesignIntrodução ao Domain-Driven Design
Introdução ao Domain-Driven Design
 

TCC - Código Limpo

  • 1. Dezembro/2012 A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software Aluno: Joberto Diniz Junior Orientador: Dr. Djalma Domingos da Silva
  • 2. Roteiro 1. Introdução 2. Fundamentação Teórica 3. Métodos 4. Resultado e Discussão 5. Conclusão A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 2
  • 3. 1. Introdução A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 3 Por que essa estrutura está aqui? Para onde será que essa ponte leva? Essa placa não me ajuda muito. //Esta é a ponte
  • 4. 1.1 Justificativa  Desenvolvedores “Escrever código limpo é o que você deve fazer a fim de se intitular um profissional. Não há nenhuma desculpa razoável para fazer nada menos que o seu melhor” (Martin, 2009)  Empresas  Melhor qualidade de código  Diminuição de bugs  Manutenção eficiente e rápida  Menores custos  Clientes mais satisfeitos A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 4
  • 5. 1.2 Problema A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 5
  • 6. 1.2 Problema A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 6 Encontrando o nosso caminho através do código ruim
  • 7. 1.3 Objetivo  Mostrar as técnicas do Código Limpo  Mostrar as vantagens do Código Limpo  Através • Experimento • Análise Estatística  Analisando Métricas • Tempo gasto • Quantidade de linhas • Índice de manutenibilidade • Complexidade ciclomática  Questionário A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 7
  • 8. 2.1 Código ruim custa caro Menor produtividade = gerência adicionando mais membros = maior custo Pode levar a falência A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 8
  • 9. 2.2 O que é Código Limpo?  “Escrever um código limpo exige o uso disciplinado de uma miríade de pequenas técnicas aplicadas por meio de uma sensibilidade meticulosamente adquirida sobre “limpeza”. A “sensibilidade ao código” é o segredo. Alguns de nós já nascemos com ela. Outros precisam se esforçar para adquiri-la.” (Martin, 2008)  Um código limpo sempre parece que foi escrito por alguém que se A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 9 importava
  • 10. 2.3 Nomes significativos A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 10 Evitar abreviaturas Usar nomes do domínio do problema Renomear / Refatorar Evitar números e strings “mágicas”  Criar constantes
  • 11. 2.4 SOLID Princípio da Responsabilidade Única Princípio Aberto-Fechado Princípio da Substituição de Liskov Princípio da Segregação de Interface Princípio da Inversão de Dependência A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 11
  • 12. 2.5 Referência nula A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 12 Charles Hoare  Meu erro de bilhões de dólares Utilizar padrão de projeto Objeto Nulo
  • 13. 2.6 Testes unitários Uma forma de documentação Impacto na Arquitetura e Design do sistema A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 13
  • 14. 3. Métodos Amostra Experimento A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 14
  • 15. 4.1 Manutenibilidade A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 15 Lim po C onvencional 0 25 50 75 100 0,036 Indice de manutenibilidade Media(desvio-padrão)
  • 16. 4.2 Tempo A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 16 Lim po C onvencional 0 25 50 75 100 0,019 Tempo Minutos Media(desvio-padrão)
  • 17. 4.3 Quantidade de linhas A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 17 Lim po C onvencional 0 25 50 75 100 0,001 Linhas de código Media(desvio-padrão)
  • 18. 4.4 Características Subjetivas Facilidade de leitura do código Facilidade para adição de nova funcionalidade Tamanho de classes e métodos Comentários ajudam? A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 18
  • 19. 5. Conclusão A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas de Software 19 Treinamento Empresarial Treinamento Individual