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:
E ancora, puoi chiedere a Copilot di sistemare il codice, renderlo più veloce, più leggibile, scrivere test, eccetera... le possibilità sono infinite!
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.