Tópico 01 - Introdução ao Código Limpo

Tópico 01 - Introdução ao Código Limpo

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

A crise do software

Em 1968, a OTAN (Organização do Tratado do Atlântico Norte) criou um projeto para discutir e implementar padrões de desenvolvimento e especificar, pela primeira vez, o termo Engenharia de Software

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Aumento da demanda e da complexidade

Demanda crescente de novos softwares, impulsionada pelo estabelecimento de novas redes de computadores

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Mesmos métodos e força de trabalho

Necessidade de criar novos métodos e ferramentas de desenvolvimento que suportassem a demanda

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Caso Therac-25

Na década de 80, a Atomic Energy of Canada Limited (AECL) desenvolveu uma série de máquinas de radioterapia chamadas Therac

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

6 mortes entre 1985 e 1987

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Falhas de Software

  • Design ruim
  • Sem testes
  • Sem mensagens de erro
  • Excesso de confiança
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Caso Ariane 5

Em 1996, o foguete Ariane 5 explodiu após 39 segundos de voo e causou um prejuízo de 370 milhões de dólares.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Causa: Overflow

O sistema do foguete tentava converter uma variável de 64 bits em uma de 16 bits, resultando em um overflow do resultado em tempo de execução.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Que outras falhas poderiam ser evitadas?

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Como evitar falhas?

  • Desenvolvimento Ágil
  • Testes Automatizados
  • Revisão de Código
  • Arquitetura Limpa
  • Programação Defensiva
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Impactos do Código Limpo

  • Redução de custos
  • Maior produtividade
  • Menos vulnerabilidades
  • Mais facilidade na manutenção
  • Escalabilidade de equipes
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Código Limpo

  • Legível (Readability)
  • Mantenível (Maintainability)
  • Testável (Testability)
  • Extensível (Extensibility)
  • Elegante (Beauty)
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Barreiras do Código Limpo

  • Ignorância
  • Teimosia
  • Arrogância
  • Falta de Tempo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

É sua responsabilidade como programador defender seu código

Robert C. Martin

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Débito Técnico

O Débito Técnico é o resultado de uma implementação sem planejamento, mas que é adicionado para atender a uma demanda imediata.

Com o tempo, o débito técnico se acumula e pode levar a problemas de performance, segurança e escalabilidade.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Analogia do Débito Bancário

O Débito Técnico é como um empréstimo bancário. Você pode pegar um empréstimo para comprar algo que precisa agora, mas terá que pagar juros no futuro.

O débito técnico as vezes compensa?

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Práticas de Código Limpo

Livro escrito por Robert C. Martin cunhou o termo Código Limpo.

É uma referência e não um dogma.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Nomenclaturas

Existem apenas duas coisas difíceis em ciências da computação: Invalidação de cache e dar nome as coisas - Phil Karlton, Netscape developer

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Funções e Comentários

Uma função bem escrita vale mais do que mil comentários. Um comentário pode mal escrito pode valer por uma função mal escrita.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Formatação e Estrutura

Grandes empresas de software possuem padrões de formatação de código.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Tratamento de Erros

O primeiro bug de software registrado foi, literalmente, um inseto preso em um computador em 1947, documentado por Grace Hopper.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Testes Unitários

Testes unitários são testes que testam uma unidade de código isoladamente.

Esses testes são escritos antes do código, e são executados automaticamente a cada atualização.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo
Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Escrever código limpo é uma arte, não uma ciência.

Clean Code - Professor Ramon Venson - SATC 2025.2
Tópico 01 - Introdução ao Código Limpo

Material de Apoio

Clean Code - Professor Ramon Venson - SATC 2025.2

Em 19 de janeiro 2038 a humanidade passará por um problema parecido. Nessa data o sistema de contagem de segundos do computador irá estourar em sistemas 32 bits.

Já possuimos muitas ferramentas para reduzir o número de falhas e o impacto que elas causam. Desenvolvimento ágil: metodologias como Scrum, Kanban e XP Testes automatizados: testes unitários, testes de integração e testes de aceitação Revisão de código: revisões de código, revisões de design e revisões de testes Arquitetura limpa: princípios SOLID, Clean Architecture, DDD, etc. Programação defensiva: tratamento de exceções, validação de entrada, tratamento de erros, etc.

Ignorância: Não conhecer os princípios do Código Limpo Teimosia: Não aceitar mudanças ou não ter capacidade de mudar Arrogância: Não aceitar que o código pode ser melhorado Falta de Tempo: Não ter tempo para melhorar o código