Esta es la primera vez que entregaré código para un proyecto independiente (aplicación web) y, dado que no tengo mucha experiencia en el envío de códigos, me cuesta decidir si mi programa está listo para la implementación o no.
Entiendo que un código de nivel de producción debe tener las siguientes características:
- Tolerancia a fallos : capacidad de sobrevivir excepciones no detectadas
- Redundancia de datos : nunca pierda los datos del usuario
- Escalabilidad : el manejo de la carga adicional no debería requerir volver a escribir la aplicación
- Cobertura de prueba : una cantidad "decente" de código probado
Algunas de estas características son específicas del programa en sí, mientras que otras están más relacionadas con el entorno (ya sea que utilicen múltiples clústeres). Sin embargo, incluso las características dependientes del entorno sí afectan la forma en que se diseña el programa.
Mi pregunta es: ¿cuáles son las otras características que hacen que el código de producción sea tan diferente del código que no está destinado a la producción?
Solo para reducir el alcance de la pregunta, concéntrese solo en las aplicaciones web .
Editar : Intentaré reducir el alcance preguntando características específicas de mi situación. Como profesional independiente, era responsable de todo, desde comprar un VPS, hasta configurarlo, escribir el código y desplegarlo. Aunque el proyecto y su configuración están bien documentados, el cliente no podrá mantenerlo. La aplicación no es compleja, pero depende de muchos componentes externos, lo que la hace muy propensa a romperse si estos componentes cambian / desaparecen. El objetivo es establecer un servicio que pueda durar el mayor tiempo posible sin la intervención del cliente.