¿Cuáles cree que son los pros y los contras de las actualizaciones automáticas de la interfaz de usuario impulsadas por el modelo de vista (a veces llamado estado) (es decir, el enlace del modelo), en comparación con la actualización manual de la interfaz de usuario? Los marcos web como Angular y React son ejemplos muy populares. (Los widgets de la plataforma nativa (Android, iOS, Windows) como las vistas de lista también admiten actualizaciones automáticas). Algunos de los pros / contras que se me ocurren son los siguientes:
- 1
- Pro: la lógica de actualización se expresa de forma decreciente en la plantilla.
- Con: Ya que toda la lógica de actualización también se incorpora a la plantilla, la plantilla inicial se llena, lo que puede dificultar su lectura.
- 2
- Pro: la manipulación de la interfaz de usuario se abstrae para que pueda optimizarse con un motor de renderizado adecuado.
- Contras: aunque los motores de renderización se vuelven más inteligentes (como el mecanismo de diferenciación de DOM virtual), las actualizaciones de IU personalizadas pueden ser mucho más efectivas ya que el desarrollador sabe exactamente la naturaleza del cambio que quiere hacer (suponiendo que el desarrollador siga una ruta de rendimiento).
- 3
- Pro: Realizar un cambio en un modelo de vista actualizará todos los campos vinculados a él. Esto puede ser útil para no perderse la actualización de todos los campos relevantes cuando los datos cambian en aplicaciones grandes.
- Con: a medida que la aplicación se vuelve grande y compleja, también es más difícil de controlar si un componente creó su propio estado para el mismo objeto en lugar de heredarlo por encima de la jerarquía. Los componentes pueden incluso ser escritos por diferentes desarrolladores. Puede resolverse permitiendo que solo el componente raíz retenga un estado. Pero en ese caso, por ejemplo en React, hará que la lógica de renderizado cree y compare, compare todos los demás elementos de IU virtuales innecesarios.
- 4 4
- Contras: Integrar animaciones / transiciones en marcos basados en datos es complicado y requiere un esfuerzo adicional.
- 5 5
- Con: La depuración se vuelve más difícil ya que estas bibliotecas consisten en miles de líneas de código desconocido (AFAIK, React ofrece sus propias herramientas de depuración).
Se afirma que los marcos de enlace de datos aumentan la productividad y disminuyen los errores, por lo tanto, escalan bien con la creciente complejidad de la aplicación, pero ¿cómo logra eso manipular el modelo de vista en lugar de la propia interfaz de usuario? Debe haber una razón por la cual estas grandes empresas eligen usar este método, pero no entiendo totalmente el beneficio. (No estoy discutiendo otras características de estos marcos como el enfoque de componentes o el enrutamiento, etc. Solo en términos de actualizaciones basadas en datos).
He dado ejemplos del desarrollo web, pero siéntase libre de comentar también sobre el desarrollo de la plataforma nativa.
- ¿Por qué IOS me pide regularmente que inicie sesión con mi contraseña en iCloud cuando ya tengo mi contraseña almacenada en la configuración de iCloud?
- ¿Qué es el iOS?
- ¿Cómo superan los desarrolladores de iOS el hecho de que están vinculando su carrera al éxito futuro de una única plataforma y empresa, es decir, IOS y Apple?
- ¿El virus WireLurker Mac (OS X) y iPhone (iOS) afecta solo a los iPhones con jailbreak o a todos ellos?
- ¿Qué hay de nuevo en iOS 7.1?
¿Realmente no es práctico escribir una aplicación grande sin usar ese marco?