¿Es una buena idea, o cuáles serían las desventajas de construir una red social usando Node js, Express js como back end y Angular js como front end?

Angular.JS en el frente y un back-end Express es definitivamente una elección justa. Se podría argumentar que React.JS es más popular en este momento, pero Angular existirá durante mucho tiempo. Express es en gran medida el estándar para las aplicaciones web Node.JS, por lo que no hay ningún problema allí.

Mirando más a fondo los detalles, mencionas ORMs y Sequelize. Esta es un área donde hay más fragmentación en el ecosistema Node. Sequelize probablemente se considera uno de los ORM más maduros para el nodo (considerando Waterline y Bookshelf como alternativas populares), aunque hay muchos desarrolladores que recomendarían renunciar a un ORM y trabajar directamente con SQL.

Cuando se trata de almacenamiento de datos de uso general, MySQL está bien. Tengo una preferencia personal por Postgres, pero para ser justos, las características son muy similares.

Donde las cosas se ponen interesantes es cómo procesar y almacenar las líneas de tiempo, los feeds y las relaciones con los seguidores (el gráfico social). Para las aplicaciones de consumo público que alcanzan una escala interesante (# usuarios activos, siguiendo relaciones por usuario, publicaciones por mes, etc.), una base de datos relacional generalmente se convierte en un cuello de botella en el rendimiento.

Se pueden agregar soluciones de almacenamiento especializadas como Redis, Cassandra, a la arquitectura para mejorar el rendimiento y esto a menudo puede ser exitoso. El principal desafío con este enfoque es el aumento de la complejidad de la aplicación y los costos para mantener estos componentes adicionales. Ahí es donde un servicio alojado como Stream (divulgación: donde trabajo) es a menudo una solución más simple y económica.

La consideración final que ofrecería está fuera de la tecnología. En realidad, es muy importante tener en cuenta su conjunto de habilidades (e intereses) existentes, así como su equipo actual y los posibles miembros futuros del equipo. ¡Trabaja con tecnología que disfrutas y con la que puedes ser productivo y estarás en buena forma!

Actualmente estoy construyendo una red social en la pila MEAN. Echa un vistazo a http: //mean.io&nbsp ; Es cierto que esta implementación particular de la pila angular de nodo, express, todavía está en su infancia en comparación con la mayoría de las otras pilas basadas en php, ruby, etc., pero es relativamente madura para tecnologías de nodo comparables, y esta pila es realmente simple y simple. fácil de usar.

En cuanto a las opciones de base de datos, mongo está destinado a escalar a tamaños de almacén de documentos muy grandes. Según los servicios que desee proporcionar con su red social, puede elegir otro nosql o incluso una base de datos sql. Sé que agregar el soporte inmediato para muchas tecnologías de bases de datos diferentes es actualmente el enfoque principal de los desarrolladores principales de linnovate y la comunidad de código abierto.

Las tecnologías que está utilizando son excelentes para este tipo de proyecto. También se beneficiará del gran rendimiento del motor Google V8.
Pero la elección de una tecnología depende de su experiencia, si conoce Node, Express y Angular mejor, use estas tecnologías y le dará los resultados.

Habiendo usado esas tecnologías muchas veces, no puedo encontrar ninguna estafa para esta pila. Implementar una red social usando estas tecnologías no será más difícil que usar otras tecnologías disponibles.

No estoy seguro de si está tratando de elegir tecnologías para su proyecto o un proyecto para las tecnologías que ha elegido. En cualquier caso, es una buena combinación de tecnologías y proyectos. No hay necesidad de dudar.

No usaría Angular.js porque quieres tener un SEO fuerte. Desea que su red sea indexada por Google. Usaría solo React.js en el front-end porque puedes renderizarlo en el lado de node.js, es más amigable con SEO.
Claro que hay formas de lograr similar en angular.js pero es más costoso.

Para la base de datos, usaría algún tipo de combinación de NoSQL y SQL como CouchDB / Cassandra / Hbase y MySql / Oracle.

Hay muchas tecnologías adecuadas que escalarán. El problema es cómo comenzar en un mercado tan saturado como las redes sociales.

Es una buena idea, pero ahórrese el problema de los problemas de rendimiento al comprender realmente las dependencias. Netflix ya está probando y con errores:

Node.js en llamas

Además, ¿tal vez considere Angular 2 como una posibilidad también? Los marcos basados ​​en componentes están de moda y por buenas razones.

No hay nada malo con este enfoque. ¡Creo que es una gran elección!
Con node y angular puede tener un desarrollo rápido y una aplicación altamente escalable de una manera muy fácil.
Claro que puedes lograrlo usando cualquier otra plataforma / lenguaje (java, .net, python, ruby, etc.), pero he estado trabajando con java (casi diez años) y c # (casi 2 años) y estoy muy cómodo decir que puedes hacerlo más rápido con nodo + angular (mi opinión).

Mysql es una base de datos bastante robusta y en cuanto a usar Nodo js, ​​Express js como back end y usando Angular js para front end, digo, adelante.

recuerde que un lenguaje o marco no es un buen software, un buen programador hace un buen software, no importa su elección lo bueno que lo use es lo que importa

No hay soporte para la base de datos Graph, por lo que usaría tecnología que no está diseñada para ello. No es imposible, pero no será tan robusto o eficaz como una solución madura. Sin las características gráficas, las búsquedas de ‘amigo de un amigo’ serán más lentas, entre otras cosas.

Tenga cuidado con express, podría ser difícil de mantener a medida que el proyecto crece, e IBM está matando el proyecto.

Sails y Koa se ven como un proyecto prometedor en desarrollo activo. Deberías tenerlo en cuenta

Creo que la pila que está considerando es adecuada para este tipo de proyecto, ya que la mayoría de sus componentes ya han sido probados en batalla y actualmente están en uso incluso en aplicaciones a gran escala. Por ejemplo, si no me equivoco, LinkedIn usa Node como la tecnología de back-end para su aplicación móvil.

Con respecto al motor de base de datos, le sugiero que eche un vistazo a las opciones de NoSQL, ya que están ganando más tracción en el campo debido a la mayor tasa de adopción. Personalmente, prefiero MongoDB, pero creo que es su responsabilidad como desarrollador considerar al menos todas las otras opciones importantes antes de comenzar a planificar la arquitectura de su aplicación.

Recuerde siempre que, independientemente de la pila de tecnología, cada marco y pieza de tecnología existente es una pequeña herramienta en un océano de tecnologías emergentes. Dicho esto, le recomiendo que eche un vistazo a todas las otras tecnologías adecuadas e identifique la pila que mejor se adapte a su propósito.

Express marrionette tiene una comunidad mejor que angular, debido a traer

Mysql no solo perderá su tiempo con migraciones, estructuras de tablas, escritura de consultas

Es un plan horrible. Buena suerte con los permisos de publicación + feeds de usuarios + comentarios + amistades + etiquetado + búsquedas + amigos sugeridos con mysql. Te veo el próximo año…. Cuando está depurando comentarios de publicaciones compartidas con personas no amigas que pueden compartir sus gatitos en contra de las reglas.

Comprobar Paytm Home El sitio tiene el mismo conjunto de tecnología utilizado. Los problemas que las personas ven con angularjs relacionados con SEO ya se han abordado.

Reemplazaría el back-end node.js es una tecnología increíble y utilizo muchas herramientas que dependen de él (grunt bower), pero para escribir aplicaciones grandes como el back-end de una red social, el código crecerá muy grande y será muy difícil de organizar, escribiría el back-end en un lenguaje que admita clases como php / java / c # / ruby ​​/ python.

En el lado frontal, angular es un marco muy bueno, pero si el back-end tiene problemas, no importará qué tan bien funcione el front-end.

Por qué no? Es una idea perfecta. Solo asegúrese de no usar MongoDB como su base de datos. Seguro que te dará problemas con el tiempo. Le sugiero que use una base de datos NoSQL basada en gráficos como Neo4J u OrientDB, etc.
Entonces los contras elegirán la base de datos correcta …

Te daré una gran estafa:


Angular está desactualizado, todos sabían que hace unos meses, si quieres hacerlo bien, usa React