https://a.storyblok.com/f/270183/81265/c3a24bdba7/event-report.png

A Vonage na PHPUK 2022

Publicado em March 1, 2022

Tempo de leitura: 8 minutos

Provavelmente não será uma grande surpresa que a equipe estivesse muito animada com o PHPUK 2022, dadas as circunstâncias dos últimos dois anos e meio. Todos nós passamos por vários contratempos (ou falsas esperanças, talvez — por exemplo, estávamos prontos para participar do LaraconEU, que foi compreensivelmente cancelada porque Amsterdã era o epicentro da nova onda de COVID naquele momento), com os eventos de tecnologia voltando a acontecer ao redor do mundo, e, como você pode imaginar — do ponto de vista das Relações com Desenvolvedores —, isso tem sido extremamente desafiador. Afinal, meetups e conferências são essenciais para nos conectarmos com as pessoas. Tínhamos uma equipe a caminho do evento, equipada com um estande completo para a conferência; as coisas parece parece que as coisas estão começando a voltar “ao normal”.

A variante Ómicron surgiu justamente quando estávamos prontos para voltar às atividades. Na PHPUK, conversei com Gary Hockin sobre a apresentação de sua palestra principal no PHPScotland no final do ano passado, que foi realmente o único grande evento de PHP além do LonghornPHP que conseguiu realmente acontecer. O número de participantes estava menor, e as precauções essenciais tornaram alguns aspectos da conferência mais difíceis. Assim, com o PHPUK ocorrendo mais ou menos no final da onda da variante Omicron da COVID, não sabíamos o que esperar.

Vonage's booth at PHPUK 2022Our booth at PHPUK 2022

Em termos de precauções, optamos por usar máscaras coletivamente em nosso estande — se você usa máscara, nós também usamos. Embora fizesse sentido sermos extremamente cautelosos, parecia que a maioria dos participantes da conferência havia optado por não usar máscara.

Sobre os Elephpants

Elephpants, prizes and swag at our conference booth

Sempre me causou uma vaga sensação de orgulho o fato de o PHP ser a única linguagem com um [grande conjunto de brinquedos colecionáveis ( https://elephpant.me/ ) disponíveis (desculpe, Golang, você é novato nisso!). Mesmo durante a gravação de um breve momento cômico, o aparecimento de elefantes amarelos fez com que fazido com que o maior colecionador do mundo a me enviar uma mensagem direta na hora perguntando se esses eram novos(!)

Na verdade, não eram. Tínhamos algumas sobras com a marca da nossa antiga empresa para distribuir, mas isso levantou a seguinte questão: devemos encomendar um novo lote de elefantes da edição limitada da Vonage? A resposta da equipe pareceu ser um sonoro “sim!”

Também consegui assistir a algumas palestras, todas elas, é claro, excelentes.

Derek Rethans sobre o PHP 8.1

OK, vou admitir: tenho estado muito por fora em relação às novas funcionalidades do PHP 8.1. A única razão pela qual eu realmente o tenho instalado no meu computador é que escrevi um artigo experimental sobre o uso de fibras nativas do PHP 8.1, mas falarei mais sobre isso depois.

Há três coisas que me chamaram a atenção aqui, sobre as quais o Derek falou.

Enums

A primeira é a introdução de Enum . Dentro do SDK PHP da Vonage e, na verdade, ao longo de toda a minha carreira de desenvolvedor, já criei muitas, muitas classes de cliente/serviço que possuem um grande número de constantes estáticas. Essas constantes geralmente descrevem o estado da classe; assim, por exemplo, um objeto SMS pode estar “enviado”, “entregue”, “pendente” etc. Outro exemplo clássico seria uma postagem de blog com um fluxo editorial — ou seja, “rascunho”, “em revisão”, “na mesa do editor”, “publicado” etc.

Enums são uma solução bastante interessante para tornar suas classes mais seguras em termos de tipos. Você pode ler mais sobre a implementação delas aqui, e, como pode ser visto no meu artigo sobre o Laravel 9, os principais frameworks já estão introduzindo-as para casos de uso relevantes.

array_is_list()

Uma reclamação comum no mundo do PHP é a forma como os arrays são estruturados e, consequentemente, utilizados pelos desenvolvedores. Quando comecei a programar em PHP, não fazia a menor ideia do que eram “arrays hash” e “arrays associativos” quando fui apresentado a eles, achando que tudo fazia sentido. No entanto, muitos anos de experiência, as marcas deixadas por bases de código mais frágeis e os insights adquiridos com outras linguagens (neste caso, Python) me fizeram enxergar a implementação de arrays no PHP como uma estrutura de dados pelo que ela realmente é: um “hack” com potencial para causar muitos problemas.

A introdução de array_is_list() é uma iniciativa bem-vinda para, talvez, uma abordagem mais intuitiva em relação às matrizes. Agora, é possível verificar se a matriz é, de fato, o que seria definido em outras linguagens como um list, ou seja, um array hash com chaves inteiras consecutivas. Você pode encontrar exemplos de como isso é usado na prática na documentação do PHP.

Nova palavra-chave em Inicializadores

Isso provavelmente terá maior repercussão entre os usuários assíduos de frameworks que criam serviços regularmente utilizando injeção de dependências. Juntamente com a introdução da promoção de propriedades no construtor, agora é possível usar a new palavra-chave dentro dos parênteses dos argumentos do construtor para criar classes de construtor com código bem explícito. Agora é possível remover a lógica de null, de modo que o código fique mais ou menos assim:

class Article
{
	public function __construct(
		protected WorkflowState $workflowState = new WorkflowState('draft'),
	)
}

Assim, você pode criar um Article objeto com um WorkflowState de sua escolha; caso contrário, ele será criado por padrão no estado “rascunho” e promovido como $this->workflowState.

Alexandra White sobre documentação

A equipe de Relações com Desenvolvedores da Vonage conta com uma equipe dedicada à redação de documentação. Por quê? Porque escrever uma boa documentação é difícil; é absolutamente essencial que seus desenvolvedores possam obter as informações corretas que procuram o mais rápido possível. Alexandra White nos levou a uma jornada reveladora sobre armadilhas, notas de lançamento que causam raiva e como levar em conta seu público (dica: certifique-se de escrever seus documentos pensando no seu “eu” do passado, no seu “eu” atual, nos colegas e na comunidade, e adote essa mentalidade sempre).

Também foi abordado a “maldição do conhecimento”, algo com que me deparo regularmente. Na Vonage, temos que levar esse problema em conta constantemente: temos muitas de APIs para documentar; por isso, seja ao escrever documentação ou artigos para o blog, temos o cuidado de nunca presumir que o leitor já conheça o assunto. O desenvolvimento de software, digamos, no mundo do JavaScript, oferece ao desenvolvedor um mar infinito de opções; por isso, é importante saber interpretar o contexto.

Lorna Jane Mitchell sobre código aberto

Nos últimos 5 anos, mais ou menos, temos visto um número muito elevado de startups bem financiadas que estão adotando o modelo de negócios de lançar seu software principal como código aberto, ao mesmo tempo em que mantêm código proprietário como parte de um produto corporativo ou de PaaS/SaaS. No entanto, o aspecto “código aberto” do que fazemos, às vezes, como Lorna apontou, perde seu significado. “Código aberto” não significa “grátis e no GitHub”, como vemos às vezes com projetos que são publicados e logo esquecidos. Código aberto significa manutenção, colaboração e contribuições da comunidade; é um software cuja licença foi escolhida propositalmente para ser a mais relevante para ele, em vez de “jogar uma licença MIT lá e esquecer o assunto”.

A parte da palestra da Lorna sobre licenças certamente me fez refletir: quais licenças usamos para todos os nossos SDKs de código aberto na Vonage? Serão que são as licenças corretas? (após conversas sobre o assunto, sim, são!). Mas o que compõe o seu software também deve ser documentado — isso eu não sabia — no SBOM, ou Lista de Componentes de Software , como parte do seu Inventário de Código. Todos esses aspectos do software de código aberto são coisas que devemos levar mais em consideração, especialmente talvez no mundo do PHP, já que o PHP é realmente uma das últimas linguagens verdadeiramente de código aberto.

Milko Kosturkov sobre fibras

O PHP assíncrono está disponível para desenvolvedores desde que o PHP 5.6 introduziu os geradores. Os geradores permitiram a introdução de corrotinas, o que resultou na criação de várias estruturas (frameworks) assíncronas para PHP, como Swoole, amphpe ReactPHP.

A diferença agora é que as fibras são nativas, e Milko apresentou alguns slides com código de implementação concreto sobre como você pode, de fato, programar para o loop de eventos. Admito que é um assunto bastante difícil de acompanhar, mas o importante é mostrar e aprender a programar de forma assíncrona em PHP, pois a taxa de adoção de frameworks como o Framework X e o ReactPHP só está aumentando.

Dave Liddament sobre análise estática

Escrevi recentemente um artigo sobre o PHPStan, que é uma das duas ferramentas de análise estática mais bem mantidas e utilizadas, ao lado do PsalmPHP. O trabalho que os autores dessas bibliotecas dedicaram à criação dessas ferramentas é simplesmente impressionante, e a, com sua narrativa “Jack e Jill” para ilustrar uma jornada de programação com o objetivo de tornar seu código mais robusto, realmente me fez refletir sobre como, às vezes, temos sorte no mundo do PHP. Essas ferramentas, como demonstrado, podem realmente transformar sua base de código PHP em algo que é, na prática, uma linguagem compilada (trazendo, assim, os benefícios inerentes às linguagens compiladas).

E, por último, mas não menos importante: James Seconde sobre o PHP-VCR

James Seconde speaking on PHP-VCR on the Porter Tun Stage

Os Numbers já estavam em baixa este ano por causa da COVID, mas também tive um pouco de azar com aquela tempestade Eunice estava chegando a Londres e, como era de se esperar, as pessoas já tinham começado a ir embora mais cedo. Como descobri mais tarde, provavelmente foi uma decisão inteligente, já que a tempestade interrompeu totalmente o tráfego nas linhas ferroviárias West Coast Mainline e Chiltern, deixando-me preso em Londres.

Apesar desses desafios, adorei subir ao palco para falar sobre a descoberta do PHP-VCR e apresentar exemplos de código usando a framework de testes PEST. A sessão de perguntas e respostas acabou sendo bem longa, e as interações resultaram em possíveis colaborações para integrar o PHP-VCR ao Laravel e ao PEST (algo que já comecei a investigar).

Foi uma sensação incrível estar de volta ao palco, finalmente, depois de quase três anos — mas isso é só o começo. Fiquem de olho nos grupos de encontros da sua região para ver se eu apareço por lá para dar essa palestra de novo para vocês!

Compartilhar:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondePromotor Sênior de Desenvolvimento em PHP

Sou ator formado, com uma dissertação sobre stand-up comedy, e comecei a me dedicar ao desenvolvimento em PHP por meio dos encontros da comunidade. Você pode me encontrar dando palestras e escrevendo sobre tecnologia, ou ouvindo e comprando discos curiosos da minha coleção de vinil.