Sin categoría

MarcadorMás: Creación de vistas y ORM de béisbol

 

Preparándose para la temporada de béisbol, ScoreMore Béisbol acaba de dar en el clavo con el lanzamiento de su aplicación en las principales plataformas móviles. Uno de los elementos diferenciadores de la aplicación es el uso de Couchbase que se discutió en el Blog ScoreMore with Couchbase Mobile. Exploraremos ahora en este blog cómo la aplicación diseñó sus mapeadores de objetos y obtiene sus Vistas. 

Para ScoreMore, el diseño del Mapa de Relación de Objetos consiste en mantener un atributo específico para "tipo" para identificar el tipo de "objeto" es el documento. En el béisbol, un equipo está formado por miembros que desempeñan diversas funciones. En el ejemplo siguiente, "tipo": "entrenador" es para un documento que contiene toda la información para un Entrenador durante el juego. Otros roles serán definidos por sus respectivos "tipo"

Nota: hash y salt son para el almacenamiento de contraseñas, _id y _rev no se muestran, ya que son generados automáticamente por Couchbase. Versiones legibles de _id serán usadas en futuros ejemplos, como "coach_1".

En algunos documentos, el nodo de nivel inferior de una estructura puede enrollarse en una matriz en el documento propietario. El ejemplo clásico es incluir todas las direcciones de un contacto en una matriz. En ScoreMore Baseball, todas y cada una de las direcciones del bateador "hit" en una matriz para el partido en el que se produjeron. Del mismo modo, para un equipo, el récord de victorias y derrotas de cada temporada se incluye en una matriz en el equipo. De este modo, existe un primer grado de separación y relación claramente definido entre los atributos.

 

El equipo de Score More Baseball también mantiene ordenados los resultados del béisbol en su Vistas, donde cada Vista sólo devuelve documentos de un único "tipo". Con las vistas, la primera comprobación será una sentencia "if-clause", que validará los documentos que coincidan con un determinado criterio. "tipo"especificado mediante una comprobación del "tipo" o contra un campo que es único para ese tipo de documento. Un ejemplo a continuación es la Vista de Gráfico de Spray donde se muestra la ubicación de cada golpe que el jugador ha realizado.

El código siguiente comprueba primero si el documento (en este caso, un partido) contiene una matriz de aciertos para el equipo local o para el equipo visitante, omitiendo los documentos generados por la puerta de enlace de sincronización. A continuación, itera a través de todos esos aciertos, y si los parámetros de búsqueda del Jugador (especificados por playerid) para la temporada dada (especificada por 'añoid) coinciden con el acierto, entonces el Golpe se añade al conjunto de resultados. Cada ubicación de resultado tiene un 'x' y 'y' así como un tipoindicando si el golpe fue un fly ball, un line drive o un ground ball.

 

Por ejemplo, el siguiente gráfico de bateo muestra la ubicación de todos los bateos del "jugador_1" en la temporada 2015 teniendo (key=["jugador_1", 2015]) Los puntos rojos representan fly balls, los puntos blancos son line drives y los puntos amarillos son ground balls.

 

 

 

 

Por último, en el lado del cliente, ScoreMore utiliza estructuras JavaScript que son, en efecto, representaciones de objetos de los distintos tipos de documentos disponibles: Entrenador, Jugador, Equipo, Partido, etc. Los constructores de cada una de estas estructuras de objetos toman los resultados devueltos por la vista y los asignan a las propiedades del objeto. Yendo en la otra dirección (almacenar en la base de datos desde la aplicación), JSON.stringify se utiliza para pasar de la estructura de objetos al formato JSON que Couchbase espera para la operación POST.

 

Escuche cómo Couchbase Móvil ha proporcionado al equipo de ScoreMore las herramientas tecnológicas necesarias para dar en el clavo en el campo de juego. Café en Couchbase: Blog ScoreMore with Couchbase Mobile y asegúrate de hacerte con la aplicación que ya está disponible para Android, iOSy BlackBerry.

 

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Author

Posted by William Hoang

William fue Developer Advocate en el equipo de Mobile Engineering/Developer Experience de Couchbase. Su amor por el café y el código le ha trascendido al mundo de los móviles, al tiempo que aprecia las experiencias presenciales fuera de línea. Anteriormente, William trabajó en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, además de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenció en Ingeniería Eléctrica de Software por la Universidad McGill.

1 Comentarios

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.