Uploaded avatar of iHiD

Uma entrevista com Ryan Potts

@iHiD
Mais de 7 anos atrás

Uma entrevista com Ryan Potts, na qual ele e Jeremy Walker conversam sobre Delphi, o que ele aprendeu ao ser contribuidor do Exercism e suas experiências programando em setores que ainda são "offline".

Oi, Ryan. Obrigado por reservar um tempo para conversar comigo. Você é o mantenedor da trilha Delphi no Exercism. Como você começou com o Delphi?

Trabalho numa empresa que meu pai fundou e que desenvolve software desde os anos 80, começando com o Microsoft Pascal e depois passando a usar o Turbo Pascal da Borland. Comecei a trabalhar na empresa em 96, mais ou menos na época em que ela recebia pedidos para produzir software que rodasse no Windows, em vez do DOS. Por uma feliz coincidência, a Borland tinha acabado de lançar o Delphi 1. Foi perfeito para nós, já que a maioria das units desenvolvidas ao longo dos anos ainda podia ser usada. Não precisávamos mais começar tudo do zero em VB ou VC para dar suporte ao Windows.

E você ainda usa Delphi no dia a dia?

Sim, onde eu trabalho são produzidas máquinas para testes de P&D e testes de pequenos lotes na indústria automotiva: pneus, bancos de carro, infladores de airbag, além de testes de colisão. Todos os sistemas produzidos são usados por várias montadoras ao redor do mundo, assim como por seus fornecedores.

O software com que trabalho serve para controlar esses vários tipos de máquinas. Eu desenvolvo a interface, defino as sequências de teste para as partes automatizadas dos testes e integro os diversos pontos de entrada e saída, tanto analógicos quanto digitais. Ele precisa ser o mais amigável possível, para que uma pessoa com treinamento mínimo se sinta bem à vontade ao usá-lo.

O trabalho que faço não exige nenhuma programação web. Tudo o que faço é em Delphi no Windows. De vez em quando preciso criar um pequeno "comando personalizado" em C++, que depois carrego na placa processadora de aquisição de dados, um computador paralelo que fica num slot PCI do computador; ela tem sua própria CPU, memória e sistema operacional.

É fascinante conversar com alguém que não faz nenhuma programação web. Isso parece bem incomum hoje, mas fico me perguntando se é só a relação sinal/ruído com que eu convivo no dia a dia, e não um reflexo da indústria.

Sim, participar do Exercism me permitiu enxergar um pouco como vive a "outra metade" da indústria de computação. Aprendi muito sobre Desenvolvimento Guiado por Testes (TDD), sobre navegar no GitHub e sobre trabalhar num projeto open source. Grande parte do que aprendi melhorou a qualidade do trabalho que faço no meu emprego.

É muito bom ouvir isso. Uma das coisas de que mais gosto no Exercism é essa vibe de "como vive a outra metade", perceber todos os seus pontos cegos e aprender sobre coisas que você nem sabia que existiam. Imagino que ser mantenedor de uma trilha tenha ampliado ainda mais esse aprendizado?

Com certeza. Estou escrevendo mais testes do que costumava. Nem sempre é TDD em si; às vezes os testes vêm depois, em vez de antes. Mas isso influenciou como eu estruturo o código, removendo dependências desnecessárias para facilitar os testes.

Passo bastante tempo revisando issues e PRs no repositório problem-specifications, que é onde definimos os exercícios do Exercism de forma independente de linguagem. Aprendi muito com as discussões. Às vezes uma mudança sugerida parece simples à primeira vista, mas a conversa que se segue revela problemas. Desenvolvi mais paciência. Isso me ensinou a procurar outros ângulos possíveis para problemas técnicos no trabalho.

Também aprendi mais sobre mentoria, em especial a importância de entender o porquê por trás das coisas, e não apenas o como. Trabalho com um punhado de outros programadores. Embora eu seja mais novo que a maioria deles, estou na empresa há mais tempo que eles, e muitas vezes consigo apontar uma abordagem mais eficiente para sequenciar a operação de uma máquina ou explicar por que algo precisa ser feito de uma maneira específica.

Além do Exercism, você também é MVP de Delphi, o que é bem legal! Como isso aconteceu? Existe uma comunidade Delphi forte da qual você faz parte?

Durante as etapas iniciais de criação da trilha Delphi, entrei em contato com o Sr. Jim McKeeth, da Embarcadero, para ver se conseguiríamos uma licença open source para o Delphi. Isso nos permitiria usar o Delphi para desenvolver novos exercícios e deixar que as pessoas contribuíssem por meio de pull requests. No decorrer da nossa correspondência, o Jim me convidou para participar do Programa MVP da Embarcadero.

O Delphi Praxis é uma comunidade online que eu conheço bem. Há bastante movimento no Google+, mas ele está de saída, então temos que ir para outro lugar.

Você já criou algum aplicativo open source em Delphi que outras pessoas possam dar uma olhada?

Já! O instalador do CLI do Exercism para Windows é open source e escrito totalmente em Delphi. Ele determina automaticamente a versão correta (32/64 bits) do CLI do Exercism de que o aluno precisa, depois baixa o CLI, o extrai e o coloca no lugar certo. O instalador já foi baixado 15.000 vezes, e tenho bastante orgulho disso!

É uma conquista fantástica! Como alguém que não faz muita (ou nenhuma) programação para internet, quais desafios você enfrentou ao criar o instalador em Delphi?

O instalador foi escrito inicialmente em C#. Estava desatualizado, e decidi ver se conseguia melhorá-lo. Nunca tinha tentado nada parecido antes, mas sabia que o Delphi tinha as ferramentas para fazer o trabalho. Comecei estudando o código original em C# para entender que sequência de eventos acontecia nos bastidores e depois tentar realizar as mesmas tarefas em Delphi. Encontrei código de exemplo no site de documentação da Embarcadero que ajudava a explicar como encadear corretamente os componentes disponíveis para criar um cliente REST. Também descobri um utilitário bastante útil que vem com o Delphi, chamado REST Debugger. Ele me permitia inserir e, assim, testar as diversas chamadas HTTP necessárias para o instalador funcionar. Depois que elas funcionavam, o debugger criava cópias dos componentes necessários, para que eu pudesse colá-los no código.

Para alguém que quer se aprofundar no Exercism, talvez alguém que espera se tornar mantenedor, você pode nos contar como foi a sua trajetória?

Sou membro de um grupo local do MeetUp chamado Akron Code Club. Mais ou menos uma vez por mês nos encontramos e, geralmente, formamos duplas para resolver um code kata que foi sugerido ao grupo. No encontro de agosto de 2016, começamos a fazer exercícios oferecidos pelo Exercism. À medida que usava o Exercism e alguns dos outros sites de ensino, achei que seria bom se mais desses sites de programação online oferecessem Delphi ou Pascal como opção. Depois de explorar o site do Exercism e os repositórios do Exercism no GitHub, descobri que o Exercism está sempre interessado em adicionar novas trilhas de linguagem. Eu não tinha muita certeza de como seria melhor contatar a Katrina. Acho que usei o Gitter para falar com ela em agosto de 2016, propondo a inclusão do Delphi. Recebi uma resposta pedindo desculpas cerca de dois meses depois, e foi aí que percebi que ela não usa o Gitter. De qualquer forma, ela perguntou se eu ainda estava interessado em trabalhar na adição de uma trilha de Delphi Pascal e, se estivesse, ela daria o pontapé inicial.

Hoje existe um repositório que você pode usar para solicitar uma nova trilha de linguagem, e você sempre pode abrir issues no repositório exercism/exercism para entrar em contato com os mantenedores do projeto.

Ótimo. Obrigado por conversar comigo e por todo o seu trabalho no Exercism!

Foi um prazer! Foi divertido. Gosto de participar e de fazer o que posso pelo Exercism. Aprender fazendo!

30 de janeiro de 2019 · Achou útil?