¡Tienes razón! El enlace de datos bidireccional fue literalmente una pieza de AngularJS. Podría decirse que la inyección de dependencias tuvo una mayor influencia en la dirección del desarrollo de aplicaciones web, pero eso es para otra pregunta.
Al igual que con muchas cosas en el mundo de la informática, el enlace de datos bidireccional (en adelante denominado 2WDB) no es correcto o incorrecto, es adecuado para una aplicación o no lo es.
2WDB es un método con un grado increíblemente alto de seguridad de que el modelo y el controlador están sincronizados, porque durante cada ciclo, se verifican entre sí. Es por eso que las aplicaciones de AngularJS con una gran cantidad de cosas en la pantalla pueden ser tan lentas, porque teóricamente puede haber miles de cosas que necesitan verificación.
- Cómo promocionar mi página de Facebook RollPanda sin usar anuncios de Facebook
- ¿Cómo podría mejorarse OkCupid?
- Cómo leer datos de una aplicación web y colocarlos en una aplicación usando Blueprism
- ¿Cómo es desarrollar una aplicación web en Golang?
- Administración de dispositivos móviles: ¿Hay alguna solución mdm que no sea Citrix que haga virtualización de aplicaciones? Me refiero a cualquier solución mdm que ofrezca virtualización de aplicaciones además de mdm
El enlace de datos unidireccional es más rápido, ya que tiene una vista que se produce a partir de un modelo, pero reduce su seguridad de que la vista y el modelo son iguales. Por ejemplo, un usuario podría cambiar lo que se muestra en la pantalla, pero si eso no cambia en el modelo, la aplicación no lo sabe y la información incorrecta persistirá en la pantalla. Del mismo modo, las personas nefastas podrían infectar una computadora que muestra cosas distintas a las que la aplicación cree que se están mostrando.
Obviamente, se decidió que estas preocupaciones no eran lo suficientemente importantes como para seguir adelante con 2WDB, ya que cada marco principal ahora está usando 1WDB. Creo que esto se debe a que las mejoras de velocidad son demasiado significativas como para ignorarlas. Además, con 1WDB, un desarrollador malo no puede causar el daño que podría causar una aplicación 2WDB, como las aplicaciones AngularJS con alcances de $ 10,000. Una aplicación Angular mal escrita será mucho mejor que una aplicación AngularJS mal escrita.
Sostengo que 2WDB todavía tiene un propósito en pequeñas aplicaciones donde el mantenimiento rígido de la consistencia entre la vista y el modelo es crítico. Por ejemplo, preferiría esto en una aplicación financiera donde lo que se muestra debe suponerse con la mayor seguridad posible como correcto.
Pero seamos sinceros, el 99% de las aplicaciones que se desarrollan en estos marcos no son eso. En la gran mayoría de las implementaciones, los datos obsoletos están bien. Obviamente, un buen desarrollador siempre intentará mitigarlo, pero no la mantiene despierta por la noche.
Dado que Angular es un producto, deben atender al mercado más grande, y el mercado más grande es 1WDB.