Sviluppo relativo a Claude e Discourse. Quanto è buono?

Non sono uno sviluppatore. Ho solo conoscenze di codifica di base. So leggere codice semplice.

Recentemente ho creato un plugin, basandomi principalmente su Gemini gratuito. Il 95% del codice è stato generato dall’IA.

Sebbene il plugin funzioni sicuramente, e l’interfaccia e l’esperienza di amministrazione siano abbastanza buone, ho serie preoccupazioni riguardo alla pulizia del codice. Nonostante i miei sforzi di prompting[1] (e l’alimentazione manuale dell’IA con estratti di codice ufficiale), sono certo che il codice non sfrutti al meglio l’ambiente Discourse. Helper, componenti, classi e così via. Ecco perché occasionalmente l’ho alimentato con pezzi di codice ufficiale.

Ho sentito dire che al giorno d’oggi molti sviluppatori utilizzano l’IA nel loro flusso di lavoro. Sono curioso di sapere quanto migliore sarebbe il codice di un plugin Discourse generato dall’IA se l’IA fosse a conoscenza dell’ecosistema Discourse.

Mi è stato consigliato di provare Claude, e in particolare il modello Opus. Mi è stato anche detto che consuma molti token ed è quindi costoso.

Non ho vere ambizioni riguardo ai miei progetti. È solo un hobby. Sono curioso di vedere come apparirebbe un plugin che immagino nel mondo reale, e le IA sono abbastanza brave per questo.

Hai provato a usare l’IA quando sviluppi plugin o componenti? Hai provato Claude Opus integrato nel tuo IDE? Quanto è stato utile?
Fa un uso appropriato della codebase per generare nuovo codice?
Quanto costa? Per quale piano hai optato?


  1. scrivere “sforzi di prompting” mi fa sentire stranamente imbarazzato :lolsob: ↩︎

4 Mi Piace

Ho scoperto che è significativamente meglio lavorare con l’IA su Discourse se ha esempi da cui partire, e Claude Code è particolarmente bravo in questo (anche la CLI di Google Gemini!).

Per un hobbista, il piano da $20/mese potrebbe probabilmente portarti abbastanza lontano… non è troppo difficile raggiungere i limiti giornalieri, ma a quel punto puoi semplicemente aspettare che il limite si reimposti o acquistare dei crediti.

3 Mi Piace

Penso di essermi sbagliato sul prezzo. I piani free/pro/max sono per l’utilizzo di Gemini tramite la loro interfaccia web. (https://claude.com/pricing). Il prezzo dell’API è basato sui token (https://claude.com/pricing#api); non ci sono abbonamenti mensili per l’utilizzo della loro API, giusto?

Se si utilizza l’IA in, diciamo, VSCode, è necessario utilizzare la loro API.

edit: beh, leggerò alcuni tutorial prima di scrivere la prossima volta :upside_down_face:

1 Mi Piace

Questa settimana ho passato del tempo a cercare di scrivere un plugin per Discourse usando ask.discourse. Sono rimasto stupito da come ho potuto descrivere la funzione del plugin che desideravo creare e mi ha fornito un sacco di suggerimenti e frammenti di codice, alcuni dei quali funzionavano effettivamente.

Sono un programmatore amatoriale. Oltre alla mia istanza di Discourse, gestisco un altro server con un database MySQL, un backend PHP e un frontend Jquery/Javascript, ma non sono un programmatore professionista. La maggior parte delle volte, quando sviluppo quel sito, inserisco semplicemente le mie richieste in Google e questo (Gemini, immagino) mi fornisce esempi di codice. La maggior parte funziona subito e sono abbastanza bravo in Javascript da capire il motivo se non funzionano.

Ho usato molti linguaggi di programmazione nel corso degli anni e in passato ho passato ore a leggere, cercare e sperimentare per capire cose che ora inserisco in Google e finisco in pochi minuti ciò che in passato richiedeva ore o giorni.

Sono rimasto stupito da quanto bene abbia funzionato ask.discourse e alla fine sono riuscito a far funzionare un plugin che faceva approssimativamente quello che volevo. Con un po’ di stile (css) potrebbe/potrebbe diventare un plugin utilizzabile. Sono incuriosito dalla possibilità che un servizio assistito dall’IA possa snellire la creazione di codice.

3 Mi Piace

Ho scritto un plugin per la mia pagina Discourse con Antigravity che mostra le serie anime più popolari. Ho anche creato una watchlist. A volte ha dei problemi e devi fare molte correzioni, ma sono ragionevolmente soddisfatto.

2 Mi Piace

L’ho fatto funzionare su VSCode con un piano Pro (20$). Trovo il consumo equo. 3 ore di prompt mi hanno portato a questo:

Finora, i risultati non sono stati eccezionali. :thinking:

Sarebbe interessante descrivere cosa dovrebbe essere configurato, o cosa dovrebbe essere detto a Claude quando si crea un plugin o un componente tema per Discourse (dallo scheletro).

Quali istruzioni dovrebbero essere scritte in CLAUDE.md per massimizzarne l’efficienza?

Si dovrebbero dare priorità a determinate directory di Discourse quando l’IA cerca informazioni nella codebase (penso a controller, modelli, serializzatori, servizi…)?

Come renderlo consapevole della gerarchia standard dei file, della denominazione e delle convenzioni?

1 Mi Piace

Dovremmo rilasciare le skill, io e @j.jaffeux pensiamo che possano essere molto utili

6 Mi Piace

Immagino tu intenda questo


Per coloro che sono nuovi alle skills, potrebbero trovare utile quanto segue.

L’elenco non è esaustivo e cresce sempre più velocemente ogni giorno.

1 Mi Piace

Ho guardato \u003chttps://github.com/discourse/discourse/blob/main/AI-AGENTS.md\u003e.

Ho delle domande!

\u003e * NON memorizzare mai i risultati di find() - causa riferimenti a elementi obsoleti dopo i re-render
\u003e LINTA SEMPRE qualsiasi modifica apporti

Le IA capiscono l’enfasi tutta in maiuscolo? Si comporterebbe diversamente se fosse scritto “Never” e “Always” invece?

Cose come “architect mode” o altri prompt “xxx mode” stanno diventando standard deboli nello sviluppo di IA? Hanno un effetto reale sul comportamento del modello? Sono pure convenzioni?

\u003e * Non scrivere test ovvi

Capisco cosa sia un test ovvio, ma le IA capiscono cosa sia un test ovvio (o qualsiasi cosa ovvia)?

Ho giocato per un paio di giorni con Claude in VSCode. È piuttosto impressionante vedere tutto funzionare da solo. Leggere, creare, modificare file, eseguire comandi bash, ecc… :exploding_head:

Riguardo al lavoro di Claude sulla creazione di plugin, questo è ciò che ho osservato:

  • Quando itera sugli stessi pezzi di codice e risolve problemi, tende a usare nomi di variabili eccessivamente specifici. Ad esempio, chiamerebbe una variabile original_url invece di un url molto buono e semplice, come per sottolineare le modifiche apportate, quando non è necessario.

  • Le iterazioni spesso portano a codice contorto e talvolta a query inutilmente complicate. Chiedere all’IA di rivedere e indicare le parti di codice che possono essere refactorizzate di tanto in tanto si rivela utile per questo :slight_smile:

  • Quando viene chiesto di trovare soluzioni per un dato problema, sono rimasto soddisfatto delle risposte.
    I suggerimenti sembrano accurati. Quando propone diverse opzioni, può valutare accuratamente i pro e i contro di ciascuna.

  • In SCSS, (raramente) usa colori codificati dove non è consigliato, invece di usare le variabili di colore di Discourse.

  • Non sembra essere a conoscenza di Designing for Different Devices (Viewport Size, Touch/Hover, etc.) e si affiderà alle query dei media standard invece.

  • Dopo che sono state eseguite diverse attività, mi piace chiedere all’IA di rivedere il codice e vedere se alcune parti possono essere ottimizzate senza influire sulla manutenibilità. Non ho avuto molti problemi con i risultati. A volte, modifica troppo e rompe il codice.

  • Occasionalmente, sembra creare condizioni non necessarie per ragioni di sicurezza e robustezza, ma per situazioni di cui non sono sicuro esistano nelle condizioni reali.
    Ad esempio, nel mio plugin relativo alla ricerca, controllerebbe se un post ha argomenti associati. Ma i post senza un argomento non dovrebbero esistere in Discourse, credo. Se ne hai uno, significa che qualcosa è andato molto storto nella tua istanza in qualche momento, giusto? Non mi sembrava sensato fare questo controllo nel mio plugin. :thinking:

  • Sembra bravo a creare scaffolding per i test!

Quindi, buona esperienza finora, anche senza utilizzare la configurazione AI avanzata.
Ho speso la mia quota settimanale in quattro giorni, il che è ottimo perché mi costringe a fare una pausa di tre giorni :raising_hands:

Curioso di vedere come cambierà quando verranno aggiunte le competenze di Discourse.

4 Mi Piace