Approfondimenti Ottimizzare lo sviluppo software con l'IA: il mio assetto di produttività
4' 38''
28/10/2024

Di seguito alcuni tool di intelligenza artificiale molto utili per velocizzare e migliorare il processo di sviluppo software.

Ottimizzare lo sviluppo software con l'IA: il mio assetto di produttività

Prima di cominciare vi dico un po' di me: sono prima di tutto un programmatore, poi un designer, poi un DevOp, poi un admin di sistema, poi un... In poche parole, mi occupo di qualsiasi cosa in azienda, dall'idea del software al suo rilascio.

L'IA ha cambiato la mia vita? Certo, ha assecondato un po' della mia pigrizia, ma (almeno credo) non ha rovinato il codice che scrivo. Mi ha reso più competitivo; insieme al mio team, possiamo sviluppare molto più velocemente rispetto a 10 anni fa.

L'articolo avrà un importante focus sul modo in cui lavoro: uno stack TALL — Tailwind, AlpineJs, Laravel, Livewire — che può, tuttavia, essere applicato ad altri ambienti. Sviluppiamo tranquillamente anche in NextJS, Astro, Python, Go, ecc...

Prima di cominciare, ecco alcune considerazioni:

  • uso sempre PHPStorm, a volte VSCode e raramente Zed
  • sì, sono un utente
  • PHP conquisterà il mondo

Sistemare gli errori, rifattorizzare, generare

Partner preferito: Copilot

Nella nostra azienda, utilizziamo PHPStorm per l'intero processo di sviluppo software basato su Laravel. A volte passiamo a VSCode per progetti che non sono legati al web o fortemente associati a framework diversi (al momento mi viene in mente il Plasmo Framework). No, non utilizziamo Cursor.

La funzionalità di completamento automatico è probabilmente la mia preferita. Può essere attivata premendo il tasto tab:

Di recente, è stata integrata su PHPStorm la feature inline-chat direttamente dall'editor. Una funzionalità decisamente sottovalutata ma estremamente potente per piccoli refactor:

Ora, questa è una bella cosa. Generare la documentazione del codice. Va bene, dovremmo sempre scrivere codice autoesplicativo. Ma a volte le cose non sono così semplici. La funzione Genera Documentazione ci aiuta molto.

E ancora, puoi chiedere a Copilot di sistemare il codice, renderlo più veloce, più leggibile, scrivere test, eccetera... le possibilità sono infinite!

Se hai bisogno di interagire con Copilot in maniera più approfondita, puoi sempre usare Copilot Chat:
 
 
Ho provato Tabnine con scarso successo. ora sto usando Copilot (e sono felice).

Scrivere i messaggi di commit

Partner preferiti: AI Commit (PHPStorm) / Integrated Copilot Plugin (VSCode) 

Preferisco l'approccio AI Commit rispetto all'approccio Copilot (che attualmente non è presente in PHPStorm) perché mi dà la possibilità di utilizzare API di terze parti. In particolare, utilizzo gpt-4o-mini, che è molto economico e mi fa risparmiare molto tempo a un costo ridicolo:

Al contrario, su VSCode è già integrato in Copilot — quindi, nel mio caso, il costo sarebbe zero:

Pull Request con l'IA

Partner preferito: CodeRabbit 

Immagina di avere uno strumento che sintetizza le tue Pull Request e fa una revisione parziale del codice prima ancora che tu lo faccia.

Nel The3LabsTeam lo utilizziamo (sporadicamente) principalmente in pacchetti open-source, come il nostro laravel-ads-post-parser. Se scrivi codice open, c'è un buon piano gratuito.

So dell'esistenza dei 'riassunti delle Pull request' in Copilot, ma attualmente sono solo per coloro che hanno un abbonamento Enterprise. 

Trovo il servizio molto carino, ma a volte eccessivamente ingegnerizzato rispetto a molte delle esigenze reali: una revisione del codice deve prima nascere dalla necessità di comprendere il codice applicato, ma rimane utile per diversi suggerimenti che può darci.

Terminale

Partner preferito: Warp

Il terminale è quell'ambiente accogliente dove ogni sistemista si rifugia e digita migliaia di stringhe degne di qualsiasi scena da hacker. Nel mio caso, il terminale (precedentemente iTerm2) è stato sostituito da Warp — e mi dispiace un po' se devo essere onesto.

Utilizzo le funzionalità di IA solo una volta al mese, a volte nemmeno. Potrebbe essere che ho quel problema che molte persone hanno di volere un alias per qualsiasi cosa, potrebbe essere che zhsrc mi salva sempre la cronologia di quei 5 comandi nella croce che lancio.

Ma quando utilizzo le funzionalità AI, spesso mi aiutano ad uscire rapidamente dai guai.

Agente di IA 

Partner preferito: Nessuno (per ora)

Per il momento non sono ancora riuscito a trovare qualcosa che si comporti come un vero assistente di IA efficace, dove i costi sarebbero giustificati dal delegare le attività alla macchina.

Parlo dei vari Devin (mai nato?), OpenDevin (OpenHands), Devika e simili. Fino ad oggi, ho avuto solo due esperienze interessanti, che non hanno ancora trovato posto nel mio flusso di lavoro, ma che secondo me dovrebbero essere tenute d'occhio.

CodeCompanion

Sedotto e abbandonato. Questo è stato il mio approccio a CodeCompanion, che prometteva magia (e inizialmente mi ha colpito).

Gli chiedevo di fare un branch, poi una modifica, poi un commit e una PR. Faceva tutto, fantastico!

Poi ho iniziato a chiedergli cose più complicate: all'improvviso dimenticava di creare il branch, caricava in main, si bloccava con un semplice JSON. In breve, grande potenziale, ma in questo momento non mi sento di riprovarlo almeno per qualche altro mese. 

Aider

Deluso dalla storia con CodeCompanion, ho deciso di provare Aider. Gli ho chiesto di fare una modifica a un file Nova, aggiungendo una condizione di controllo se un campo fosse stato true

Risultato: ho dovuto dargli un prompt piuttosto preciso, ho dovuto trovare il file, ho speso 0,04€. Se lo avessi fatto a mano, ci sarebbe voluto molto meno tempo.

Comunque non mi arrenderò: ho intenzione di testarlo ancora e vedere se può eseguire task per me in altre situazioni (o integrarlo direttamente nell'IDE, il che potrebbe essere più veloce).

Una cosa comoda è che modifica e fa commit del codice, quindi potrebbe essere utile in qualche modo. Devo solo capire come e quando.

Potrebbe interessarti anche

Approfondimenti

L'IA trasforma la diagnostica per immagini e i percorsi di cura

Il dibattito "Evoluzione tecnologica e Intelligenza Artificiale in Diagnostica per Immagini. Stato dell’arte e prospetti...

Approfondimenti

Il 55% delle aziende farmaceutiche usa l'IA per progettare prodotti e servizi

Secondo il report "AI: radiografia di una rivoluzione in corso" condotto da Ascendant di Minsait, le aziende farmaceutic...

Approfondimenti

Il mercato italiano del Business Process Management continua a crescere

In Italia il mercato del Business Process Management sta crescendo grazie all'IA e a una maggiore attenzione delle impre...

News

Nasce Rethic.AI, rete d'imprese per l'adozione etica dell'IA in Italia

Nasce Rethic.AI, la prima rete d'imprese italiana per favorire l'adozione etica dell'intelligenza artificiale nel Paese.