# Lavorare con codebase di grandi dimensioni (/it/docs/verdent-for-vscode/common-workflows/large-codebases)

> Strategie per navigare e lavorare con codebase di grandi dimensioni



Lavorare con codebase di grandi dimensioni richiede strategie specifiche per gestire i limiti di contesto e mantenere la produttività. Questa guida propone flussi di lavoro pratici per navigare, comprendere e modificare progetti di grandi dimensioni in modo efficiente con Verdent for VS Code.

***

## Usare l'agente Explorer per esplorare la codebase [#usare-lagente-explorer-per-esplorare-la-codebase]

Supponiamo che tu sia nuovo su una codebase di grandi dimensioni e debba trovare dove è implementata una funzionalità specifica.

<Steps>
  <Step title="Poni domande esplorative ad ampio raggio">
    ```
    Where is user authentication handled in this codebase?
    ```

    Verdent delega automaticamente all'agente Explorer, uno specialista efficiente nell'uso dei token per le ricerche nella codebase.
  </Step>

  <Step title="Explorer cerca in modo efficiente">
    L'agente Explorer:

    * Cerca nei nomi e nei percorsi dei file
    * Esegue il grep dei contenuti del codice per parole chiave
    * Analizza i pattern architetturali
    * Restituisce i risultati con percorsi dei file e snippet di codice
  </Step>

  <Step title="Affina la ricerca">
    ```
    Show me all files that import the authentication module
    ```

    Explorer può eseguire ricerche successive per restringere i risultati.
  </Step>

  <Step title="Parallelizza le ricerche complesse">
    Per un'esplorazione esaustiva, Verdent può eseguire più agenti Explorer in parallelo:

    * Explorer 1: trova la logica di autenticazione
    * Explorer 2: trova la logica di autorizzazione
    * Explorer 3: trova la gestione delle sessioni

    I risultati arrivano più velocemente grazie alla ricerca parallela.
  </Step>
</Steps>

<Tip>
  **Suggerimenti:**

  * L'agente Explorer lavora in modo efficiente su codebase di grandi dimensioni senza riempire il contesto principale
  * Più agenti Explorer possono cercare aspetti diversi contemporaneamente
  * Usa Explorer per la ricerca di pattern e l'esplorazione architetturale
  * I risultati includono percorsi dei file e snippet di codice pertinenti come contesto
</Tip>

***

## Suddividere le attività in blocchi gestibili [#suddividere-le-attività-in-blocchi-gestibili]

Supponiamo che tu stia lavorando su una codebase di grandi dimensioni e debba aggiungere una funzionalità che tocca molti file.

<Steps>
  <Step title="Individua i confini naturali dell'attività">
    Invece di richiedere tutto in una volta:

    ```
    Phase 1: Add the data models for the notification system
    ```

    Concentrati prima su un singolo componente autonomo.
  </Step>

  <Step title="Completa interamente la fase">
    Porta a termine completamente la Fase 1, test inclusi, prima di passare alla Fase 2. Questo crea un checkpoint pulito.
  </Step>

  <Step title="Salva i tuoi progressi con un commit">
    ```bash
    git add .
    git commit -m "feat: add notification data models"
    ```

    Un commit crea un punto di rollback sicuro.
  </Step>

  <Step title="Pulisci il contesto per la fase successiva">
    Per le attività complesse, pulisci il contesto prima di passare alla fase successiva. Così Verdent ha capacità di contesto sufficiente per mantenere prestazioni ottimali.

    ```
    Phase 2: Build the notification API endpoints using the data models
    ```

    Avvia una nuova sessione con un contesto fresco focalizzato solo sulla Fase 2.
  </Step>
</Steps>

<Tip>
  **Suggerimenti:**

  * I punti di interruzione naturali evitano l'esaurimento del contesto
  * Ogni fase dovrebbe essere testabile in modo indipendente
  * Fare commit tra una fase e l'altra consente sperimentazioni sicure
  * Le sessioni fresche mantengono il contesto pulito e focalizzato
</Tip>

***

## Sfruttare Plan Mode per modifiche su larga scala [#sfruttare-plan-mode-per-modifiche-su-larga-scala]

Supponiamo che tu debba rifattorizzare una funzionalità sparsa in decine di file all'interno di una codebase di grandi dimensioni.

<Steps>
  <Step title="Inizia in Plan Mode">
    ```
    Switch to Plan Mode: Refactor the payment processing logic to use a new payment provider across all files
    ```

    Plan Mode consente un'analisi in sola lettura senza consumare contesto per le modifiche ai file.
  </Step>

  <Step title="Usa Explorer per trovare tutti i file interessati">
    ```
    Use the Explorer agent to find all files that reference payment processing
    ```

    Assicura di individuare ogni punto che necessita di aggiornamenti.
  </Step>

  <Step title="Rivedi il piano completo">
    Verdent presenta un piano che mostra:

    * Tutti i file che richiedono modifiche (25 file identificati)
    * L'insieme minimo di file da includere nel contesto principale
    * L'ordine delle operazioni
    * Le dipendenze tra le modifiche

    Rivedilo prima di adottare l'approccio.
  </Step>

  <Step title="Approva l'esecuzione">
    Una volta soddisfatto del piano, approva l'esecuzione. Verdent procede con le modifiche in modo metodico.
  </Step>
</Steps>

<Tip>
  **Suggerimenti:**

  * Plan Mode aiuta a individuare gli insiemi minimi di file prima dell'esecuzione
  * Explorer garantisce che nessun file venga tralasciato in un refactoring su larga scala
  * I piani mostrano chiaramente l'ambito prima che il contesto venga consumato
  * Salva i piani su file per documentazione e revisione del team
</Tip>

***

## Effettuare modifiche coordinate su molti file [#effettuare-modifiche-coordinate-su-molti-file]

Supponiamo che tu debba rinominare una funzione usata in oltre 50 file all'interno di una codebase di grandi dimensioni.

<Steps>
  <Step title="Usa Explorer per trovare tutti gli utilizzi">
    ```
    Use the Explorer agent to find all files that use the calculateTotal function
    ```

    Identifica ogni file che richiede aggiornamenti.
  </Step>

  <Step title="Rivedi l'ambito in Plan Mode">
    ```
    In Plan Mode: Rename calculateTotal to computeFinalTotal across all files
    ```

    Osserva l'ambito completo prima di apportare modifiche.
  </Step>

  <Step title="Verifica che nessun file sia stato tralasciato">
    Verdent mostra tutti i 52 file che richiedono aggiornamenti. Esamina l'elenco per assicurarti che sia completo.
  </Step>

  <Step title="Esegui le modifiche coordinate">
    Approva il piano. Verdent aggiorna tutti i file in modo sistematico, garantendo una rinomina coerente ovunque.
  </Step>

  <Step title="Esegui i test per verificare">
    ```
    Run the full test suite to verify all references were updated correctly
    ```

    I test individuano eventuali riferimenti tralasciati.
  </Step>
</Steps>

<Tip>
  **Suggerimenti:**

  * Explorer garantisce che nessun file venga tralasciato nelle modifiche su larga scala
  * Plan Mode mostra l'ambito completo prima dell'esecuzione
  * Gli aggiornamenti sistematici mantengono la coerenza tra tutti i file
  * Testa in modo esaustivo dopo un refactoring su larga scala
</Tip>

<Tip>
  Le modifiche coordinate su molti file sono più sicure se effettuate per fasi: aggiorna un livello, verifica, poi procedi con i livelli dipendenti.
</Tip>

***

## Domande frequenti [#domande-frequenti]

<Accordion title="Come faccio a sapere quando mi sto avvicinando ai limiti di contesto?">
  Tra i segnali ci sono tempi di risposta più lenti, sessioni che durano diverse ore o molti file di grandi dimensioni caricati. Monitora la durata della sessione e il numero di file. Quando noti un calo delle prestazioni, completa l'attività in corso, salva i progressi con un commit e avvia una nuova sessione con contesto pulito.
</Accordion>

<Accordion title="È sicuro lasciare che Verdent modifichi decine di file in una volta?">
  Sì, se usato correttamente. Usa sempre Plan Mode per rivedere prima l'ambito completo, assicurati di avere una copertura di test esaustiva ed esegui commit frequenti tra una fase e l'altra. Questo ti consente di verificare le modifiche in modo incrementale e di effettuare facilmente il rollback se necessario.
</Accordion>

<Accordion title="Quando dovrei usare l'agente Explorer invece di caricare i file direttamente?">
  Usa l'agente Explorer per attività di esplorazione e ricerca senza consumare il contesto principale. Carica i file direttamente con le @-menzioni solo quando devi modificarli. Explorer è ideale per domande del tipo "trova tutti i file che...", mentre le @-menzioni servono per attività del tipo "aggiorna questo file specifico".
</Accordion>

<Accordion title="Quale preset di modello è il migliore per lavorare su codebase di grandi dimensioni?">
  Usa il preset Performance per operazioni complesse su più file e per il refactoring. Usa il preset Efficiency per ricerche ed esplorazioni semplici. Performance offre maggiore capacità di ragionamento per le modifiche coordinate, mentre Efficiency è più veloce ed economico per l'esplorazione.
</Accordion>

***

## Vedi anche [#vedi-anche]

<CardGroup cols="2">
  <Card title="Esempi di attività a più passaggi" icon="list-check" href="/docs/verdent-for-vscode/common-workflows/multi-step-tasks">
    Flussi di lavoro complessi a più passaggi e gestione delle attività
  </Card>

  <Card title="Best practice" icon="star" href="/docs/verdent-for-vscode/best-practices/context">
    Strategie di gestione e ottimizzazione del contesto
  </Card>
</CardGroup>
