Servidor Couchbase

Série FakeIt 3 de 5: Modelos Lean por meio de definições

Aaron Benton é um arquiteto experiente, especializado em soluções criativas para desenvolver aplicativos móveis inovadores. Ele tem mais de 10 anos de experiência em desenvolvimento de pilha completa, incluindo ColdFusion, SQL, NoSQL, JavaScript, HTML e CSS. Atualmente, Aaron é Arquiteto de Aplicativos da Shop.com em Greensboro, Carolina do Norte, e é um Campeão da comunidade do Couchbase.

Aaron Benton

Série FakeIt 3 de 5: Modelos Lean por meio de definições

Em nossa postagem anterior FakeIt Série 2 de 5: Dados compartilhados e dependências, vimos como criar dependências de vários modelos com a FakeIt. Hoje, veremos como podemos criar os mesmos modelos, porém menores, aproveitando as definições.

As definições são uma forma de criar conjuntos reutilizáveis em seu modelo. Elas permitem que você defina um conjunto de propriedades/valores uma única vez, referenciando-os várias vezes em seu modelo. As definições em um modelo FakeIt são muito semelhantes ao modo como as definições são usadas no Swagger / Especificação de API aberta.

Modelo de usuários

Começaremos com nosso modelo users.yaml que definimos em nosso primeira publicação.

Digamos que temos um novo requisito em que precisamos oferecer suporte a um endereço residencial e comercial para cada usuário. Com base nesse requisito, decidimos criar uma propriedade de nível superior chamada endereços que conterá propriedades aninhadas de residência e trabalho.

Nosso modelo users.yaml precisará ser atualizado para dar suporte a essas novas propriedades de endereço.

(Para fins de brevidade, as outras propriedades foram deixadas de fora da definição do modelo)

Como você pode ver, nossas propriedades de endereço residencial e comercial contêm exatamente as mesmas propriedades aninhadas. Essa duplicação torna nosso modelo maior e mais detalhado. Além disso, o que acontecerá se nossos requisitos de endereço precisarem mudar? Teríamos que fazer duas atualizações para manter a mesma estrutura. É nesse ponto que podemos tirar proveito das definições, definindo uma única maneira de criar um endereço e fazer referência a ele.

(Para fins de brevidade, as outras propriedades foram deixadas de fora da definição do modelo)

As definições são definidas na raiz do modelo, especificando uma propriedade definitions: e, em seguida, o nome da definição. As definições são referenciadas usando $ref com o valor sendo o caminho para a definição, por exemplo, #/definitions/Address. Com o uso de definições, economizamos quase 30 linhas de código em nosso modelo e criamos um único local para a definição e a geração de um endereço em nosso modelo de usuários.

Podemos testar a saída de nossos endereços de modelo de usuários atualizados usando o seguinte comando:

Agora, digamos que tenhamos um requisito para armazenar o número de telefone principal de um usuário e, em seguida, armazenar números de telefone adicionais opcionais, ou seja, residencial, comercial, celular, fax etc. Para essa alteração, usaremos duas novas propriedades de nível superior: main_phone e additional_phones, que são uma matriz.

Embora esse possa não ser o modelo de dados mais prático, ou como eu pessoalmente teria modelado esses dados, podemos usar esse exemplo novamente para ilustrar como podemos tirar proveito do uso de definições em nosso modelo FakeIt.

(Para fins de brevidade, as outras propriedades foram deixadas de fora da definição do modelo)

Para este exemplo, criamos uma definição de Phone que contém 3 propriedades: type, phone_number e extension. Você notará que definimos uma função post_build na propriedade main_phone que remove o atributo type. Isso ilustra como as definições podem ser usadas em conjunto com uma função de compilação para manipular o que é retornado pela definição. A propriedade additional_phones é uma matriz de definições de telefone que gerará entre 1 e 4 telefones. Podemos testar a saída dos números de telefone do nosso modelo Users atualizado usando o seguinte comando:

Conclusão

As definições permitem que você simplifique seus modelos FakeIt criando conjuntos reutilizáveis de código para modelos menores e mais eficientes.

Próximo

Anterior

Couchbase Champion Esta postagem faz parte do Programa de Redação da Comunidade Couchbase

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Laura Czajkowski, gerente da comunidade de desenvolvedores, Couchbase

Laura Czajkowski é a Snr. Developer Community Manager da Couchbase, supervisionando a comunidade. Ela é responsável pelo nosso boletim informativo mensal para desenvolvedores.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.