¿Qué es mejor para grandes aplicaciones web Angular2 / 4 o React?

Para agregar un poco a la respuesta de Joel Phelan, me gustaría agregar algunos consejos generales: las mejores herramientas para aplicaciones grandes son aquellas que agregan, son más fáciles de cambiar, mantener y comprender, al ser más fácil de refactorizar, hacer pruebas, el código está limitado en lo que hace, y es consistente en su uso . Eso se aplica a cualquier tipo de lenguaje / marco que esté decidiendo.

Expandiré cada punto y luego un sesgo hacia Angular, porque es con el que he estado trabajando mucho, pero si puedes encontrarlo también en React (o cualquier otra herramienta) si también es bastante bueno para aplicaciones grandes.

  1. Más fácil de cambiar, más fácil de refactorizar: si tiene una aplicación grande, llega un punto en que un solo desarrollador (incluido usted) no conocerá todos los detalles de toda la aplicación. Ni siquiera con las revisiones de código (a menos que cada cambio sea visto por todos antes de fusionarse, pero aún así lo olvidaría fácilmente). Entonces sucede que te encuentras con un código desconocido cuando se desarrolla con el tiempo. Si la herramienta es fácil de cambiar / refactorizar, eso no se convertirá en un problema. Si no lo es, entonces su aplicación se vuelve mucho más compleja y es cuando odia su herramienta y su aplicación porque es difícil seguir agregando cosas. Esto se ve enormemente afectado por los siguientes puntos.
  2. Más fácil de mantener y hacer pruebas: hay un dicho, “Si no se prueba, no funciona”. Si bien esto puede discutirse, tener pruebas automáticas es fundamental para modificar (leer mantener) con confianza. Ya sean linters, compiladores, pruebas unitarias, pruebas e2e, compilaciones, etc., eso le permitirá no preguntarse en producción “¿se romperá horriblemente porque olvidé algo”? Claro, todavía puede suceder, dependiendo de la velocidad y las prioridades de desarrollo, pero si puede disminuirlo con un poco de esfuerzo, siempre vale la pena.
  3. El código está limitado en lo que hace: uno de los aspectos que promueven los defensores de la programación funcional es que las funciones hacen una sola cosa y pueden ser utilizadas por otras funciones (de orden superior) para lograr el resultado final. Esta es una de las formas de decir que su código solo hace 1 tarea y no hará otra cosa que no esperaría / desearía. En JS y en lenguajes similares, el lenguaje en sí no ayudará a hacer cumplir esto en particular (si carecen de tipos o permiten una programación imperativa), pero si las herramientas que lo rodean y las reglas de estilo de código lo ayudan, eso será de gran ayuda para comprender / mantener . (IMO / La siguiente parte es un sesgo general completo) Definitivamente trabaje en esto, los defensores de los lenguajes de scripting elogian la velocidad de desarrollo cuando carecen de tipos, pero si tiene éxito, llega a un punto donde es realmente fácil y rápido romper sin esperarlo Eso no es velocidad de desarrollo. Encuentre un lenguaje con semántica de tipos, inferencia de tipos y experimentación fácil (actualización automática, herramientas de recarga. Luego obtendrá su velocidad de desarrollo, menos pruebas y (extrañamente) más código de trabajo.
  4. Uso consistente: si un idioma / herramienta usa un “lenguaje común para funciones” para satisfacer sus necesidades, su aplicación es más consistente en cómo se desarrolló y, en consecuencia, es más fácil de entender (SI conoce ese idioma común). Si cada parte de su proyecto se implementa de manera muy diferente, que Dios bendiga a esa alma que puede entender todos los diferentes dialectos al mismo tiempo.

Ahora, en el caso de Angular, es posible que se pregunte cómo cumple cada punto. Haré una nueva edición con él cuando tenga más tiempo para escribir 😉

Si, en general, te refieres a que está involucrado: está en muchas partes móviles y comunicaciones entre componentes, interacción de back-end, entonces Angular es probablemente un poco más fácil, porque contiene todo lo que necesitarás, mientras que con React necesitarás usar bibliotecas adicionales para enrutamiento, gestión de datos (Redux, por ejemplo), autenticación, observables / promesas, etc. Sin embargo, hay bibliotecas estables para todo esto en el ecosistema React. Son solo parte de Angular, mientras que no son parte de React. Eso puede o no ser una preocupación. No me molesta mucho, ya que los que uso principalmente como el combo de Redux con React son estables y tienen soporte, y es probable que no vaya a ninguna parte pronto (también lo uso con Angular). No me importa mucho si mi módulo enrutador pierde el soporte de quien lo construyó.

Otra consideración es el mecanografiado. Para – si vas a aprender Angular, probablemente lo aprenderás a través de Typecript. No es obligatorio, pero la mayoría de los tutoriales, clases y videos para Angular se enseñan en TypeScript. Si vas a aprender React, la mayoría de los tutoriales son ES5 o ES6 sin TypeScript. Angular se puede desarrollar utilizando ES6 sin TypeScript, o solo en ES5. React, asimismo, se puede desarrollar en ES6 o TypeScript, o solo en ES5. La principal diferencia es la documentación. No hay tanta documentación sobre el desarrollo de aplicaciones angulares en ES5. Los documentos angulares tratan sobre ES6 y TypeScript. Veo que incluso han eliminado los documentos de Dart del sitio (nunca fueron más que trozos, en su mayoría). Hay un par de buenos sitios para desarrollar aplicaciones angulares en ES5, pero la mayoría de los sitios, como la documentación oficial, utilizan la especificación más reciente.

Otra ventaja, específica para proyectos grandes, es que la CLI angular es un poco más desarrollada que la CLI de React, por razones obvias. La CLI angular puede usarse para crear más que componentes (dado que Angular es un marco, contiene más elementos que React, por lo que la CLI puede crear estas cosas). Si necesita generar una ruta en su enrutador de componentes en React, no puede usar la CLI para hacerlo, obviamente, porque el enrutador de componentes no es parte de la biblioteca React.

Vea hasta su comprensión y requisitos y el lapso de tiempo a qué lado desea ir. ambos idiomas tienen sus pros y sus contras.

si hablamos de angular2, que es la última y de tendencia a partir de ahora, que presenta muchas nuevas características increíbles que dejan en claro su uso en proyectos pequeños y grandes como

  • Carga diferida que hace que se reduzca el tamaño del paquete al momento de la producción.
  • estructura de línea de comando proporcionada por angular cli que hace que sea más simple crear muchas directivas de servicio de componentes en un corto intervalo de tiempo
  • documentación clara y número de preguntas y respuestas en stackoverflow también
  • angular2 es un paquete completo en sí mismo, a diferencia de reaccionar en el que tiene que usar algo externo para la administración de estado como redux, externo para enrutamiento para http, etc., mientras que en angular2 todo está incorporado.

así que me gustaría sugerir que angular2 es la mejor opción para cada tipo de proyecto.

Los componentes angulares 2/4 prefabricados aumentan el tiempo de desarrollo y reducen el tamaño del código, por lo que probablemente sea la mejor opción.

More Interesting

¿Cuánto cuesta construir una aplicación similar a AirBNB?

¿En qué marco web está construida la nueva interfaz web de WhatsApp?

¿De qué sirve un servidor web y cuál es su propósito?

¿Hay algún tipo de servicio web para el que Ruby on Rails sea muy adecuado?

¿Es posible realizar un seguimiento de las actualizaciones del plan con Google Analytics?

Cómo gestionar el desarrollo de aplicaciones web sin conocer los lenguajes de programación

¿Es mejor hacer pruebas beta públicas o privadas para una nueva aplicación web? ¿Por qué?

¿Qué plan de alojamiento web debería elegir para obtener más información sobre la implementación de aplicaciones, aplicaciones web progresivas y algunas cosas de tecnología web avanzada?

Estoy creando una aplicación web con Ruby on rails. ¿Cómo puedo permitir que un usuario agregue o elimine etiquetas (palabra clave simple) en la parte inferior de las imágenes?

¿Podemos implementar una aplicación web existente en AWS Lambda?

¿Cuál es la práctica estándar para que un servidor notifique a un equilibrador de carga que no está disponible?

¿Qué herramienta de prueba de rendimiento es mejor para pruebas de aplicaciones basadas en web, LoadRunner o JMeter?

¿En qué se diferenciarán las aplicaciones web disponibles en las próximas tiendas de aplicaciones Google Chrome y Mozilla de los sitios web que usamos hoy?

¿Cuál es el mejor flujo de trabajo para implementar un sitio web y una aplicación web en AWS?

¿Alguien ha usado una empresa de desarrollo web llamada MacAppStudio?