Desenvolvimento relacionado a Claude e Discourse. Quão bom é?

Eu não sou um desenvolvedor. Eu só tenho conhecimento básico de codificação. Consigo ler códigos simples.

Recentemente, criei um plugin, dependendo principalmente do Gemini gratuito. 95% do código foi gerado por IA.

Embora o plugin definitivamente funcione, e a interface e a experiência de administração estejam muito boas, tenho preocupações legítimas sobre a limpeza do código. Apesar dos meus esforços de prompting[1] (e de alimentar manualmente a IA com trechos de código oficial), tenho certeza de que o código não aproveita bem o ambiente Discourse. Helpers, componentes, classes e assim por diante. É por isso que ocasionalmente o alimentei com partes do código oficial.

Ouvi dizer que, hoje em dia, muitos desenvolvedores usam IA em seu fluxo de trabalho. Estou curioso para saber o quão melhor seria o código de um plugin Discourse gerado por IA se a IA estivesse ciente do ecossistema Discourse.

Fui aconselhado a experimentar o Claude, e mais especificamente, o modelo Opus. Também me disseram que ele consome muitos tokens e, portanto, é caro.

Eu não tenho ambições reais em relação aos meus projetos. É apenas um hobby. Estou curioso sobre como seria um plugin que eu imagino no mundo real, e as IAs são muito boas para isso.

Você já tentou usar IA ao desenvolver plugins ou componentes? Você tentou o Claude Opus integrado ao seu IDE? Quão útil foi?
Ele faz uso adequado da base de código para gerar novo código?
Qual é o custo? Por qual plano você optou?


  1. escrever “esforços de prompting” me faz sentir estranhamente envergonhado :lolsob: ↩︎

4 curtidas

Descobri que é significativamente melhor trabalhar com IA no Discourse se ela tiver exemplos para usar como base, e o Claude Code é especificamente bom nisso (o CLI do Google Gemini também!).

Para um hobbyista, o plano de $20/mês provavelmente pode te levar bem longe… não é muito difícil atingir os limites diários, mas nesse ponto você pode simplesmente esperar o limite ser redefinido ou comprar alguns créditos.

3 curtidas

Acho que me enganei sobre o preço. Os planos free/pro/max são para usar o Gemini através da interface web deles. (https://claude.com/pricing). O preço da API é baseado em tokens (https://claude.com/pricing#api); não há assinaturas mensais para usar a API deles, certo?

Se usar IA em, digamos, VSCode, precisa usar a API deles.

edite: bem, vou ler alguns tutoriais antes de escrever da próxima vez :upside_down_face:

1 curtida

Passei a última semana tentando escrever um plugin do Discourse usando o ask.discourse. Fiquei maravilhado com a forma como pude descrever a função do plugin que desejava criar e ele me deu muitas dicas e trechos de código, alguns dos quais realmente funcionaram.

Sou um programador amador. Ao lado da minha instância do Discourse, eu rodo outro servidor com um banco de dados MySQL, um backend em PHP e um frontend em Jquery/Javascript, mas não sou um programador profissional. Na maior parte do tempo, ao desenvolver aquele site, eu simplesmente digito no Google o que quero e ele (o Gemini, eu acho?) me retorna amostras de código. A maioria funciona direto e eu sou bom o suficiente em Javascript para descobrir o porquê se não funcionarem.

Usei muitas linguagens de programação ao longo dos anos e, em anos passados, gastei horas lendo, pesquisando e experimentando para descobrir coisas que agora digito no Google e finalizo em minutos o que antes levava horas ou dias.

Fiquei impressionado com o quão bem o ask.discourse funcionou e, eventualmente, consegui fazer um plugin funcionar e fazer aproximadamente o que eu queria. Com um pouco de estilização (css), ele poderia/pode se tornar um plugin utilizável. Estou intrigado com a possibilidade de um serviço assistido por IA poder otimizar a criação de código.

3 curtidas

Eu escrevi um plugin para minha página do Discourse com Antigravity que exibe as séries de anime mais populares. Eu também criei uma lista de observação. Às vezes, ele apresenta falhas e você precisa fazer muitas correções, mas estou razoavelmente satisfeito.

2 curtidas

Consegui fazê-lo funcionar no VSCode com um plano Pro (20$). Acho o consumo justo. 3 horas de prompts me levaram a isto:

Até agora, os resultados não foram ótimos. :thinking:

O que poderia ser interessante é descrever o que deve ser configurado, ou o que deve ser dito ao Claude ao criar um plugin ou componente de tema para o Discourse (a partir do skeleton).

Quais instruções devem ser escritas no CLAUDE.md para maximizar sua eficiência?

Certos diretórios do Discourse devem ser priorizados quando a IA estiver procurando informações na base de código (penso em controllers, models, serializers, services…)?

Como fazê-lo tomar conhecimento da hierarquia de arquivos padrão, nomenclatura e convenções?

1 curtida

Devemos lançar as habilidades, @j.jaffeux e eu achamos que elas podem ser muito úteis

6 curtidas

Eu presumo que você queira dizer isto


Para aqueles novos em habilidades, você pode achar o seguinte valioso.

A lista não é exaustiva e está crescendo mais rápida e mais longa a cada dia.

1 curtida

Eu olhei para \u003chttps://github.com/discourse/discourse/blob/main/AI-AGENTS.md\u003e.

Eu tenho perguntas!

\u003e * NUNCA armazene resultados de find() - causa referências de elemento obsoletas após a regeração
\u003e SEMPRE faça a verificação de estilo (lint) em quaisquer alterações que você fizer

As IAs entendem a ênfase em letras maiúsculas? Agiria de forma diferente se estivesse escrito “Nunca” e “Sempre” em vez disso?

Coisas como “modo arquiteto” ou outros prompts de “modo xxx” estão se tornando padrões suaves no desenvolvimento de IA? Eles têm algum efeito real no comportamento do modelo? São puras convenções?

\u003e * Não escreva testes óbvios

Eu consigo ver o que é um teste óbvio, mas as IAs entendem o que é um teste óbvio (ou qualquer coisa óbvia)?

Eu brinquei por alguns dias com o Claude no VSCode. É bem impressionante ver tudo funcionando sozinho. Lendo, criando, modificando arquivos, executando comandos bash, etc… :exploding_head:

Sobre o trabalho do Claude na criação de plugins, isto é o que observei:

  • Ao iterar sobre os mesmos trechos de código e resolver problemas, ele tende a usar nomes de variáveis excessivamente específicos. Por exemplo, ele nomearia uma variável como original_url em vez de um url muito bom e simples, como se quisesse apontar as alterações que foram feitas, quando não é necessário.

  • As iterações frequentemente levam a um código complicado e, às vezes, a consultas desnecessariamente complexas. Pedir à IA para revisar e apontar partes do código que podem ser refatoradas de tempos em tempos se mostra útil para isso :slight_smile:

  • Quando solicitado a encontrar soluções para um determinado problema, fiquei satisfeito com as respostas.
    As sugestões parecem precisas. Quando propõe várias opções, pode ponderar com precisão os prós e contras de cada uma delas.

  • Em SCSS, ele (raramente) usa cores codificadas onde não é aconselhável, em vez de usar as variáveis de cores do Discourse.

  • Não parece estar ciente de Designing for Different Devices (Viewport Size, Touch/Hover, etc.) e dependerá de media queries padrão em vez disso.

  • Após várias tarefas terem sido feitas, gosto de pedir à IA para revisar o código e ver se algumas partes podem ser otimizadas sem impactar a manutenibilidade. Não tive muitos problemas com os resultados. Às vezes, ele ajusta demais e quebra o código.

  • Ocasionalmente, parece criar condições desnecessárias em nome da segurança e robustez, mas para situações que não tenho certeza se existem em condições reais.
    Por exemplo, no meu plugin relacionado a pesquisas, ele verificaria se uma postagem tem algum tópico associado a ela. Mas postagens sem tópico não deveriam existir no Discourse, eu acho. Se você tiver uma, significa que algo deu muito errado na sua instância em algum momento, certo? Sinto que não fez sentido fazer essa verificação no meu plugin. :thinking:

  • Parece bom em estruturar testes!

Então, boa experiência até agora, mesmo sem usar a configuração avançada de IA.
Gastei minha cota semanal em quatro dias, o que é ótimo porque me força a fazer uma pausa de três dias :raising_hands:

Curioso para ver como isso mudará quando as habilidades do Discourse forem adicionadas.

4 curtidas