Los Tutoriales máximos se basan en aplicaciones crud. Si creo que estoy bien en aplicaciones crud, ¿sobre qué tipo de aplicaciones necesito estudiar?

Si bien puede pensar que está bien en aplicaciones CRUD, probablemente no lo esté. Aquí hay algunos temas interesantes para aplicaciones CRUD.

Comencemos por una aplicación básica de blogs web multiusuario que puede encontrar en todos los tutoriales de RoR:

  1. Etiquetado y categorización por etiquetas
  2. Notificación, sobre nueva publicación, comentario, respuesta, etc.
  3. Implementar estructura de árbol para comentarios.

Hasta ahora puede que todavía te sientas bien, y sigamos adelante

  1. Búsqueda de texto completo, sin utilizar servicios de terceros.
  2. Soporte multilingüe

Arriba están todas las funciones, veamos escalas:

  1. Considere que tiene 1M de visitante, usando su aplicación al mismo tiempo.
  2. Considere que su solicitud está en línea durante 10 años.

Puedo enumerar más, pero creo que debería parar aquí, luego voy a explicar qué tipo de problema puede encontrar cuando intente implementar todo lo anterior.

  • El subsistema de etiquetado es el más volátil si está trabajando en una aplicación del mundo real, esta característica puede requerir cambios frecuentes en el esquema de base de datos, por lo que debe pensar dos veces antes de diseñar sus bases de datos.
  • La notificación fluye datos a sistemas externos, debe cooperar con servidores de correo electrónico, teléfonos móviles y varios clientes incluyen todos los principales navegadores.
  • La estructura de árbol es una característica muy desagradable si está utilizando RDBMS como MySQL y Oracle, tendrá muchas consultas para mostrar un árbol completo de comentarios, demasiados para ser asequibles.
  • Búsqueda de texto completo, esta derrota a todos los RDBMS ya que están diseñados para manejar datos estructurales, no texto no estructurado, intente la consulta “LIKE” en MySQL, verá que colapsa muy pronto.
  • El soporte multilingüe es demasiado difícil para que Quora lo admita, lo sabíamos.
  • Con demasiados usuarios, la instancia de servidor de base de datos única no seguirá funcionando, MySQL en un servidor de clase media puede manejar miles de consultas por segundo como máximo, pero con 1M de usuarios concurrentes necesitará muchos más recursos, simplemente actualizar el hardware no es una cura Como siempre tendrá más usuarios, un día descubrirá que no hay compañía que pueda construir una sola computadora para manejarlos a todos, incluso si tiene suficiente dinero.
  • Con un gran volumen de datos históricos, debe manejarlos de manera más inteligente, no todos tienen la misma frecuencia de acceso, almacenarlos todos juntos es absolutamente una mala idea (lectura, costosa).

Estos temas son solo la vida diaria de los ingenieros en muchas empresas web.