Esta pregunta es puramente para aprender y para intensificar mi comprensión técnica. Sé que no hay una solución perfecta y esta pregunta tiene una lista de soluciones sin fin, pero creo que es muy importante que cada arquitecto entienda la diferencia entre una demostración y un proyecto en vivo.
Creé muchas soluciones de demostración en .Net en el pasado. Ahora he sido asignado para diseñar e implementar una solución web de nivel de producción, así que quería preguntar, en un nivel muy alto, qué se requiere para convertir una demostración en una solución de nivel de producción. Según tengo entendido, esto requerirá (además de implementar funcionalmente los requisitos de los clientes):
- Unidad de prueba de cada método
- Asegurar que se logre ~ 100% de cobertura de código
- Registro de todas las excepciones y posibles cortes de puntos, posible con AOP
- Usando un patrón de diseño de interfaz, inyección de dependencia, posiblemente usando un marco, por ejemplo spring.net
- Uso de contadores de rendimiento y perfiladores para instrumentación
- Aplicar la seguridad adecuada, es decir, la autenticación de Windows (si eso es lo que requiere el cliente).
- Gestión de transacciones en cada método
- Copia de seguridad de los archivos de la aplicación web antes del nuevo despliegue de solución
¿Qué más?
Mi pregunta está más relacionada con el aspecto técnico en lugar de funcional / documentación porque de lo contrario iremos a otro camino :-)
Gracias.