¿Qué tan difícil es hacer una aplicación como Quora?

Gracias por A2A

En el área de codificación? No mucho. Los conceptos básicos se enseñan en casi cualquier tutorial de lenguaje web. Incluso podría usar algunos servicios preparados donde solo necesita agregar su estilo si lo desea. La tarea difícil es hacerlo popular. Hay tantos sitios web de preguntas y respuestas por ahí que es difícil encontrar una sobrina donde su sitio web reciba suficiente tráfico para ser interesante. Tal sitio web necesita visitantes. Conseguirlos es la tarea realmente difícil.

EDITAR:

Ya que hay tantos comentarios al respecto. Esta respuesta está relacionada con una página web de preguntas y respuestas con algunas heurísticas básicas para crear una lista de temas correspondiente al usuario. Para mí es bastante claro que puedes hacerlo hasta un nivel muy avanzado. Pero la pregunta no es si es difícil construir quora, sino una aplicación como quora, que es algo diferente para mí. Esta pregunta no describió un alcance y, por lo tanto, elegí un alcance que incluye una funcionalidad básica que sería más que suficiente para ejecutar una pregunta y responder a un sitio web que incluye el seguimiento de personas y temas, una heurística básica para sugerir temas basados ​​en preferencias, crear un clasificación de diferentes respuestas relacionadas con una pregunta y contar vistas de respuestas. Creo que todos estarán de acuerdo en que este alcance no es un gran problema.

¿Qué tan difícil es hacer una aplicación como quora?

No es fácil. Primero debe decidir qué características desea tener sobre el concepto básico de un sitio de formato de preguntas y respuestas. Cosas como

  1. ¿Quiero apoyar a los usuarios? Entonces la gestión de usuarios
  1. Registro
  2. Iniciar sesión
  3. Cerrar sesión
  4. Contraseña perdida
  • ¿Quiero apoyar comentarios?
    1. ¿Comentarios sobre preguntas o respuestas?
    2. Comentarios sobre comentarios?
  • ¿Votar sobre preguntas y respuestas?
    1. Voto a favor
    2. Voto negativo
    3. Notificaciones de votos?
  • Eso lleva a sistemas de notificaciones
    1. ¿Nuevas notificaciones de preguntas?
    2. ¿Nuevas notificaciones de respuesta?
    3. ¿Nuevas notificaciones de comentarios?
    4. Notificaciones de voto arriba / abajo
  • Sistemas de quejas?
  • Sistemas de correo electrónico
  • Sistemas de categoría de preguntas
  • ¿Permitir contenido rico (incrustación de imagen / video)?
  • Todas las cosas de la base de datos detrás
  • Escala del sitio a medida que los usuarios crecen
  • Etcétera. El truco consiste en decidir lo que quiere y dividirlo en los componentes más pequeños posibles que se puedan mantener de manera simple e integrar fácilmente en varias secciones de la aplicación.

    Entonces, no, no es fácil. Pero no lo haces todo de una vez. Lo divide en trozos y hace un trozo o una característica a la vez para minimizar el riesgo de romper cosas.

    Si solo está preguntando sobre la interfaz y un mundo de backend simple, no es tan difícil.

    Podría usar una plataforma de blogueo de código abierto para crear la infraestructura básica, y con un poco de pirateo de la plataforma, podría crear la organización de nivel superior de “preguntas” y “respuestas”. La mayoría de las plataformas de blogs ya admiten comentarios, usuarios / carteles, algún tipo de sistema de inicio de sesión y temas.

    El esquema de votación hacia arriba / hacia abajo también se puede hacer sin demasiado esfuerzo, especialmente si no intenta rastrear quién hizo qué. Además, las listas de seguidores podrían agregarse directamente.

    La diversión comienza cuando quieres comenzar a clasificar las cosas. Quora tiene un sistema complejo para determinar qué contiene su feed, cómo se ordenan las respuestas dentro de una pregunta, etc. que parece ser una función de sus seguidores, los temas que sigue, las votaciones, el respaldo del afiche y el número de seguidores, la edad de las preguntas y respuestas (Quora parece hacer un esfuerzo para “resucitar” viejas preguntas de vez en cuando), etc.

    Y las cosas se ponen realmente difíciles una vez que empiezas a escalar. Su plataforma de blogs de una sola máquina será aplastada rápidamente a medida que crezca su base de usuarios y el almacén de datos general, y tendrá que descubrir cómo superar este problema.

    Moderadamente sencillo.

    Probablemente podría obtener el 90% de la funcionalidad descargando algo como phpBB o similar.

    El principal problema que tienen casi todos los sitios web populares es escalar a millones de usuarios.

    Hacer que algo como Quora funcione en un servidor, atender a unos pocos miles de usuarios es una propuesta razonablemente sencilla. Incluso podría decir que es un proyecto que un principiante intermedio podría asumir, pero una vez que dices “En realidad, no 1000 usuarios, 1,000,000 usuarios” las cosas se ponen difíciles.

    La mayoría de los sitios web quieren ejecutarse en un grupo de servidores de bajo costo (en comparación con máquinas 1,2 * o más * masivas *), es más económico escalar y es más fácil obtener capacidad de servicio a pedido. Eso significa que, en lugar de hacer que todos los usuarios se conecten a un servidor web y una base de datos, tiene unos 500 servidores que ejecutan un servidor web, ¿entonces todos hablan con una base de datos? ¿O múltiples bases de datos que de alguna manera funcionan al unísono? Cambia un problema sencillo en un problema bastante complicado.

    El problema básico es bastante simple, pero hacer que funcione para millones de usuarios no es muy simple.

    No es tan difícil hacer algo así. Es solo un servicio web con un servidor de base de datos y varias capas de visualización (por dispositivo: web, Android, IOS, etc.). Lleva tiempo y una gran cantidad de pruebas, pero no demasiado duro.

    Lo difícil es lograr que las personas lo usen y lo adopten. Eso lleva tiempo, dinero y mucha suerte. Existen muchas aplicaciones y sitios del mismo tipo, solo unos pocos lo hacen.

    No es nada difícil, de hecho, la aplicación actual de Android Quora tiene una interfaz de usuario desactualizada, es muy lenta y tampoco hace mucho en términos de lógica empresarial o interacciones de usuario.

    Un poco de navegación, algunas listas de desplazamiento sin fin o vistas de recicladores, algunas pantallas simples y un montón de llamadas de red regulares y listo. Ah, y algunas notificaciones en la mezcla.

    Un desarrollador de Android con un año de experiencia puede hackear una aplicación como esa juntos, pero no funcionaría bien.

    Escribir una aplicación web de funcionamiento básico: fácil .

    Escribir un servicio con una gran experiencia de usuario, compromiso constante / rigidez y proporciona un servicio valioso: difícil .

    La aplicación Quora no es una gran hazaña de ingeniería. El backend de Quora, OTH, tiene una lógica seria. No puedes tener una aplicación Quora sin el backend

    More Interesting

    ¿Qué hace que un ingeniero de software "se enfrente al cliente"?

    No soy una persona orientada a los detalles, pero me gusta cómo el desarrollo de software puede cambiar la vida de las personas, ¿me gustaría codificar?

    ¿Cómo es ser ingeniero de software en Endurance International Group India? (Para la parte que se adquirió de Directi)

    ¿Todavía es posible para un joven de 31 años convertirse en un ingeniero de software exitoso y eventualmente ganar $ 100k + / año?

    Recibí una oferta de trabajo de Microsoft India, Hyderabad como Nivel 64 (Ingeniero de Software Senior). ¿Qué factores debo considerar antes de unirme?

    ¿Qué puedo hacer como ingeniero de software sobre mi trabajo?

    ¿Cómo aprender a construir sistemas escalables, de alto rendimiento y altamente concurrentes? ¿Cuáles son los requisitos previos? ¿Qué recursos debo usar para aprender? ¿En qué tipos de proyectos debería trabajar? ¿Cuáles son las habilidades y la mentalidad de un SDE de este tipo?

    ¿Debo perder el respeto por los ingenieros de software que usan Internet Explorer como su navegador predeterminado?

    ¿Qué se debe hacer para preparar una entrevista para el ingeniero de software asociativo?

    Cómo convertirse en un ingeniero de software de mente más abierta

    ¿Qué debo hacer si quiero pasar de la ingeniería de software a la ingeniería de sistemas?

    ¿Qué habilidades necesita un ingeniero de software? Mi universidad adopta un enfoque de gestión con algunas habilidades de código. ¿Está bien?

    ¿Son muy buenos ingenieros de software capaces de trabajar en áreas técnicas muy diferentes?

    ¿Los ingenieros de software alguna vez dejarán de tener demanda?

    ¿Cómo puede un ingeniero de software aprovechar el sector AI / DL?