Servidor Couchbase

FakeIt Series 3 de 5: Modelos Lean a través de definiciones

Aaron Benton es un arquitecto experimentado especializado en soluciones creativas para desarrollar aplicaciones móviles innovadoras. Tiene más de 10 años de experiencia en desarrollo full stack, incluyendo ColdFusion, SQL, NoSQL, JavaScript, HTML y CSS. Aaron es actualmente Arquitecto de Aplicaciones para Shop.com en Greensboro, Carolina del Norte y es un Campeón de la comunidad Couchbase.

Aaron Benton

FakeIt Series 3 de 5: Modelos Lean a través de definiciones

En nuestro post anterior FakeIt Serie 2 de 5: Datos Compartidos y Dependencias vimos cómo crear dependencias multi-modelo con FakeIt. Hoy vamos a ver cómo podemos crear lo mismo, pero modelos más pequeños aprovechando las definiciones.

Las definiciones son una forma de crear conjuntos reutilizables dentro de su modelo. Le permite definir un conjunto de propiedades / valores una vez, haciendo referencia a ellos varias veces a través de su modelo. Definiciones en un modelo FakeIt son muy similares a cómo las definiciones se utilizan en el Swagger / Especificación API abierta.

Modelo de usuario

Comenzaremos con nuestro modelo users.yaml que definimos en nuestro archivo primer mensaje.

Digamos que tenemos un nuevo requerimiento donde tenemos que soportar una dirección de casa y trabajo para cada usuario. Basándonos en este requisito, hemos decidido crear una propiedad de nivel superior llamada direcciones que contendrá propiedades anidadas de casa y trabajo.

Nuestro modelo users.yaml tendrá que ser actualizado para soportar estas nuevas propiedades de dirección.

(En aras de la brevedad, se han omitido las demás propiedades de la definición del modelo)

Como puedes ver nuestras propiedades de dirección de casa y trabajo contienen exactamente las mismas propiedades anidadas. Esta duplicación hace que nuestro modelo sea más grande y verboso. Además, ¿qué pasa si nuestros requisitos de dirección tienen que cambiar? Tendríamos que hacer dos actualizaciones para mantener la misma estructura. Aquí es donde podemos aprovechar las definiciones, definiendo una única forma de crear una dirección y referenciarla.

(En aras de la brevedad, se han omitido las demás propiedades de la definición del modelo)

Las definiciones se definen en la raíz del modelo especificando una propiedad definitions: y, a continuación, el nombre de la definición. Las definiciones se referencian mediante $ref, cuyo valor es la ruta a la definición, por ejemplo #/definitions/Address. Mediante el uso de definiciones hemos ahorrado casi 30 líneas de código en nuestro modelo y hemos creado un único lugar para definir y generar una dirección dentro de nuestro modelo de usuarios.

Podemos probar la salida de las direcciones de nuestro modelo de usuarios actualizado utilizando el siguiente comando:

Ahora, digamos que tenemos un requisito para almacenar un número de teléfono principal de los usuarios, y luego almacenar los números de teléfono adicionales opcionales es decir, Casa, Trabajo, Móvil, Fax, etc. Para este cambio vamos a utilizar dos nuevas propiedades de nivel superior: main_phone y additional_phones que es una matriz.

Si bien este puede no ser el modelo de datos más práctico, o cómo yo personalmente habría modelado estos datos podemos utilizar este ejemplo de nuevo para ilustrar cómo podemos aprovechar el uso de definiciones dentro de nuestro modelo FakeIt.

(En aras de la brevedad, se han omitido las demás propiedades de la definición del modelo)

Para este ejemplo hemos creado una definición de Phone que contiene 3 propiedades: type, phone_number y extension. Observará que hemos definido una función post_build en la propiedad main_phone que elimina el atributo type. Esto ilustra cómo se pueden utilizar las definiciones junto con una función de construcción para manipular lo que devuelve la definición. La propiedad additional_phones es un array de definiciones de teléfono que generarán entre 1 y 4 teléfonos. Podemos probar la salida de nuestros números de teléfono actualizados del modelo Users usando el siguiente comando:

Conclusión

Las definiciones le permiten racionalizar sus modelos FakeIt mediante la creación de conjuntos reutilizables de código para modelos más pequeños y eficientes.

A continuación

Anterior

Couchbase Champion Este post forma parte del Programa de Escritura de la Comunidad Couchbase

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

Author

Posted by Laura Czajkowski

Laura Czajkowski es la Snr. Developer Community Manager en Couchbase supervisando la comunidad. Es responsable de nuestro boletín mensual para desarrolladores.

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.