[Palestra] Como usar IA para melhorar a qualidade do seu código

No dia 01/07/2023 eu ajudei a organizar um evento para a comunidade local e também palestrei sobre o tema que é o título desse post.


Atualização:

Apresentei esta mesma palestra, com algumas modificações para um público iniciante, num evento acadêmico, a Semana de Tecnologia da Faculdade Multivix em Cachoeiro de Itapemirim – ES. Saiba mais sobre o que rolou no evento nesse post do LinkedIn.


E não é só porque todo mundo está falando sobre ChatGPT e inteligência artificial, mas porque é um tema atual e são ferramentas que podem te ajudar muito como desenvolvedor(a).

Um pequeno resumo do que foi a palestra:

Uma história real

Comecei mostrando uma história que foi compartilhada por um colega do grupo de mentoria, mostrando um caso real:

https://twitter.com/advany/status/1664451798793584642

Dois desenvolvedores foram contratados para entregar um sistema. Um escreveu todo o código, sem usar ferramentas de IA.

O outro usou o Copilot, GPT-4 e ainda uma ferramenta no-code.

O que você acha que aconteceu?

Esse segundo entregou 95% das tarefas em uma semana. O primeiro só entregou 15% no mesmo tempo. Sem falar da diferença nos custos de desenvolvimento.

Escrever código limpo é difícil

São muitas características que um bom código deve ter, como legibilidade, manutenibilidade, desempenho, coesão, testabilidade, etc.

Só que é necessário ainda muito mais que isso para desenvolver um sistema complexo.

A IA veio para ficar

A IA vai afetar o seu trabalho. Isso é fato!

Daí chegamos a uma conclusão óbvia:

É preciso saber usar as ferramentas de IA!

Prompt engineering

Dei também algumas dicas de como interagir com ferramentas como o ChatGPT.

Já que são ferramentas de chat, você precisa saber dar os “comandos” – ou prompts – certos para obter resultados melhores.

Como melhorar o seu código – na prática

Também mostrei alguns exemplos práticos que você pode usar no seu dia a dia como dev:

  1. Encontrar problemas no código: pedir ao ChatGPT que analise o seu código e aponte problemas.
  2. Gerar casos de testes com a ajuda da IA: analisar a implementação de uma classe, por exemplo, para que o ChatGPT gere os casos de teste.
  3. Automatizar revisão de código: facilitar a revisão do código por parte dos colegas do time. Mostrei uma ferramenta simples – What The Diff – que funciona integrada com o GitHub para fazer comentários automaticamente nos pull requests.

Também mencionei várias outras formas de melhorar o código com IA:

  • Adequar seu código aos princípios SOLID, padrões de projeto ou padrões arquiteturais;
  • Resolver problemas de desempenho;
  • Encontrar bugs;
  • Escrever código mais legível, simples, robusto, etc.

Um caso real de como a IA tem sido usada na prática é a Thoughtworks.

Na última edição do radar de tecnologia, eles recomendam uma técnica chamada Desenvolvimento de testes primeiro auxiliado por IA.

Recomendo que você dê uma lida também nesse artigo que mostra um exemplo prático de aplicação da técnica, que se resume em:

  • A IA é apenas uma ferramenta, não faz a implementação. Ela fera gera os testes e o desenvolvedor implementa as funcionalidades;
  • Eles geram prompts bem detalhados para que o ChatGPT saiba como está a aplicação e que resultado eles querem obter. Aí entra até mesmo a stack atual da aplicação: bibliotecas, estilos de escrita do time e outras coisas;
  • Com esse prompt, o ChatGPT gera um plano de implementação. O dev vai escrever o código baseado nas tarefas que fazem parte desse plano;
  • O código que o ChatGPT gera é, na verdade, somente os casos de teste, fazendo juz ao nome da técnica.
Desenvolvimento de testes primeiro auxiliado por IA

Acredito que vale a pena experimentar e avaliar o impacto disso nos seus projetos atuais.

Conclusão

Por fim, eu diria que a IA está aí para ser uma ferramenta de produtividade. As ferramentas não podem substituir as pessoas. Mas, fique atento:

Pessoas que dominam as ferramentas certas são mais produtivas e poderão substituir outras pessoas.

No fim das contas, você, com sua experiência é que deverá tomar as decisões, e não a inteligência artificial.

Veja os slides da palestra:

Algumas fotos do que rolou no evento: