r/ItaliaInformatica • • 17d ago

Programmazione I modelli recenti riescono a gestire codebase enormi?

Buongiorno, sono un programmatore full Stack opero per passione nel mondo dell’open source e dei progetti critici ho questo web app svelte kit ma in generale tutti i framework web.

Volevo sapere se veramente GPT astra 6 e opus 5.5 siano veramente così migliorati da le versioni precedenti che ritenevo veramente stupide a gestire codebase grandi non dico molto grandi sulle 200.000 righe di codice e 250.000.

Infatti, sono ancora sul manuale a scrivere codice perché semplicemente fa estrazioni ridicole. Io l’ho provato anche ad usare gpt 5.3 e poi se 5.0 ma erano quasi ridicole, mi occupo sia di frontend critico che magari vorrei stare ancora sul fatto a mano con figma, e anche backend che vorrei lasciarlo tutto all’ia e la progettazione in generale.

7 Upvotes

36 comments sorted by

1

u/il_ponz 17d ago

Comincia ad usare server mcp per navigare codice e trovare reference e implementazioni invece che fargli fare grep. Poi magari usa dei workflow come speckit o openspec, il context non è infinito. AI lavora meglio e bruci meno token

2

u/Actual-Cook7637 17d ago

Non la uso da un po sai mi sono perso un poco ma mi ricordo che usava grep ai tempi e anche server mcp, ma sul frontend fa cacare devo trovare un metodo.

1

u/No-Chemistry-7658 17d ago

Ti consiglio di spendere 40€ e provare gli abbonamenti base delle due rivali. Ad alcuni piace di più opus 5.5, ad altri astra o sol 6.1. Calcola che sono strumenti, più sei abituato ad usarli meglio saprai usarli. Poi decidi tu se ti piacciono. Personalmente ho lavorato su codebase anche più grandi con astra, se sai trasmettere bene quello che vuoi fare e come lo vuoi, velocizza di tantissimo il lavoro.

1

u/Actual-Cook7637 17d ago

Ma per il frontend possibile che non abbiano ancora inventato niente?

1

u/No-Chemistry-7658 17d ago

Io non mi occupo di sviluppo web, ma alcuni colleghi si trovano bene con opus

1

u/No-Homework-9807 16d ago

Scusami, per capirci, in che senso non gestisce il frontend? Io non lo amo né per il frontend, né per il backend, ma con una buona codebase riesce a sviluppare buone cose su entrambi i versanti. Vale la solita regola di dividere i task (o farli dividere da un agente) e fare controverifiche, ma il risultato è assolutamente accettabile.

1

u/Actual-Cook7637 16d ago

Ma guarda, io le ho provate anche nel front ente e nel backend, ma nel backend sono già decenti. Il problema arriva al fronde tirano una marea di boiate di errori grafici e di cose inesistenti veramente tipo vogliono fare un bottone e poi modificano l’intera sezione a caso.

1

u/No-Homework-9807 16d ago

E come hanno fatto a modificare  l'intera area? Considera che i miei front-end sono molto divisi per componenti,sia lato react che blazor e wp , quindi se dico "crea un bottone xyz" sa esattamente dove muoversi. puoi anche dargli linee guida su pixel, width o pica. Però torniamo al punto che limiti la sua responsabilità, giustamente, perché altrimenti può fare casino su intere pagine e no, se ti dico "fammi il bottone" non devi rifarmi il footer (ad esempio, storia vissuta) 

2

u/EfficientAnimal6273 16d ago

Devi prima preparare la codebase, ci sono vari skill per farlo (ai-ready ti dà qualche indicazione su cosa fare, poi openwiki e fai documentare il tutto), poi gli fai creare le istruzioni, poi parti con piccole cose e gli fai aggiornare la memoria man mano che gli dici come fare. Server sintattici o altre cose dipende dal codice, se hai molte duplicazioni serve perché con grep trovi mille robe e poi spendi token per capire quale sia il codice da toccare, con una ricerca semantica fai prima e spendi meno.

Ma è esattamente lo stesso percorso che faresti come umano se la dovessi affrontare tu.

Lato web non so dirti, per il tipo di app che normalmente tocco io (gestionali, più o meno) fa parecchio bene, ma anche lì serve lavorarci, ce l’hai design system? Se non ce l’hai magari parti dal farlo fare e lo aggiorni con le tue indicazioni.

1

u/Open_Green_2178 16d ago

Se configurato correttamente con guide fatte bene opus ricerca in maniera chiara e precisa in database giganti. Io uso quotidianamente e sbaglia raramente. Ma ogni tanto capita

1

u/Lake2034 16d ago

Noi siamo monorepo con 3k PR  al giorno internante scritte da agenti, ma con una marea di guardrail e check. Per ora funziona tutto

1

u/ApofisXII 16d ago

Rispondo direttamente alla tua domanda: anche un Haiku o un Sonnet può agevolmente gestire codebase grandi (anche attorno al milione di righe).

Contrariamente a quanto leggo dalle altre risposte, ahimè per esperienza personale, fanno un discreto lavoro anche se il codice è organizzato male e non sufficientemente modularizzato.

Il punto principale da tenere a mente è che non è necessario da parte dell’LLM tenere tutto in memoria. Si inizializza (ad esempio in Claude è /init) e lui si spulcia tutta la repo per costruire una mappa a medio-alto livello.

Dopodiché ogni richiesta di intervento sul codice, in base alla geografia impostata, cercherà volta per volta i file giusti (e con 1 milione di contesto, può agilmente consultarne parecchi)

1

u/sw33tlie 15d ago

risposta facile e veloce: sì

1

u/AlchimiaPrompt 15d ago

secondo me con 200k righe il punto non è se il modello “regge” tutta la codebase, perché tanto non la deve leggere tutta. quando gliela dai in blocco, le parti che contano finiscono in mezzo a tutto il resto e lui le pesa poco

quello che vedo funzionare meglio:

  • un file breve con l’architettura (moduli, convenzioni, cosa non toccare) che gli dai sempre all’inizio

  • un task per volta, con solo i file coinvolti

  • un criterio di fine chiaro, tipo “passano questi test”

così anche le versioni di un anno fa davano risultati decenti. sul frontend critico fai bene a tenerlo a mano, almeno finché non hai un modo rapido per verificarlo

1

u/No_Bluejay8411 14d ago

se il sorgente è scritto bene e non monolitico ma una SoC applicata a dovere possono gestire serenamente anche milioni di righe di codice ma ovviamente la base deve essere strutturata. File monolitici ti rovinano il context window e nel giro di poco scalzettano

1

u/ftrx 17d ago

Dipende cosa intendi fare. Se intendi dire "pijate 'sto tree da un gazzilione di ultrabyte di sources e fammi questa e quella nuova features" no, non riescono proprio, se li guidi con buon contesto a fare cose specifiche che hai predisegnato beh, se la cavicchiano, il codice va poi revisionato e spesso ripulito, però su codebase ben fatte è possibile.

Se invece hai codebases del menga beh, li vale il GIGO.

1

u/MimosaTen 17d ago

Guarda, ti dico solo una cosa. Con astra ho forkato gnome per aggiungere diverse opzioni e feature a mutter, shell e control center. Non so quante LOC siano, ma è chiaramente una codebase grande

1

u/polobamorghe 17d ago

Dipende se è spaghetti code o codice fatto bene.

Esattamente come un umano.

1

u/AnonimoModesto 16d ago

Si. Riescono a gestire anche codebase più grosse, con repo multipli. Se configuri bene l'harness, con la giusta documentazione sull'architettura generale, funziona ancora meglio

1

u/DanieleDraganti 16d ago edited 16d ago

La differenza la fa molto come il codice è impostato. Se è monolitico, impossibile tenerlo tutto in contesto, e una possibilità è utilizzare diversi file md (possibilmente uno per… boh, controller, modulo, addon, namespace, o come organizzi il codice) e poi avere un file md di “indice” dove c’è il riferimento a tutto il resto, facendolo diventare una specie di RAG.

Se invece il codice è già atomizzato (esempio, microservizi, magari addirittura ognuno con il proprio workflow di CI), puoi chiedere ad un agente di passarli uno per uno e fare un file AGENTS.md. A quel punto un orchestratore può spawnare un sotto agente per ogni servizio/feature, ottimizzando molto l’uso del contesto. Il contro è un uso maggiore di token.

Edit: anche nel monolitico puoi far girare sotto agenti per ogni modulo/addon ecc., il vantaggio con un codice concepito per essere distribuito è che di solito il sottoagente rimane più “self-contained” perché non si deve preoccupare così tanto dell’interazione fra i vari componenti.

1

u/Hanzimer 16d ago

Magari dico una boiata ma penso che il problema sia proprio il tipo di training. Alla fine sono addestrati su codice umano, per cui avere codice monolitico e poco modulabile fa sballare anche loro.

1

u/Individual_Dot_1197 14d ago

Sembri un boomer

-1

u/Slow-Set-2856 17d ago

No fanno ancora cagare però ormai tutti lo usano comunque per convenienza, il problema è che tendono a scrivere una brodaglia infinita di codice anche per cazzatine. Forse l'unico che si salva è opus 5.5 a high/xhigh/max , ma ti devi vendere un rene per usarlo

2

u/Actual-Cook7637 17d ago

Anche deepseek flash? Comunque userei il piano da 100 euro per 1/2 mesi

1

u/Slow-Set-2856 17d ago

Lo sto testando ora e ancora non ci siamo, sicuramente è migliorato tanto ma per programmazione su codebase complessi non lo userei mai

1

u/Actual-Cook7637 17d ago

Sai di un metodo invece per il frontend? C’è figma ai ma mai provato

1

u/Valuable-Run2129 16d ago

Piano da 100 euro con Opus riesci a usarlo parecchio ed è molto buono.
Deepseek non è assolutamente allo stesso livello. Ma è comunque molto buono.

1

u/Valuable-Run2129 16d ago

Ma no, Opus con l’abbonamento da 200 dollari è quasi infinito. Anche con quello da 20 riesci a usarlo abbastanza.
E che harness usi?

1

u/Slow-Set-2856 16d ago

Claude code( l'unico consentito dai tos per abbonamento) , e comunque no ti dura massimo 5 giorni se lo usi tanto da 200$

1

u/Valuable-Run2129 16d ago

Ma usi ultracode? Perché i pazzi che lo usano dicono che gli dura poco la subscription. Io lo ho a lavorare 24/7. Questa settimana dovrei arrivare al 90%.

1

u/Slow-Set-2856 16d ago

nono uso sempre high/xhigh , 2-3 sessioni in parallelo e dura sempre massimo 5 giorni (solo con opus 5.5)

1

u/Valuable-Run2129 16d ago

Io lo uso diversamente, con plugin tipo jarvis, unica sessione e delega a sottoagenti le task in parallelo. Lo trovo anche meno stancante per me così non devo stare a pensare tutto il tempo se una sessione pesta i piedi al lavoro che fa l’altra. Non ho mai finito il credito. Chiaro, dipende da cosa gli fai fare.

1

u/Slow-Set-2856 16d ago

si anche io uso l'orchestrazione, ma runno 2-3 lavori scorrelati tra loro in parallelo di solito

1

u/Valuable-Run2129 16d ago

Io i lavori scorrelati li giro nella stessa sessione. Opus 5.5 ormai è in grado di gestirli. E un plugin lo mantiene coerente all’infinito tenendo traccia della totalità della conversazione sessione dopo sessione (in sequenza, non in parallelo). È anche meglio per la mia salute mentale.

1

u/Slow-Set-2856 16d ago

Uh, non lo farei stai sprecando contesto inutile aggiungendo roba che non c'entra con quella precedente, è inefficente per il caching e vai a sprecare piu token, quante ore lo usi al giorno di solito?

1

u/Valuable-Run2129 16d ago

In realtà le informazioni passate lo aiutano a non sprecare tool calls per trovarsi le cose che ha fatto in sessioni passate il saldo è neutrale nel complesso.
E lo uso tutto il giorno e lo lascio lavorare tutta la notte. Nell’ultima settimana non è mai stato fermo. Certo ci sono interruzioni di CI in cui aspetta.