Prácticamente cualquier producto de software comercial puede considerarse “mal diseñado” en algún sentido. Por lo general, es mucho más importante poner algo en manos de los clientes que pagan lo más rápido posible que hacerlo de la mejor manera posible, por lo que los compromisos de ingeniería son inevitables.
Es particularmente difícil hacer una aplicación web “bien diseñada”, debido a los cimientos inestables sobre los que debe descansar. Los navegadores varían ampliamente en cuanto a soporte para varias características de HTML, CSS, JavaScript, HTTP, etc. Los servidores web estándar (IIS, Apache, etc.) tienen sus propias idiosincrasias. Los protocolos de red subyacentes no son tan sólidos como podrían ser. Los problemas de capacidad de respuesta y escalabilidad generalmente requieren comprometer cierta corrección.
Todas las principales aplicaciones web han pasado por una fase de problemas de crecimiento en la que no pudieron satisfacer la demanda. Nuevamente, esto es inevitable, ya que no sería práctico diseñar y construir una aplicación web y una infraestructura de soporte capaz de soportar cientos de millones de usuarios en el día 1. La solución práctica es comenzar con algo utilizable para un conjunto inicial de clientes, y luego construir sobre él a medida que crece la base de usuarios. Sin embargo, es difícil mantener todo “bien diseñado” durante este proceso.
- ¿La membresía a https://www.interaction-design.org es una buena inversión?
- ¿Cómo es tomar una clase impartida por Thomas Cormen?
- ¿Cómo se relacionan otras disciplinas académicas con la informática?
- ¿Es posible que un modelo de Machine Learning sobreajuste y subadapte simultáneamente los datos de entrenamiento?
- ¿Cómo es útil un co-NP Oracle cuando se enfrenta a una tautología?