https://a.storyblok.com/f/270183/86155/e7fdee5fdc/blog_taking-time-for-yourself_1200x600.png

Reservando um tempo para si mesmo, no mundo da programação

Tempo de leitura: 6 minutos

Lá em março de 2020, eu falei sobre revisar nossas especificações de servidor, e que um dos meus principais objetivos era garantir que estivéssemos oferecendo a melhor experiência possível aos desenvolvedores que utilizam nossos SDKs. A atualização das especificações do servidor permitiu que nossa equipe se flexibilizasse um pouco e desenvolvesse os SDKs de maneiras que fizessem sentido para a linguagem, proporcionando a cada desenvolvedor a experiência que ele esperava.

Estabelecemos metas para o primeiro semestre do ano com foco na otimização da experiência do usuário. Isso levou nossos especialistas em linguagem de programação a analisar cada um dos SDKs, tanto no namespace da Nexmo quanto no da OpenTok, e identificar onde poderíamos nos alinhar melhor à nova especificação. Começamos a fazer uma lista dos pontos em que não estávamos em conformidade com a especificação. Isso soa muito formal, mas o que queremos dizer é: os SDKs estavam alinhados com nossas novas metas? Em que aspectos os SDKs não parecem ou não dão a sensação de serem uma biblioteca para a linguagem X?

Uma única chance de causar uma boa primeira impressão

Para muitos desenvolvedores, a primeira experiência com uma API da Vonage ocorre por meio de nossos SDKs para servidor ou Client SDK. Uma das primeiras tarefas em seus projetos será instalar nosso software SDK e configurá-lo pela primeira vez. A partir desse momento, nossa função é facilitar a criação de software para nossa plataforma.

Cada linguagem é diferente, e nós entendemos isso. Um desenvolvedor Java tem um conjunto diferente de expectativas ao escrever uma aplicação em comparação com um desenvolvedor Ruby. Nossos SDKs devem expor nossas APIs de uma forma que faça sentido para as linguagens que oferecemos suporte. Devemos ser tão “Pythônicos”, idiomáticos ou limpos quanto um desenvolvedor espera que uma biblioteca adequada seja.

As linguagens também evoluem. Sou desenvolvedor de PHP, e grande parte do ódio que nossa linguagem recebe se baseia em códigos com expectativas e restrições de épocas passadas e versões que já não têm suporte. Nossos SDKs devem evoluir junto com as linguagens — e de fato evoluem. Os desenvolvedores têm expectativas sobre como deve ser um código “moderno”, e devemos nos esforçar para atender a essas expectativas.

Um dos principais objetivos da nossa equipe do Server SDK é oferecer bibliotecas que estejam em dia não apenas com nossos produtos, mas também com as expectativas dos desenvolvedores. Sempre defendemos diversos princípios, como o desenvolvimento orientado a testes, documentação de alta qualidade e atenção aos detalhes. Pretendemos continuar acompanhando de perto as comunidades de desenvolvedores e de linguagens de programação para oferecer a melhor experiência possível aos desenvolvedores.

O que estávamos procurando?

A maior parte das auditorias girou em torno do uso dos nossos produtos e se os SDKs expunham ou não esse uso de maneira clara e óbvia. A clareza do código foi um dos principais focos na nova especificação do SDK e passou a ser um ponto de destaque nas auditorias.

A Audit proporcionou a cada um de nossos defensores da linguagem o tempo e a autonomia necessários para identificar onde poderíamos melhorar. Nenhum dos nossos SDKs apresentava atrasos no que diz respeito ao suporte que esperávamos oferecer, mas cada um deles precisava de ajustes e mudanças na nomenclatura das interfaces públicas, o que tornaria as intenções mais claras.

Como uma prévia de algumas mudanças que estão por vir no SDK do PHP, grande parte da camada da Voice API foi reescrita. Se você quiser fazer uma chamada de saída, crie um OutboundCall objeto. Se você quiser gerar um NCCO, pode criar um NCCO objeto e adicionar ações ao NCCO. Seguindo o princípio do “código autodocumentado”, um desenvolvedor deve ser capaz de ler esse código e entender o que está acontecendo, mesmo que não esteja familiarizado com o PHP em si.

$outboundCall = new OutboundCall(new Phone(TO_NUMBER), new Phone(NEXMO_NUMBER));
$ncco = new NCCO();
$ncco->addAction(new Talk('This is a text to speech call from Vonage'));
$outboundCall->setNCCO($ncco);

$response = $client->voice()->createOutboundCall($outboundCall);

A ideia não é dizer que a maneira antiga fosse difícil; simplesmente não ficava tão claro o que estava acontecendo. Renomear métodos e classes pode ser um grande desafio, mas nossa esperança é que muitas dessas mudanças não apenas tornem mais fácil entender o que nossos produtos fazem, mas também qual é a melhor maneira de usá-los.

Essa auditoria também nos permitiu identificar casos em que um ou dois SDKs estavam realizando uma funcionalidade que deveria ser padronizada em todos os SDKs. Uma dessas funcionalidades era permitir que os usuários especificassem URLs de base para as APIs. Embora isso tivesse sido uma solicitação dos clientes, descobrimos que alguns SDKs já haviam implementado essa funcionalidade. A Audit nos deu a oportunidade de reunir essas ideias e garantir que fossem incorporadas em todos os nossos SDKs.

Melhorando os produtos

Muitos dos nossos defensores dos desenvolvedores de linguagens, que mantêm nossos SDKs, também são o que chamamos de Especialistas em Produto. Nossos Especialistas em Produto colaboram com os gerentes de produto e as diversas equipes de engenharia no desenvolvimento de nossos produtos de API. Como os Especialistas em Produto ajudam a projetar o próprio produto, a forma como os desenvolvedores interagem com as APIs por meio dos SDKs é analisada desde o início.

Se percebermos que algo pode ser difícil para um desenvolvedor trabalhar, podemos tomar decisões mais acertadas, seja no nível da API ou do SDK, para facilitar a vida do desenvolvedor. Nosso trabalho não se resume a viajar para eventos e distribuir camisetas — recolhemos todo esse feedback dos desenvolvedores e informamos aos gerentes de produto e engenheiros onde podemos oferecer uma experiência melhor, além de ajudar a encontrar soluções.

O recente lançamento do .NET v5.0.0 trouxe muitas melhorias ao SDK. Houve algumas adições úteis ao código, como o aprimoramento do tratamento de erros e um sistema de registro de logs mais flexível, mas os testes unitários e os trechos de código passaram por uma refatoração. Essas mudanças não apenas aumentam nossa confiança — e, por extensão, a sua — no código e nas alterações, como também tornaram os exemplos muito mais claros e concisos sobre como implementar nossos SDKs.

Estamos aqui para atendê-lo

No fim das contas, nosso trabalho é defender os interesses dos desenvolvedores que utilizam nosso software. Não estamos necessariamente defendendo que você use nosso produto; somos os defensores de você, o desenvolvedor, atuando como sua voz dentro da Vonage. Parte do que fazemos é coletar o feedback que recebemos dos desenvolvedores com quem nos encontramos e usar isso para aprimorar nossos produtos, mas também nos empenhamos em garantir que sua experiência seja a melhor e mais produtiva possível. Poderíamos gerar nossos SDKs automaticamente e dar o trabalho por encerrado, mas isso não ajuda você, a pessoa que está tentando resolver um problema.

Até o final de 2020, teremos muitas atualizações empolgantes nos SDKs, voltadas especificamente para tornar o desenvolvimento mais claro. O .NET, o Python e o PHP terão algumas reformulações maravilhosas a caminho, que ajudarão a otimizar diversas experiências. O Ruby continua com a verificação estática de tipos introduzida na v6.3.0 , juntamente com várias melhorias gerais (a v7.0.0 introduziu um melhor tratamento de erros e nomes de classes mais claros; portanto, confira essa versão).

Fique à vontade para entrar em contato conosco com qualquer comentário sobre nossos produtos ou sobre o software, as demonstrações ou as ferramentas que criamos. Temos um canal comunitário no Slack onde nossos especialistas em linguagem e produtos ajudam a esclarecer dúvidas no dia a dia. Acompanhamos o o Stack Overflow e ajudamos a fornecer respostas e orientações para os diversos problemas que os desenvolvedores enfrentam. Respondemos aos e-mails que chegam para community@vonage.com sobre diversos assuntos relacionados aos nossos SDKs e APIs.

Queremos oferecer a você as ferramentas e o apoio necessários para resolver seu problema da maneira mais rápida e eficiente possível.

Compartilhar:

https://a.storyblok.com/f/270183/384x384/3bc39cbd62/christankersley.png
Chris TankersleyGerente de Ferramentas de Relações com Desenvolvedores

Chris é o gerente de ferramentas de relações com desenvolvedores e lidera a equipe responsável pelo desenvolvimento das suas ferramentas favoritas. Ele programa há mais de 15 anos, utilizando diversas linguagens e trabalhando em vários tipos de projetos, desde trabalhos para clientes até big data e sistemas de grande escala. Ele mora em Ohio, onde passa o tempo com a família e jogando videogames e RPGs de mesa.