---
title: "Fluxo de lava (programação)"
type: "antipattern"
slug: "lava-flow"
url: "http://localhost:3000/pt-br/antipatterns/lava-flow.md"
description: "Problema de software incompleto sendo implantado"
---
# Fluxo de lava (programação)

> Problema de software incompleto sendo implantado

No [jargão](https://en.wikipedia.org/wiki/Jargon "Jargon") de [programação de computadores](https://en.wikipedia.org/wiki/Computer%5Fprogramming "Computer programming"), **fluxo de lava** é um [antipadrão](https://en.wikipedia.org/wiki/Anti-pattern "Anti-pattern") que ocorre quando o [código-fonte](https://en.wikipedia.org/wiki/Source%5Fcode "Source code") de computador escrito sob condições subótimas é implantado em um ambiente de produção e, em seguida, ampliado enquanto ainda está em estado de desenvolvimento. O termo deriva da ocorrência natural da lava que, uma vez resfriada, solidifica-se em rocha difícil de remover. De forma semelhante, esse código se torna difícil de refatorar ou substituir devido às dependências que surgem ao longo do tempo, exigindo a manutenção da compatibilidade retroativa com o design original e incompleto.

## Causas

O **fluxo de lava** pode ocorrer por uma variedade de motivos dentro de um [processo de desenvolvimento de software](https://en.wikipedia.org/wiki/Software%5Fdevelopment%5Fprocess "Software development process"):

* Pressão para cumprir prazos, levando soluções temporárias a se tornarem permanentes
* Documentação inadequada, que impede a compreensão do propósito do código
* Falta de testes automatizados, o que torna a refatoração arriscada
* Mudanças frequentes na equipe de desenvolvimento, levando à perda de conhecimento

## Consequências

Código não refinado que se torna parte da infraestrutura do software aumenta a complexidade do sistema, e a base de código fica cada vez mais difícil de entender e manter. Isso leva a:

* A necessidade de [compatibilidade retroativa](https://en.wikipedia.org/wiki/Backward%5Fcompatibility "Backward compatibility"), que pode sufocar a inovação e impedir a adoção de soluções mais novas e eficientes
* Aumento da [dívida técnica](https://en.wikipedia.org/wiki/Technical%5Fdebt "Technical debt"), que se acumula ao longo do tempo, resultando em custos mais altos de mudança e manutenção
* Obstáculos à [refatoração](https://en.wikipedia.org/wiki/Refactoring "Refactoring") ou à melhoria do sistema devido ao medo de quebrar componentes dependentes

## Impacto nas equipes

As equipes de desenvolvimento frequentemente sentem o impacto do **fluxo de lava** quando membros entram e saem da equipe:

* Perda de conhecimento sobre aspectos do código do sistema quando os desenvolvedores originais saem
* Relutância dos novos desenvolvedores em refatorar código desconhecido, levando a mais complexidade à medida que eles adicionam em vez de limpar

## Estratégias de mitigação

Várias práticas podem mitigar os efeitos do antipadrão **fluxo de lava**:

* Promover boas práticas de documentação para um entendimento claro do código
* Incentivar [revisões de código](https://en.wikipedia.org/wiki/Code%5Freview "Code review") regulares para detectar práticas subótimas cedo
* Priorizar a [refatoração](https://en.wikipedia.org/wiki/Refactoring "Refactoring") como parte integrante do ciclo de vida de desenvolvimento
* Manter uma suíte abrangente de [testes automatizados](https://en.wikipedia.org/wiki/Automated%5Ftest "Automated test") para reduzir o risco nas mudanças
