¿Qué aplicaciones web actuales, marcos, bibliotecas, idiomas y editores de código usarías para construir una red social en 2016?

Me gustaría ir con Meteor con Redux + React como interfaz.


Seamos realistas: al crear una aplicación de chat o una red social, debe optimizar su pila para que los usuarios se suban a bordo, a expensas de planificar cualquier tipo de escala. Existen docenas de servicios competitivos, por lo que le conviene concentrarse principalmente en experimentar con el producto e iterar con él rápidamente. Para este tipo de proceso de creación de prototipos, no hay tecnología en el mercado que le sirva mejor que Meteor.

Meteor reduce enormemente la cantidad de trabajo necesario para programar buenas aplicaciones web.

Significa que las personas pueden pasar más tiempo diseñando sus productos y menos tiempo haciendo que funcionen. ¿Recuerdas cuántas aplicaciones web apestaron en 1998? Hoy están mejor porque las tecnologías web han avanzado. Meteor continúa ese arco. Habrá muchas aplicaciones web nuevas que ni siquiera existirían sin Meteor, porque hubieran tardado demasiado o hubieran sido demasiado difíciles de crear.

Por supuesto, es probable que el sistema de plantillas Meteor’s Blaze siga el camino del dinosaurio pronto, por lo que en lugar de usar Blaze, recomendaría revisar React + Redux. Es una combinación de front-end que le permitirá escribir componentes reutilizables que le ayudarán a su objetivo de experimentar rápidamente con su producto.

Si está interesado en ponerse al día con Meteor y React + Redux, consulte estos recursos:

  • Aprenda Meteor primero con los recursos oficiales de Meteor: explore contenido excelente.
  • Learn React + Redux: Modern React with Redux – Udemy

Y por supuesto, ¡buena suerte!

Mis propias preferencias:

Editores de código : pueden ser cualquier cosa, yo uso Sublime, algunos de mis compañeros usan Atom.

La API web : probablemente use mailgun para enviar correos, Iron para el servidor de colas y amazon PRINCIPALMENTE para servir activos, posiblemente también podría alojar el sitio con s3 . Dropbox, Firebase, Google Drive Realtime, Hydna, Meteor, PubNub, Pusher, Realtime Framework Messaging Service o Simper , son todas mis alternativas.

Bibliotecas, marcos, idiomas : cualquier cosa con capacidades en tiempo real sería buena. Algunas notas importantes al construir algo en tiempo real:

  • Escalabilidad vertical (y rendimiento en general)
  • Escalabilidad horizontal mediante agrupación tolerante a fallas
  • Entrega garantizada de datos en presencia de fallas (por ejemplo, si la conexión entre un cliente y un servidor de mensajería se rompe o si el servidor de mensajería que atiende al cliente se cae, el cliente se volverá a conectar a otro miembro del clúster y recibirá todos los mensajes publicados durante la reconexión hora)
  • Seguridad de los datos, incluidos los derechos de datos.

Si eres bueno con Java, las mejores opciones son Netty, Jetty. Si JS, lo mejor es Faye o Socket.IO, si C #: SignalR / XSockets, Python: Tornado, PHP: ReactPHP / Rachet, Ruby: Faye.

Todavía hay otras consideraciones. ¿Necesitas soporte móvil? ¿Cuántos datos está enviando? Respaldo HTTP? PubSub / Sync / RMI, etc. Construir una red social requiere mucho experimento. ¿Y por qué necesitas uno nuevo?

… De nuevo no es mi problema 🙂 Buena suerte en tu viaje.

Si fuera una empresa que iba a construir una red social, probablemente usaría LAMP (Linux, Apache, MySQL, PHP). Es maduro, endurecido para la batalla, y escala para la mayoría de los intentos y propósitos. Posiblemente usaría Laravel en la parte superior y tal vez cambiar Apache por nginx (haciéndolo más LEMP que LAMP).

Si iba a construirlo yo solo, iría con Ruby on Rails, solo porque le quita mucha presión al desarrollador y lo oculta todo. Una vez más, usaría nginx al frente, MySQL como sistema de administración de bases de datos, algún servidor web Ruby de un solo subproceso.

Una vez que llegue a un gran número de usuarios, probablemente desnormalizaría mis tablas y guardaría todo.

Por supuesto, todo esto es un poco redundante porque nunca construiría personalmente una red social.

Otras opciones incluyen “lo que ya sabes” y “lo que sea más fácil de aprender”.

Los sitios web de redes sociales solo se vuelven interesantes cuando tienes un montón de usuarios … lo que puede llevar un tiempo.