-
Notifications
You must be signed in to change notification settings - Fork 45
Refatoração
Refatoração é uma alteração feita na estrutura interna do software para torná-lo mais fácil de entender e mais barato para modificar sem alterar seu comportamento observável. Pode ser vista como uma forma disciplinada de limpar código e que minimiza as chances de introduzir bugs.
Há uma certa confusão em relação à vários conceitos que são percebidos como refatoração, mas que não o são. Dentre eles, estão:
- Encontrar e arrumar bugs no meio do caminho
- Otimização do código
- Intensificar o tratamento de erros
- Adicionar código defensivo
- Tornar o código mais testável
- Encontrar atalhos
- Eliminar código duplicado
- Eliminar código morto
- Deixar lógica e design claros
- Fazer o melhor uso da linguagem
A refatoração pode ser feita através do uso de cinco orientações básicas:
- Conjunto de pequenas mudanças: a refatoração deve ser sutil e constante. Caso contrário, é uma grande manutenção de código
- Uma mudança de cada vez
- Mudanças não devem adicionar funcionalidades: a refatoração preserva o comportamento original. Se muda, não é refatoração
- Mudanças não devem quebrar os testes já feitos: mesma razão acima.
- Código limpo: será o resultado da utilização de refatoração orientada por essas práticas.
Há alguns indícios observáveis de que há a necessidade de uma refatoração. Esses indícios podem ser conhecidos como "regra de três":
- Quando você faz algo pela primeira vez e só está fazendo para ter a funcionalidade pronta.
- Quando você faz algo parecido pela segunda vez e se sente mal por ter de repetir mas faz a mesma coisa assim mesmo.
- Quando você faz algo pela terceira vez, você começa a refatorar.
Há outras ocasiões importantes de mencionar, como:
- Na hora de consertar bugs: Os bugs vivem nas partes mais sujas do seu código. Limpe frequentemente o código e os erros se acharão.
- Na hora de adicionar features: A refatoração permite que outras pessoas entendam melhor o código de outros programadores. Além disso, torna mais fácil a adição de código.
- Na revisão do código: Antes de tornar seu código disponível para o público pode ser uma boa chance de refatorá-lo.
EPS/MDS - FGA/UnB
Métodos de Desenvolvimento de Software
Gestão de Portfólio e Projetos de Software
RUP (Rational Unified Process)
Fase Elaboração (RUP) Planejamento(PMBOK)
Fase de Construção (RUP), Execução/Monitoramente e Controle (PMBOK)
Fase Transição (RUP), Finalização (PMBOK)
Acceptance Test Driven Development (ATDD)
Integração Contínua Deploy Contínuo
Automação de Ambiente com Docker
Orquestração de Containers com Docker Compose
Automação de Ambiente com Vagrant
Deploy Contínuo na Plataforma Heroku
Integração Contínua com Travis CI
Disponibilizando a Aplicação com o Proxy Reverso Nginx
Tutorial de Instalação do Ionic
Android Integração contínua com Circle CI
Configuração de Ambiente para React Native
Tutorial Instalação Ruby on Rails
Teste Automatizado Cucumber JS
Teste Automatizado Cucumber Rails
Testando AngularJS com Jasmine
Teste Automatizado com Selenium IDE
Configurar o SonarCloud para um projeto usando Jest
Configurar o SonarCloud para um projeto usando Pytest
Configurar o SonarCloud para um projeto usando Mocha e Istambul