Voltar
🗄️CEVIU

Banco de dados é, na prática, um repositório de variáveis globais

Aprofundamento CEVIU

Aprofundamento

O texto de Sean Goedecke parte de uma provocação: linhas e registros de um banco de dados são, por definição, variáveis globais, porque qualquer parte do programa pode ler ou escrever neles. Os dois motivos clássicos para evitar globais são o envio implícito de dados entre partes distantes do código e o acoplamento (se um trecho depende de um valor, outro pode quebrá-lo). O autor argumenta que ambos valem para bancos de dados, e cita bugs comuns de quem assume algo errado sobre o formato de uma coluna, como suporte a UTF-8 de 4 bytes ou se ela aceita NULL.

Ele testa cinco explicações para os bancos escaparem da crítica: talvez apps com banco sejam mesmo bagunçados; as garantias ACID; o acesso mais explícito (é preciso uma conexão e uma função de consulta); a menor flexibilidade (só guardam dados); e o fato de a gente saber usá-los. Ele descarta o ACID, porque um mutex em volta de uma global não a tornaria aceitável. Considera mais convincentes a explicitude e as convenções de uso, e nota que ambas são contingentes, não inerentes. Uma base de código com convenções para globais poderia cumprir as mesmas condições. Ele não recomenda usar variáveis globais, e sim desconfiar de quem invoca "boas práticas" sem dar motivos concretos.

Por que isso importa

Para quem trabalha com back-end e dados, a leitura prática é olhar o banco como estado compartilhado que pede disciplina: tipos checados, usos limitados e acesso visível no código. O autor faz uma ressalva que dialoga com isso: ferramentas como o ActiveRecord, do Rails, podem tornar as consultas invisíveis e enfraquecer a vantagem da explicitude.

Perguntas frequentes

Por que um banco de dados seria uma variável global?

Porque qualquer parte do programa pode ler e escrever nos mesmos registros. Isso permite trocar dados de forma implícita entre trechos distantes e cria acoplamento, os dois problemas associados às globais.

ACID explica por que bancos escapam da crítica às globais?

Segundo o autor, não. Para ele, o problema das globais não é só ficarem fora de sincronia, é existirem. Se o ACID bastasse, colocar um mutex em volta de uma global a tornaria aceitável.

Então posso usar variáveis globais à vontade?

O autor não recomenda isso. O ponto dele é que as razões para o banco ser aceitável são convenções e explicitude, não algo inerente. Uma base de código com regras claras para globais poderia, em tese, chegar perto.

Qual é a conclusão do texto sobre boas práticas?

Que boa parte do conhecimento de design de software ainda é um conjunto de heurísticas soltas. Por isso, o autor sugere desconfiar de quem apela a "boas práticas" sem dar razões concretas, mesmo em casos óbvios como evitar globais.

Fontes

Avalie este artigo:
Categoria
CEVIU
Publicado
06 de novembro de 2026
Editoria
CEVIU

Quer receber mais sobre CEVIU?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser