Cómo construir un frontend robusto: mejora progresiva
-
Comenzar con HTML
- Los servicios gubernamentales deben ser funcionales incluso solo con HTML
- La capa de HTML es tolerante a fallos, por lo que puede funcionar incluso en navegadores antiguos
- Se debe usar marcado semántico correcto y estructurar el documento de forma lógica
-
Uso de CSS
- Se puede usar CSS para dar estilo al servicio
- La capa de CSS es tolerante a fallos, ya que puede ignorar declaraciones individuales
- Se deben evitar tecnologías como
CSS-in-JS
-
Uso de JavaScript
- JavaScript se usa para agregar elementos interactivos
- La capa de JavaScript no es tolerante a fallos y puede presentar errores
- Se puede mejorar la compatibilidad mediante detección de funcionalidades de la API del navegador, inclusión de polyfills, transpilation, etc.
- JavaScript debe cumplir un papel complementario para HTML y CSS
-
Alternativas a JavaScript
- Se deben considerar soluciones simples que puedan satisfacer las necesidades del usuario incluso sin JavaScript
- Entre las alternativas están mostrar tablas de datos, exportar datos y prerenderizar gráficos como imágenes
-
Uso de frameworks de JavaScript del lado del cliente
- Se debe evitar usar frameworks si no se trata de una interfaz de usuario compleja
- El uso de frameworks puede causar problemas como aumento del tamaño de la base de código, problemas de rendimiento y dependencia de código de terceros
- Si se usan frameworks, cada interfaz de usuario debe diseñarse como un componente independiente
-
Razones por las que CSS o JavaScript pueden no cargarse o no ejecutarse
- Las causas pueden incluir errores de red, extensiones del navegador, caídas de proveedores externos, fallas en la resolución DNS o errores provocados por actualizaciones del navegador
- Algunos usuarios pueden desactivar intencionalmente funciones del navegador
-
Aplicaciones de una sola página (SPA)
- No se debe construir el servicio como una aplicación de una sola página
- Las SPA perjudican la accesibilidad y pueden generar problemas como el manejo del foco al moverse entre páginas o la imposibilidad de usar los botones de atrás/adelante
-
Pruebas del servicio
- Los componentes que dependen en gran medida de JavaScript o de frameworks de JavaScript deben funcionar en distintos navegadores y dispositivos
- Se debe probar la accesibilidad
-
Casos de estudio y guías relacionadas
- Por qué usar mejora progresiva
- Diseño para distintos dispositivos
- Cómo probar el rendimiento del frontend
- Entender WCAG 2.2
Resumen de GN⁺
- La mejora progresiva es una forma de construir sitios web en el orden HTML, CSS y JavaScript
- Este método mejora la tolerancia a fallos del servicio y permite que funcione en distintos navegadores y dispositivos
- JavaScript debe cumplir un papel complementario y se deben considerar soluciones alternativas
- Las aplicaciones de una sola página deben evitarse debido a problemas de accesibilidad
- Las pruebas del servicio deben garantizar la accesibilidad en distintos entornos
1 comentarios
Comentarios de Hacker News
Al usar frameworks de JavaScript, se debe poder demostrar qué beneficio aportan al usuario
Puntos señalados como desventajas de las SPA
Ojalá todo internet siguiera este consejo
Hay que priorizar las soluciones simples
Me pregunto por qué Linux no está en la lista
Parece que a mucha gente le gusta este enfoque
Se usa HTML y datos obtenidos previamente desde el servidor, y lo que se puede hacer en el cliente se hace en el cliente
Muchas SPA tienen problemas, pero no todas los tienen
El renderizado del lado del servidor tampoco es bueno en todos los casos