#2 File di progetto
Un'introduzione alle migliori pratiche di gestione dei progetti nell'era dell'IA.
Ora abbiamo compreso la panoramica dell'IA. Tuttavia, per avviare lo sviluppo, abbiamo prima bisogno di un ambiente. Configureremo un ambiente di sviluppo basato sull'uso dell'IA. Innanzitutto, dobbiamo decidere come gestire i file di progetto. La semplice condivisione dei file comporta il rischio di dover riscrivere il codice da zero in caso di errore. Questo vale anche quando si utilizza l'IA, quindi il controllo di versione e la gestione del progetto sono inseparabili nello sviluppo moderno.
In passato, lo sviluppo iniziava con la semplice condivisione di file (NFS o NetBIOS), evolvendosi poi attraverso CVS (da ~1990) → VSS (da ~1995) → Subversion (da ~2000) → Git (da ~2010) (queste tempistiche sono approssimative). Ho preparato e configurato gli ambienti per ciascuna di queste fasi. Storicamente, la configurazione degli ambienti di repository (unità per la memorizzazione e la gestione dei file di progetto insieme alle cronologie degli aggiornamenti) richiedeva un'installazione o acquisti manuali, insieme alla creazione di ambienti di backup, il che rappresentava un compito importante. Oggi, GitHub è la scelta indiscussa. (Dato che è gratuito, lol)
【Informazioni su GitHub】
In precedenza, GitHub limitava gli account gratuiti a un singolo repository privato, ma ora è illimitato. Inoltre, GitHub Actions offre fino a 2.000 minuti gratuiti al mese e lo spazio di archiviazione è gratuito fino a 500 MB.
Questo è meraviglioso. Viviamo in una grande era. Naturalmente, puoi anche avviare un container Gitea tramite Docker per creare un ambiente Git locale. Per i grandi progetti in cui non utilizzo la CI/CD, li gestisco sul mio server locale.
<Che cos'è la CI/CD?>
Questa è una filosofia importante nello sviluppo basato sull'IA e senza codice. In passato, i System Analyst (SA) analizzavano le operazioni aziendali e compilavano i requisiti, i System Engineer (SE) creavano le specifiche e i requisiti di test, e i programmatori (PG) scrivevano il codice (noto come modello a cascata). Rispetto a ciò, oggi sembra di vivere in un altro mondo. Riflettendo sugli alti costi per tornare alle fasi precedenti, i metodi moderni danno priorità alla costruzione a piccoli passi per poi crescere. Definiamo brevemente i termini:
- CI: Continuous Integration
Il processo in cui gli sviluppatori integrano frequentemente le modifiche al codice in un repository condiviso, attivando build automatizzate ed eseguendo test.
- CD: Continuous Delivery & Deployment
La pratica di automatizzare il codice testato nella CI in modo che sia pronto per essere rilasciato manualmente in produzione in qualsiasi momento, o di automatizzare il deployment effettivo in produzione.
In parole povere, è un metodo per rifinire un progetto passo dopo passo verificando l'interfaccia utente e le funzionalità. In precedenza, i metodi venivano chiamati Sviluppo Agile o DevOps (Sviluppo + Operations), ma l'approccio odierno sembra ancora più rapido. È un connubio perfetto per l'IA.
Nell'era dell'IA, c'è un altro concetto chiave da conoscere: GitOps.
<What is GitOps?>
Questa è una metodologia di sviluppo incentrata su un repository Git. È il concetto di gestire tutte le definizioni dell'infrastruttura, le configurazioni delle applicazioni e i deployment del codice sui server in modo che siano completamente sottoposti a controllo di versione, consentendo rollback e cronologie di audit complete. Concentrare tutte le informazioni del progetto intorno a questa fonte di verità migliora notevolmente l'efficienza dello sviluppo, la tolleranza ai guasti e i tempi di ripristino rapidi.
Un avvertimento riguardo a GitHub nell'era dell'IA: come spiegato in precedenza, gli strumenti di IA personali utilizzano le cronologie delle conversazioni per l'addestramento. Le informazioni sensibili (password, token di accesso, etc.) devono essere mantenute al sicuro utilizzando GitHub Secrets. Inoltre, per le operazioni su GitHub, è meglio accedere in anticipo utilizzando la CLI di GitHub prima di delegare compiti all'IA.
Cattivo esempio:
$ git clone https://{username}:{Token}@github.com/{UserID}/{repository_name}.git
Sebbene GitHub consenta questo formato, espone completamente il tuo token. Dovresti sempre eseguire `gh auth login` in anticipo in modo da non dover passare le credenziali direttamente ai comandi Git. In questo modo il token viene registrato sull'URL remoto, rendendolo visibile a chiunque, quindi non dare per scontato che sia sicuro solo perché un essere umano ha eseguito inizialmente il comando.
Poiché numerosi siti web spiegano come creare account GitHub e definire comandi clone, salterò questi dettagli qui. Per prima cosa, il tuo repository (un insieme di file di progetto) è stato creato con successo.