Comenzaría con la escala y la posición en la que se encuentra la quora. ¡Sabemos que es grande y probablemente no sea mantenido por una sola persona! Esto significa que necesitarás colaborar.
Además de la capa de servicio (aplicaciones + servidores web) es probable que haya un acumulador de estadísticas para aprender de los usuarios, etc. Probablemente no forme parte de la capa de servicio porque son 2 aplicaciones separadas con diferentes necesidades de recursos.
Por lo tanto, estamos tratando con un par de aplicaciones y bases de datos diferentes que conforman quora como plataforma para sus preguntas y respuestas.
- Apesto en el diseño de la interfaz de usuario, pero me siento bastante cómodo en el desarrollo de back-end para aplicaciones móviles. ¿Estoy condenado como desarrollador móvil?
- ¿A quién se le paga mucho en general después de una experiencia equivalente de Android y Java?
- Cómo administrar y mantener mi sitio web y sus datos mientras externalizo su codificación de back-end
- ¿Qué es el desarrollo back-end y front-end?
- ¿Es una decisión correcta lanzar un proyecto antes de que esté completamente completo?
Sabiendo esto, elegiría un lenguaje de back-end con el que estoy más familiarizado, pero también uno que no me obligue a ninguna estructura. Como soy un desarrollador web con un fuerte nivel de experiencia en desarrollo móvil, optaría por Nodejs.
Nodejs es Javascript en el servidor. Esto significa que no necesito saber múltiples lenguajes lógicos para crear una aplicación. ¡Javascript funciona en teléfonos móviles en forma híbrida! ¡Javascript funciona en el navegador! El rendimiento sabio nodejs es tan capaz como php, .net o cualquier otro lenguaje de back-end cuando se trata de servir a la web.
En los patrones arquitectónicos debemos considerar un par de cosas. Es necesario enviar notificaciones. Es necesario revertir los cambios en las respuestas. ¡Es necesario almacenar y mostrar el marcado! Iría por un almacenamiento de documentos que nos permita poner devoluciones de llamada cada vez que se realiza un evento de creación. Ideal para notificar cuando las personas responden preguntas.
Mis herramientas prevertidas en resumen:
- Nodejs con express
- Rethinkdb
- Reaccionar en la interfaz (nativa y web)