Design de Software Flexível Supera Modelos de Domínio Rígidos

2025-09-08

Este artigo questiona o princípio popular de design de software de vincular firmemente o código ao modelo de domínio. O autor argumenta que enfatizar demais a evitação de estados inválidos, como por meio de esquemas de banco de dados estritos e restrições de tipo, limita a flexibilidade do software e dificulta o tratamento de exceções inevitáveis do mundo real. Usando máquinas de estado e restrições de chave estrangeira como exemplos, o autor demonstra como permitir transições de estado arbitrárias mantendo o design central simples, melhorando assim a adaptabilidade e a manutenibilidade do software. Por fim, o autor defende a permissão da representação de alguns estados inválidos em software voltado para o usuário para lidar com requisitos em evolução e circunstâncias imprevistas.

Desenvolvimento modelo de domínio