Esta é a primeira vez que entregarei código para um projeto freelancer (aplicativo da web) e, como não tenho muita experiência em código de remessa, estou tendo dificuldades para decidir se meu programa está pronto para implantação ou não.
Meu entendimento é que um código em nível de produção deve ter as seguintes características:
- Tolerância a falhas : capacidade de sobreviver a exceções não capturadas
- Redundância de dados : nunca perca dados do usuário
- Escalabilidade : manipular carga extra não deve exigir a reescrita do aplicativo
- Cobertura de teste : uma quantidade "decente" de código testado
Algumas dessas características são específicas para o próprio programa, enquanto outras são mais relacionadas ao ambiente (seja usando vários clusters). No entanto, mesmo as características dependentes do ambiente afetam a maneira como o programa é projetado.
Minha pergunta então é: Quais são as outras características que tornam o código de produção tão diferente do código não destinado à produção?
Apenas para reduzir o escopo da pergunta, concentre-se apenas nos aplicativos da web .
Edit : Vou tentar restringir o escopo, pedindo características específicas para a minha situação. Como freelancer, eu era responsável por tudo, desde comprar um VPS, configurá-lo, escrever o código e implantá-lo. Embora o projeto e sua configuração estejam bem documentados, o cliente não poderá mantê-lo. O aplicativo não é complexo, mas depende de muitos componentes externos, o que o torna muito propenso a quebrar se esses componentes forem alterados / desaparecerem. O objetivo é configurar um serviço que possa durar o maior tempo possível sem a intervenção do cliente.