Comece pela UX, mesmo para uma API

No post anterior, recomendamos prototipar UX para explicitar a linguagem onipresente de um domínio. Entretanto, por entendermos que UX é muito mais do que as “telinhas” de um sistema, continuamos nesse tema.

Nesse post, trataremos sobre como usar protótipos de UX para explicitar a linguagem onipresente de um domínio em projetos de API.

Dê ênfase ao código consumidor…

[tweet]Quando for escrever uma API, também escreva código para consumir essa API.[/tweet]

Uma API bem projetada é centrada no propósito do código consumidor. Em nossa experiência, não seguir essa ideia causa erros de implementação e dificuldades de entendimento.

Na ExímiaCo, orientamos a escrita do código que consome a API antes mesmo de escrever a API. Esse simples exercício amplia o entendimento do domínio e resulta em design enxuto e eficiente.

Importante destacar que, como indicado por Ronnie Mitra (autoridade no desenvolvimento de APIs), escrever testes de unidade não é suficiente. Afinal, temos que escrever código que demonstre que seguimos perspectiva do cliente e não uma especificação.

São os códigos que consomem uma API que realizam o propósito do domínio. Esses códigos conseguem demonstrar se as  expressões e nomes escolhidos para a linguagem onipresente são ou não adequadas.

… mas não pare no “código”

Se o propósito de uma API for fornecer dados e comportamento para determinados tipos de interface, nós, da EximiaCo, recomendamos prototipar  e até mesmo implementar esses tipos de interface para que o código consumidor que estamos emulando seja ainda mais fiel.

Feedback é princípio fundamental para agilidade. Se um único componente de interface precisar fazer chamadas para duas APIs distintas para ser renderizado, então, esse protótipo estará gritando que os “contextos” não foram identificados corretamente.  

Em nossas consultorias temos encontrado APIs restlike, com recursos com belos nomes, mas desconectados do uso, que têm causado sobrecarga de rede, além de serialização e materialização de objetos grandes (onerando o GC).

Como regra geral, identificamos que se a UX, para renderizar um único componente, precisa recorrer a composição de dados (seja server-side ou client-side), temos indícios de modelagem anêmica.

É no código que consome uma API que a linguagem onipresente do domínio irá se refinar e emergir naturalmente.

Software funcionando mais do que documentação abrangente

Entendemos e defendemos que a geração de documentos é essencial para o desenvolvimento de software. Sobretudo, quando os riscos envolvidos forem grandes.

De qualquer forma, quando comparamos glossários a protótipos de interface, entendemos que os protótipos estão muito mais próximos de software funcionando do que uma lista fria de termos e significados. Por isso, entendemos que protótipos são ferramentas mais adequadas para explicitar a linguagem de domínio, enquanto o glossário é documento resultante (nem fim, nem meio).

Consolidando

Ao projetar uma API, simule o uso através de código cliente e, se houver uma interface com usuário envolvida, simule também essa interface.

Pessoas são, com frequência, visuais. Protótipos de interface ou até mesmo do código consumidor ajuda a tornar mais tangíveis os conceitos do domínio.

Desenvolvimento de software é um processo iterativo. Embora reuniões iniciais sirvam para definir alguns poucos conceitos, antes dos primeiros protótipos e interações, será a partir do processo cíclico que a linguagem irá emergir. 

Obviamente, os protótipos são elaborados de forma iterativa e interativa, sempre envolvendo os especialistas. No final, os protótipos acabam até permitindo a escrita de documentos textuais descritivos, entretanto, com indicativos de menor ambiguidade.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
2 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Gabriel Vargas
Gabriel Vargas
4 anos atrás

Ótimo post Elemar! Concordo plenamente com sua colocação de que uma grande demanda de composições é um forte indício de modelagem anêmica do domínio.

Por outro lado, pensando sobre a estratégia de tomar como base a experiência de nossos clientes na construção de APIs, estava me perguntando o quanto isso pode de fato nos orientar a respeito de nosso domínio, ou nos direcionar para uma demanda específica de um determinado canal de interação com negócio. Tenho observado muitas situações onde uma determinada demanda de um cliente extrapola as competências de um contexto e exige uma orquestração ou composição que não reflete uma experiência de uso comum a demais clientes.

Nesse caso, o foco nesta UX poderia ser uma armadilha, nos levando a uma visão incompleta do negócio? Ainda nessa linha, gostaria de saber o que você pensa a respeito do uso de Backends for Frontends para estes cenários.

Um abraço!

Cicero Junior
Cicero Junior
4 anos atrás

Doutor, mas, quando criamos classes anêmicas é porque a nossa vontade de implementar não foi maior do que a nossa capacidade de abstração do que é para ser realizado?

AUTOR

Elemar Júnior
Fundador e CEO da EximiaCo atua como tech trusted advisor ajudando empresas e profissionais a gerar mais resultados através da tecnologia.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Arquivo

Pós-pandemia, trabalho remoto e a retenção dos profissionais de TI

CTO Consulting e Especialista em Execução em TI
2
0
Queremos saber a sua opinião, deixe seu comentáriox
Oferta de pré-venda!

Mentoria em
Arquitetura de Software

Práticas, padrões & técnicas para Arquitetura de Software, de maneira efetiva, com base em cenários reais para profissionais envolvidos no projeto e implantação de software.

Muito obrigado!

Deu tudo certo com seu envio!
Logo entraremos em contato

Comece pela UX, mesmo para uma API

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Comece pela UX, mesmo para uma API

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

× Precisa de ajuda?