23 pontos por spilist2 2024-03-09 | 2 comentários | Compartilhar no WhatsApp

(Quando acordei e reli, vi que o texto anterior tinha erros de formatação e também estava longo demais, então estou repostando uma versão resumida)

Percebi que iniciantes no ChatGPT costumam cometer 3 erros ao tentar resolver “problemas complexos” com o ChatGPT

  1. Esperam que o ChatGPT dê “a resposta certa” de uma vez
  2. Esperam que o ChatGPT dê a resposta certa “de uma vez”
  3. Como essa expectativa não é atendida facilmente, ficam decepcionados e passam a usar o ChatGPT só para problemas simples, ou apenas de forma passiva, ou param totalmente de usar

Como resultado, acabam perdendo várias oportunidades de ganho de produtividade com IA

Essa também era a minha situação até alguns meses atrás

  • A velocidade de carregamento inicial do app estava lenta, então analisei o tamanho do bundle e encontrei um arquivo JS enorme. Descobri que dava para apagar a maior parte desse arquivo de 18.500 linhas
  • No começo, fui apagando manualmente olhando o código, mas era entediante demais e eu cometia erros com frequência
  • Comecei a trabalhar com o ChatGPT. No processo, percebi que eu também, como um iniciante, estava trabalhando esperando que ele me desse “a resposta certa de uma vez”
  • Depois de perceber isso, usei uma “estratégia de colaboração entre três partes” e experimentei um avanço enorme rapidamente

Progresso do trabalho

Refatora isso para mim

  • Entreguei uma função, expliquei a forma desejada e pedi para refatorar → falha. Nem compilava
  • Em vez de entender a estrutura do código e alterá-la, ele estava apagando linha por linha

Escreve um código que faça a refatoração

  • Pedi para não fazer diretamente, mas gerar um código em JS que refatorasse → falha. Isso também estava apagando linha por linha
  • Pensando bem, o ChatGPT provavelmente não teve treinamento suficiente com esse tipo de refatoração em grande escala

Escreve um código de refatoração usando AST

  • Eu queria apagar blocos, não linha por linha. Ou seja, era preciso entender a sintaxe do código, então pensei que usar AST seria uma boa ideia
  • Dei ao ChatGPT o papel de um engenheiro com experiência em desenvolvimento de ESLint e pedi que escrevesse isso usando AST; ele gerou um excelente boilerplate baseado em babel. Um grande avanço
  • Como eu não tinha experiência com babel, fui aprendendo junto com o ChatGPT e adicionando a lógica aos poucos, mas no fim esbarrei em dificuldades. Era difícil lidar com lógica complexa

Eu tentei fazer assim com AST. Esta parte não está funcionando bem; como você abordaria isso?

  • Percebi que eu de novo estava tentando obter a resposta certa de uma vez e mudei a estratégia. Quando pensei que não precisava fazer o traverse apenas uma vez, as coisas começaram a fluir
  • Fui avançando rápido no formato de executar algo simples primeiro, ver o resultado e ir acumulando lógica
  • Nas partes que não funcionavam bem, eu perguntava ao ChatGPT como implementar aquele objetivo específico
  • No final, as partes difíceis de transformar em regra eu finalizei com os olhos e as mãos. Nessa altura, a quantidade de código já tinha diminuído muito, então isso era viável

Resultado

  • Um código de 18.500 linhas virou 1.335 linhas, e o tamanho do bundle do chunk principal caiu cerca de 7,8%
  • Com a redução do tamanho e da lógica do arquivo JS necessário para o carregamento inicial, a velocidade de carregamento inicial melhorou um pouco
  • Ganhei experiência e confiança por ter refatorado código legado longo e complexo com AST
  • Ganhei confiança de que a maioria dos problemas complexos pode ser resolvida de forma eficaz por meio da colaboração entre três partes: IA + código + humano

Modelo mental para resolver problemas complexos de forma eficaz junto com IA

  1. Entenda em que a IA é boa, em que o código é bom e em que os humanos são bons.
  2. Analise o problema que você quer resolver e separe as áreas em que IA/código/humano se saem melhor.
  3. Ajude a IA a criar bem o primeiro código, execute esse código em partes pequenas enquanto melhora junto com a IA e, no meio do processo e no final, faça você mesmo aquilo que for mais fácil para um humano.

2 comentários

 
agart319 2024-03-12

Gostei da leitura.

 
moderator 2024-03-09

O post duplicado foi removido.