Saltar para o conteúdo
BEIND

Método

O método é a única coisa que escala para lá de um bom programador.

Qualquer um consegue entregar uma demonstração. O que separa o software que dura do software que é reescrito dois anos depois é um conjunto de regras que a equipa cumpre mesmo quando ninguém está a ver. Estas são as nossas.

Mock primeiro

Todos os serviços externos ficam atrás de uma interface com uma implementação simulada ao lado da real. O produto completo corre sem uma única credencial e sem uma única conta, por isso desenvolvimento, demonstrações e CI nunca tocam num pagamento real, numa caixa de correio real ou na base de dados de um cliente. Entrar em produção é uma opção por integração — ligada uma de cada vez, verificada uma de cada vez.

Pode avaliar o sistema inteiro antes de nos dar acesso a seja o que for.

Contratos antes do código

A superfície da API é definida uma única vez num esquema partilhado que o servidor, a aplicação web e a aplicação móvel importam. Alterar um endpoint começa por alterar o contrato, o que significa que o compilador encontra todos os pontos afetados antes dos seus utilizadores.

Sem desvios entre o que o servidor envia e o que o cliente espera.

Nunca escrever em produção para provar alguma coisa

Quando trabalhamos sobre um sistema já em funcionamento, o acesso é apenas de leitura e assim se mantém. Se for preciso demonstrar um comportamento, demonstramo-lo com dados capturados.

Nada do que fazemos durante a construção pode danificar o negócio que a paga.

A paridade é auditada, não presumida

Substituir um sistema existente significa provar equivalência linha a linha — cada fluxo, cada interação, cada ligação de dados, todos marcados com evidência. Concluído significa zero linhas em aberto, auditadas duas vezes.

Ninguém descobre uma funcionalidade em falta na semana a seguir à migração.

As regras de arquitetura correm em CI

Fronteiras entre camadas, direção das dependências e uso dos design tokens são impostos por testes, não por boas maneiras em revisão de código. Uma violação falha a build tal como um teste partido.

A arquitetura ainda lá está daqui a dezoito meses.

As migrações são a única forma de alterar o modelo de dados

Sem comandos manuais em base de dados nenhuma, incluindo a do próprio programador. As migrações correm num passo controlado que faz cópia de segurança primeiro, e nunca correm em silêncio no arranque da aplicação.

O modelo de dados de cada ambiente tem uma história explicável.

Os clientes são isolados estruturalmente

Quando um sistema é multi-empresa, a empresa vem da sessão autenticada e nunca do corpo, do caminho ou dos parâmetros de um pedido. O isolamento entre clientes tem testes próprios.

Um filtro esquecido não se transforma numa fuga de dados.

Os bloqueios estão escritos

Questões em aberto, decisões e tudo o que espera por uma pessoa vivem no repositório como documentos acompanhados. Sabe sempre onde estamos parados sem ter de perguntar.

Sem surpresas no fim de um sprint.

Com o que construímos

TypeScript, React e Next.js na web. React Native e Expo em móvel. NestJS ou .NET no servidor, com PostgreSQL por baixo. Não somos dogmáticos — mas somos deliberados, e não escolhemos uma tecnologia nova no seu projeto para descobrir como funciona.