Arquitetura para PHP legado
Maybe
Desenvolvo tipos Result e Option, Schema e DTO para tratar erros, ausência e dados externos em sistemas PHP 7.4.
Restrição principal
Compatibilidade com PHP 7.4.
Decisão central
Usei Result para representar sucesso ou erro e Option para representar presença ou ausência.
Fluxo do projeto
Contexto
Desenvolvo o Maybe para tratar erros, ausência e validação em sistemas PHP 7.4. Usei Result e Option
para representar estados que costumam aparecer como null, false ou exceções.
Organizei Schema e DTO para a entrada de dados externos. As camadas podem ser adotadas aos poucos, sem exigir a reescrita da aplicação.
Forças e restrições
- Compatibilidade com PHP 7.4.
- Adoção gradual em código existente.
- Concorrência por processos com fronteiras de segurança claras.
Decisões
Erros explícitos
Usei Result para representar sucesso ou erro e Option para representar presença ou ausência.
Adoção nas bordas
Organizei Schema e DTO para validar dados externos e permitir adoção gradual.
Async como processo
O núcleo continua síncrono; concorrência, timeout e serialização pertencem a uma fronteira própria.
Atributos de qualidade
Compatibilidade
API compatível com PHP 7.4.
EvidênciaRestrição declarada pelo projeto.
Segurança
Validação antes de cruzar processos.
EvidênciaSchema, DTO e contratos explícitos.
Evolução
Schema → DTO → Result → Option → Async.
EvidênciaCamadas podem ser adotadas incrementalmente.
Evidências
API pública
Tipos e exemplos versionados no repositório.
Fronteira Async
Serialização, timeout e isolamento são responsabilidades observáveis.
Limites conhecidos
- Async não substitui filas duráveis nem supervisão operacional.
- A aplicação continua responsável por idempotência, recursos e recuperação.
- Ainda preciso verificar a licença e concluir a auditoria. A referência main é móvel; falta fixar o commit-fonte.
Contato
Vamos conversar