Avere un ambiente di sviluppo veloce e affidabile è l’arma segreta di qualsiasi sviluppatore e in questo articolo scoprirai come creare quello più idoneo al lavoro che stai facendo.
Sono sicuro che durante la tua carriera da sviluppatore ti sei dovuto confrontare molte volte con la creazione di un ambiente di sviluppo.
Nella definizione del termine “ambiente di sviluppo” possiamo partire da un semplice editor di codice e un browser web fino ad arrivare alla scelta del server web adatto alle proprie esigenze e degli strumenti che ci aiutano nello sviluppo del progetto.
Cerchiamo quindi di rispondere alla prossima domanda:
Posso avere un unico ambiente di sviluppo?
Vuoi la risposta breve?
No.
Non voglio scoraggiarti, anzi il mio intento è quello di aiutarti a capire perché ti ho appena risposto in questo modo. In questo articolo faremo il punto della situazione e capiremo quale sia l’ambiente di sviluppo migliore in base alle tue necessità.
Sono sicuro che ti stai domandando se io sono in grado di conoscere le tue necessità e onestamente, non conoscendoti, ammetto che è un compito veramente difficile da svolgere.
Mi manca la sfera di cristallo ?
Al tempo stesso, in questi anni ho avuto la fortuna di formare centinaia di persone che desideravano diventare sviluppatori web e questo mi ha permesso di identificare alcuni profili che risponsono alle necessità della maggior parte dei developer.
Dico questo perché chiunque desideri crescere all’interno dello sviluppo web dovrà affrontare una serie di fasi che gli permetteranno di raggiungere nuovi obiettivi e padroneggiare nuove competenze.
Questo perché per sviluppare nel web c’è veramente tanto da conoscere.
Il percorso di uno sviluppatore web
Si inizia con lo scoprire che le pagine web che consultiamo tutti i giorni sono scritte con del codice che permette di definire la struttura (HTML) e stile (CSS) per arrivare man mano a capire che questo codice risiede all’interno di un server web in grado di salvare delle informazioni (DataBase) e di interpretare un vero e proprio linguaggio di programmazione (come il PHP per esempio).
Ovviamente in mezzo a queste conoscenze si incontra anche la necessità di sapere come scrivere un codice performante, un codice in grado di essere compreso dai motori di ricerca, di realizzare siti web che si adattino alle pagine del dispositivo che le consulta e ultimamente anche come poter sfruttare queste stesse conoscenze per poter creare applicazioni mobile o desktop.

Cavolo, soltanto a scrivere questi passaggi mi sono fatto paura da solo.
Il principale problema è che chi è alle prime armi pensa sempre di dover imparare tutto e subito, ma fin troppo spesso questo è l’approccio sbagliato.
Non voglio perdermi nei dettagli del cervello umano e descrivere tutte le fasi che si susseguono durante l’apprendimento, quello che sento il bisogno di è che il nostro cervello ha bisogno di tempo per poter immagazzinare e fare proprie le nuove conoscenze.
Non si può frequentare un corso di 30 ore e pensare di poter diventare degli sviluppatori web a tutti gli effetti.
Non bastano i corsi di formazione
E questo lo dico con massima sincerità anche se in fin dei conti va contro i miei interessi. In questo portale vendiamo corsi di formazione per aiutare gli sviluppatori ad apprendere nuove conoscenze ma ci tengo a precisare che nessuno si dovrebbe sentire “arrivato” o “esperto” dopo aver passato soltanto qualche ora a studiare. Conoscere veramente qualcosa significa spendere centinaia di ore, suddivise tra studio e pratica.
Serve costanza, volontà e dedizione. Soprattutto quando il nostro codice non si comporta come desideriamo.
Allo stesso tempo so benissimo che non sei capitato su questa pagina perché volevi farti spaventare dalle conoscenze che ti serviranno per diventare uno sviluppatore web a tutti gli effetti.
Sei qua per scoprire quali sono gli ambienti di sviluppo che ti consigliamo durante le varie fasi della tua crescita 🙂
L’apprendista sviluppatore web
Come dicevo prima, l’apprendista sviluppatore arriva a scoprire che si può modificare una pagina web con del semplice codice e non vede l’ora di applicare tutte le modifiche che da anni sta sognando.
Ha sentito parlare di HTML, CSS, JavaScript, jQuery, React, Laravel e molti altri nomi e non si è fatto assolutamente spaventare, in fin dei conti cosa ci vorrà mai a imparare un linguaggio di programmazione?!?

Battute a parte, quando ci affacciamo per le prime volte allo sviluppo web ci sono molti (futuri) colleghi che ci dicono: e che ci vuole? Apri un editor di testo, apri il tuo browser e inizi a scrivere codice 🙂
Purtroppo questi consigli senza alcuna considerazione portano moltissime persone ad aprire un qualsiasi blocco note e Safari, o peggio ancora Word e Internet Explorer…
Non sto scherzando, ho visto con i miei stessi occhi moltissimi freelance o profili junior all’interno di aziende che non facevano altro che utilizzare uno di questi due browser. ?
Il browser FA la differenza
Assicurati di usare un browser moderno e con degli strumenti dedicati allo sviluppatore aggiornati. Non sai quale usare? Continua a leggere per scoprire i nostri consigli!
Questo mi ha sempre fatto riflettere molto e mi ha fatto anche chiedere:
È possibile che tutti credono che sviluppare sia un gioco da ragazzi?
Abbiamo sbagliato noi sviluppatori a passare questo tipo di informazioni?
Sicuramente per sviluppare semplici siti web non è necessaria una laurea in ingegneria aero-spaziale e con gli strumenti che ci vengono proposti con frequenza, sempre più persone sono in grado di “sviluppare” una pagina web.
Ma allora perché iniziano con gli strumenti sbagliati?
Sarai liberissimo di correggermi nei commenti ma secondo me una persona che inizia dovrebbe utilizzare i migliori strumenti (anche in senso economico) in modo da poter apprendere i segreti del web nel modo corretto.
Editor di codice
Partiamo subito con lo strumento con il quale sbattiamo in molti la testa, l’editor di codice!
Ne esistono veramente di tutti i tipi!
Ci sono quelli che ti permettono di disegnare la pagina trascinando elementi al suo interno, altri che presentano un’interfaccia pieni di bottoni e suoni e quelli più spartani dove tutto è delegato a scorciatoie da tastiera.

Se hai già seguito il corso Scopri le fondamenta del Web Design saprai già dove sto andando a parare, la mia opinione è quella di utilizzare l’ultimo tipo di editor (quelli spartani e con molte scorciatorie da tastiera) perché appartiene alla famiglia di strumenti che ti costringono a imparare veramente qualcosa!
Qualsiasi soluzione che ci allontana dal codice, dal come qualcosa viene fatto, ci rende più ignoranti.
Non c’è via di scampo e non mi voglio scusare per questo.
Negli anni ho provato diversi editor e come molti le mie prime esperienze si sono svolte all’interno di Dreamweaver (che ho velocemente abbandonato) ma se devo spezzare una lancia per alcuni di essi ecco la mia classifica personale:
- Visual Studio Code – in quest’ultimo anno mi sono trovato a usare questo editor sempre più spesso. Nonostante sia sviluppato in Electron (usa quindi tecnologie web) risulta incredibilmente performante e con il suo marketplace di estensioni permette di personalizzarlo fino a farlo avvicinare a un IDE a tutti gli effetti.
- Atom – ho iniziato a utilizzare questo editor di codice by GitHub sin dalle prime versioni. Mi è piaciuta talmente tanto l’idea che ho deciso di pubblicare anche un corso a riguardo!
- Sublime Text – inserisco questo perché, anche se non lo uso più da diversi anni, ha rappresentato una rivoluzione nel campo degli editor di codice. Veloce e affidabile è stato il primo a inserire un concetto molto simile allo Spotlight di OSX (che uso quotidianamente), la sua fuzzy search ha reso la ricerca e l’apertura di file o tool un gioco da ragazzi!
L’ordine dell’elenco precedente rispetta le mie preferenze personali quindi non arrabbiarti con me se sei uno sviluppatore che usa Sublime Text, è vero questo è un editor molto potente e che ha dettato gli standard per diverso tempo ma se devo essere onesto con te Visual Studio Code (che è anche open source) risponde completamente alle mie necessità.
Stiamo parlando di editor di codice
La lista precedente raccoglie soltanto quelli che sono i miei editor di codice preferiti, in questo articolo non trattiamo IDE o altri programmi che ci aiutano a creare siti web.
Per concludere questo punto se vuoi imparare veramente questo mestiere il mio consiglio è quello di iniziare con un editor semplice e potente, la scelta resta a te ma se decidi di installare uno di quelli che ti ho consigliato non avrai di che pentirtene.
Un browser degno di questo nome
Precedentemente mi hai sentito “brontolare” nei confronti di chi usa Safari o Internet Explorer (sostituito recentemente da Edge), ma se hai già letto qualche nostro articolo sai che non appezzo molto neanche Chrome.
Ti spiego subito le mie motivazioni.
I primi due browser non hanno alcun interesse ad aiutare lo sviluppatore, il loro compito è facilitare l’esperienza utente di un navigatore medio.
Negli anni hanno capito che lo sviluppatore è una persona che deve essere rispettata e hanno aggiunto qualche strumento dedicato allo sviluppo ma se posso essere onesto con te: non dargli retta.
Gli strumenti per sviluppatori che troverai in Edge o Safari non si avvicinano neanche alle potenzialità di quelli offerti da altri browser.
Spostiamo adesso la nostra attenzione su un altro browser che ha conquistato il web: Chrome.
Perché non mi piace?
Ecco la risposta veloce: è un’applicazione mangia RAM che vuol fare fin troppo! Hai mai notato che una volta installato Chrome si rende disponibile anche la possibilità di installare applicazioni?
Perché mai un browser dovrebbe installare delle applicazioni?!?

Ah già, quasi dimenticavo, perché Chrome fa parte del progetto Chromebooks che mira a realizzare un completo sistema operativo con tecnologie web.
È normale, quindi, vedere che questo browser si estende in moltissime forme e che, in alcuni casi, cerchi anche di prendere il controllo del nostro sistema operativo.
Non solo RAM
Ci sono molte altre motivazioni che mi spingono a non usare Chrome per le mie attività di sviluppo ma potrei scrivere un intero articolo a riguardo.
Però una cosa buona all’interno di Chrome è stata fatta, gli strumenti dedicati agli sviluppatori.
Questi strumenti sono veramente all’avanguardia e potenti ma la corsa all’ultima featura ha permesso di eseguire del codice non compatibile con gli altri browser, come ad esempio per quanto successo con i Web Components e Polymer.
È perché Google ci tiene ad estendere le potenzialità del web per il beneficio di tutti?
Assolutamente no, Google non rispetta i tempi prestabiliti dal W3C e inizia a implementare le proposte per poter urlare ai quattro venti che loro supportano già la caratteristica che verrà implementata in futuro, della quale però non è stato ancora stabilita la sintassi ufficiale…
Che cosa ci è rimasto quindi come buon browser?
La risposta facile è Firefox!
Ottimo browser (veramente oper source) che fa di tutto per rispettare la nostra privacy e aiutarci a comprendere i pericoli della rete.
Uso Firefox per qualsiasi mio tipo di navigazione, sia per andare su Facebook (soprattutto da quando sono stati rilasciati i container) che per scrivere i miei articoli (proprio come in questo momento).
Questo significa che nel tempo vengono installate anche estensioni e add-on che non riguardano la vita di uno sviluppatore e che (potenzialmente) possono rallentare le prestazioni del browser.
Ecco perché la Mozilla Foundation ha realizzato un browser interamente dedicato agli sviluppatori! Abbiamo già fatto parlare Daniele sulle feature di questo browser, che adesso sono addirittura maggiori, ma se ti dovessi essere perso l’appuntamento ti lascio qua sotto il video.
Valuta tu stesso se restare a debuggare il tuo codice con Safari o se installare un browser separato e dedicato allo sviluppatore.
Sono sicuro che troverai molte feature interessanti che difficilmente ti terranno lontano da questo stupendo browser.
Lavora facilmente con librerie JavaScript
Passiamo adesso a trattare per la prima volta all’interno di questo articolo l’argomento linguaggio di programmazione.
Sempre più spesso i progetti web hanno bisogno di un linguaggio dinamico come JavaScript. Elementi e informazioni si devono spostare e adattare al nostro utente in modo da garantirgli una semplice fruizione e un’esperienza unica.
Noi abbiamo cercato di avvicinarti a questo mondo pubblicando il corso JavaScript, il Linguaggio Dinamico del Web ma ti avverto fin da ora che questa è soltanto un’introduzione. JavaScript è un linguaggio molto potente e al giorno d’oggi, grazie a Node.js e altri framework, è possibile creare applicazioni mobile e desktop!

Per questo motivo non si trova il tempo di studiare tutto a priori, si ha la necessità di imparare lavorando e se si trova un effetto che ci piace vogliamo usarlo immediatamente.
Per fortuna nostra esistono molti sviluppatori che sono felici di condividere il proprio codice e di aiutarci a realizzare il nostro sito con gli effetti desiderati, basta andare su Unheap per essere immediatamente accolti da un’infinità di plugin jQuery e JavaScript.
Purtroppo c’è solo un problema con questa pratica, se desideri installare uno di questi plugin dovrai:
- andare sul sito,
- scaricare l’archivio
.zip
, - aprirlo,
- copiare i file nel tuo progetto,
- collegare i nuovi file alle pagine,
- testare che tutto funzioni ecc…
Per quanto questo possa sembrare un lavoro del tutto gestibile quando si usa una sola libreria, pensa a quanto tempo potresti sprecare se devi testarne decine prima di trovare l’effetto che fa al caso tuo!
Oltre al tempo sprecato pensa anche a come lo stai utilizzando!
Ecco perché, prima ancora di passare al prossimo livello il mio consiglio è quello di scoprire e utilizzare npm! Questi sono semplici strumenti da riga di comando che permettono di velocizzare incredibilmente la vita dello sviluppatore.
Non dovrai far altro che scrivere alcune righe sul tuo terminale (tendenzialmente il nome dello script che desideri e i comandi per installarlo) e in men che non si dica avrai a tua disposizione il codice necessario a realizzare l’effetto che ti serve.
Forse è ancora un po’ presto per iniziare a utilizzare questi strumenti ma ritengo che sia una mossa intelligente quella di prepararsi al futuro e soprattutto conoscere le possibilità e gli strumenti che possono tornarci utili.
Quando HTML, CSS e JavaScript non ti bastano più
Ora che abbiamo conosciuto un ambiente di sviluppo che ci permette di iniziare la nostra avventura, è giunto il momento di guardare oltre e cercare di realizzare qualcosa di più concreto e simile ai server che si trovano online e che gestiscono i siti dei tuoi clienti.
Continuando l’idea generale dell’articolo, ovvero che sei uno sviluppatore che sta crescendo, a questo punto dovrebbero essere diversi mesi che stai sviluppando per te o per i tuoi clienti e senti sempre più spesso persone che ti chiedono di installare un CMS (chiedono di avere la possibilità di aggiornare le pagine del proprio sito) oppure ti stai avvicinando al desiderio di imparare un nuovo linguaggio di programmazione come il PHP.
In fin dei conti questa è una naturale evoluzione in qualsiasi sviluppatore web, anche se magari non desideriamo fare altro che sviluppare animazioni e bellissimi effetti frontend arriva sempre quel cliente che ci chiede di fare il passo aggiuntivo, che ci chiede di avere un CMS.
Ormai dovresti sapere sapere, data anche la presenza di un corso dedicato, che il nostro principale interesse è rivolto verso WordPress.
In questo abbiamo trovato un CMS elastico e un potente framework che ci ha permesso di creare un gran numero di progetti, ma non voglio farti credere che sia l’unica piattaforma esistente!
Nel mondo open source esistono altre piattaforme che hanno raggiunto una certa fama come Joomla e Drupal o i nastri nascenti come Ghost, Grav o altri CMS basati su Node.js.
I primi due CMS che ti ho presentato, Drupal e Joomla, sono molto distanti dal dominio WordPress, ma se controlliamo la tecnologia utilizzata per crearli scopriremo che tutti e tre sono stati sviluppati utilizzando il linguaggio PHP e il database MySQL, a conferma anche delle statistiche che ci ricordano che questo linguaggio si trova in più dell’75% dei progetti web.
Sono sicuro che avrai sentito dire da molti dire che il PHP è morto, che non è un buon linguaggio o più semplicemente che è lento. E probabilmente avrai sentito parlare bene di Ruby, Go o addirittura di Scala…
Peccato che controllando le percentuali di utilizzo di questi linguaggi e le sommiamo tra loro, scopriremo che neanche così sono in grado di superare l’1% di presenza web.
Parlo di percentuali perché quello che voglio farti capire è che più un linguaggio viene utilizzato più alta sarà la domanda di sviluppatori in grado di creare applicazioni con questo linguaggio.
Per quanto criticato, il linguaggio PHP detiene una percentuale talmente alta di utilizzo che sarebbe folle non tenerlo in considerazione.
Difeso il mio linguaggio preferito, cerchiamo di capire quale sia l’ambiente di sviluppo più idoneo che ti consiglio di creare in questa fase della tua vita da sviluppatore.
Abbiamo messo in chiaro che HTML, CSS e anche il JavaScript sono linguaggi con i quali ormai sei confidente e non desideri far altro che estendere le tue conoscenze, diciamo che l’unica strada che ti è rimasta è imparare un linguaggio di programmazione lato server.
Per fare questo bisogna fare un primo passaggio fondamentale, comprendere la struttura di un server web!

Sviluppare per il web fino a ora ha significato qualcosa di semplice, basta aprire un editor di codice e un browser per sparare codice nelle nostre finestre ma quando si fa il passaggio a un linguaggio server side come il PHP bisogna conoscere uno strumento molto importante: il server.
Quando si parla nello specifico del linguaggio PHP esistono soluzioni come MAMP, XAMPP, WAMP che ci aiutano molto nella creazione di un ambiente di sviluppo ideale.
Queste sono applicazioni all-in-one che installano tutti i programmi necessari e sono già configurati e pronti all’uso.
Generalmente creano una cartella nel tuo sistema operativo che ti permette di caricare i file PHP per iniziare il lavoro senza richiedere conoscenze approfondite nella gestione dei server.
Come dicevo prima, in alcuni casi avrai comunque bisogno di conoscenze approfondite, ma in linea di massima usare uno di questi programmi è il modo più semplice per iniziare.
Allo stesso modo avrai l’opportunità di conoscere un ambiente di sviluppo completamente nuovo, un ecosistema dove i dati vengono salvati all’interno di un database e che ci permette di risparmiarci l’onere di dover creare moltissime pagine per il nostro sito web.
Anzi potrai creare pagine template che potranno avere la stessa struttura ma contenuto diverso a seconda dei dati ottenuti dal database.
Dove approfondire questi concetti
Se vuoi approfondire queste conoscenze ti consiglio di seguire il corso Apprendi il PHP con WordPress perché qua non ho il tempo per andare nel dettaglio.
Soluzioni del genere ti permetteranno di conoscere più da vicino le logiche che si nascondono dietro un server web come Apache, il linguaggio di programmazione PHP e finalmente potrai iniziare a lavorare con WordPress!
Parlo di WordPress ma potrebbe essere un qualsiasi altro CMS scritto in PHP, un qualsiasi CMS che il tuo cliente ha richiesto.
Avere un ambiente di questo tipo offre la possibilità di lavorare direttamente sul tuo computer facendo più pratica e raggiungendo i risultati nella metà del tempo.
Non sto fantasticando, è probabile che al momento la tua esperienza con lo sviluppo di siti web ti ha portato a installare il CMS attraverso strumenti come Softaculous o Bitnami, che aiutano nella configurazione del server web e nell’installazione dell’applicazione ma così facendo stai seguendo il lato oscuro della programmazione.
Installare WordPress con qualche click è una funzionalità che io stesso mi trovo a usare di tanto in tanto, ma non è giusto sviluppare direttamente sulla macchina online perché il continuo scambio di modifiche ai file potrebbe portare a degli errori fastidiosi da risolvere.
Praticamente stai facendo Cowboy Coding 🙂
Quello che si definisce con il termine Cowboy Coding è la pratica (sbagliata) di aprire il proprio programma FTP e modificare dal vivo i file che si trovano all’interno del server web.
Non importa quale sia il tipo di file, può anche essere un foglio di stile o una pagina HTML, quello che stai rischiando è la perdita di tutto il tuo lavoro per un errore nella connessione tra il tuo computer e il server online.

Ed ecco un altro interessante passaggio che potresti affrontare prima di passare al successivo ambiente di sviluppo, potresti aver bisogno un modo per collaborare facilmente con i tuoi colleghi magari con un sistema che ti permetta di lavorare a più mani sugli stessi file, lasciandosi commenti costruttivi e tracciando i bugfix e le feature in una board di discussioni.
Pensi che stia parlando di fantascienza? Tutte queste cose non le puoi risolvere con FTP e le email?
Se ti sono balenati questi dubbi in testa probabilmente non conosci ancora il sistema di versione Git 😀
Abbiamo già affrontato questi strumenti in un articolo dedicato e abbiamo intenzione di pubblicare un corso che ti permetterà di scoprire come utilizzare questa soluzione.
In fin dei conti tutto quello che serve è un account su GitHub e la volontà di apprendere una metodologia di lavoro che permetterà di controllare ad ogni commit (consideralo come un salvataggio) quali sono state le porzioni di codice aggiunte e corrette scoprendo anche chi è stato a fare queste modifiche.
In questo caso ti ho parlato di Git perché ormai il più diffuso e tra l’altro open source ma la pratica alla quale ti stai avvicinando è il VCS ovvero il Version Control System.
Un sistema per controllare la versione di un determinato file, con la possibilità di collegarlo per riferirsi successivamente a questo in future discussioni comprendendo il lavoro svolto confrontando le modifiche con i messaggi lasciati.
Scoprire come funzionano queste soluzioni ti aiuterà anche a scoprire nuovo codice.
GitHub è molto famoso per essere la piattaforma di riferimento di qualsiasi sviluppatore web (e non) e basta fare qualche piccola ricerca per trovare la soluzione a molti problemi di codice.
Ricapitolando: penso sia arrivato il momento di elencare le applicazioni e le tecnologie che ti potranno essere utili per poter creare questo ambiente di sviluppo.
Il pilastro del web
Parlo di pilastro perché senza i server web non saremo in grado di vivere Internet come lo facciamo oggi.
Reindirizzamenti, domini, moduli e molto altro vengono gestiti da queste applicazioni per permetterci la comodità avere il mondo intero nella finestra di un browser.
Manie di grandezza a parte mi sono riferito al server web al plurale perché non ne esiste soltanto un tipo, ne esistono diversi ma i più diffusi sono Apache e Nginx.
Il primo è quello che utilizzerai con un’applicazione all-in-one mentre il secondo fa spesso parlare di se perché, a seconda della struttura di un progetto, offre delle ottime prestazioni.
Al momento è presto per diventare sistemisti, quello che ti serve sapere è che che grazie a queste soluzioni puoi far interpretare il tuo codice PHP che portai inserire in una cartella del tuo sistema e raggiungere dal browser con la URL http://localhost
.
Non ti fornisco maggiori informazioni perché molto può variare in base alla soluzione che hai scelto di installare, ma è un componente che ti troverai poche volte a dover configurare.
Se sei curioso di scoprire come gestire al meglio un ambiente di sviluppo dedicato a WordPress ti consiglio di seguire uno dei due corsi dedicati a questa piattaforma in base alle tue conoscenze: Apprendi il PHP con WordPress e Crea il tuo primo tema WordPress.
La memoria di qualsiasi sito web
Eccoci a parlare di memorie, o meglio di dati che possiamo salvare da qualche parte e poter richiamare in un secondo momento.
Fai una prova, pensa per un attimo a un sistema di login.
Con HTML e CSS non è possibile salvare una coppia utente/password se non all’interno del proprio codice. Ti do una dritta, considera che questi codici sono passati in chiaro (non criptati) e quindi disponibili al browser che li apre.
Con JavaScript forse hai conosciuto qualche modo per connetterti e salvare le informazioni in uno spazio sicuro, ma con PHP fare queste operazioni è veramente un gioco da ragazzi!
In PHP esistono metodi e funzioni interne che ci fanno connettere a qualsiasi database, addiritura su WordPress basta impostare le credenziali di accesso durante l’installazione e possiamo anche dimenticarci del database.
I database sono incredibilmente utili, ma se dovessimo inserire i contenuti seguendo la sintassi del linguaggio SQL sarebbe veramente noioso!
Ogni comando che lanciamo ha bisogno di molte opzioni per comprendere dove e cosa fare, questo ci porterebbe a dover conoscere la sintassi di questo linguaggio da capo a piedi.
Facciamo un piccolo esempio.
Ho intenzione di sfruttare il linguaggio SQL per salvare all’interno del mio database un articolo dal titolo “Ciao Mondo!” (quanta originalità vero?). Ebbene per fare questo, per prima cosa dobbiamo entrare all’interno del nostro server e accedere al server MySQL in questo modo:
$ mysql -h host -u user -p password
Con il comando precedente siamo entrati nella gestione MySQL e una volta selezionato il database siamo pronti a inserire il nostro articolo con il seguente comando.
INSERT INTO articoli (titolo,autore) VALUES ('Ciao Mondo!','Andrea Barghigiani');
Questa sintassi dovrà essere ripetuta ogni volta che vogliamo inserire un articolo e non ti ho ancora detto che per inserire del testo al suo interno dobbiamo stare molto attenti ai caratteri speciali (come le lettere accentate) che potrebbero rischiare di rompere tutto!
Non è mia intenzione approfondire ulteriormente il linguaggio SQL perché ho una buona notizia per te!
Grazie al linguaggio PHP e alla connessione che questo linguaggio può aprire con i database possiamo utilizzare variabili, funzioni, oggetti e metodi per poter accedere, creare, modificare o cancellare le informazioni in esso contenute.
Insomma, al posto di aprire il terminale e ricordarsi una nuova sintassi, con il PHP possiamo eseguire queste operazioni molto più semplicemente!
Il linguaggio server side più famoso al mondo
Non sono qua a scriverti nuovamente che il PHP viene utilizzato su più del 75% dei progetti web, anche se ops l’ho appena fatto.
La citazione precedente dovrebbe farci riflettere sulle nuove conoscenze che potremo sfruttare nella nostra carriera. Parlando di PHP si sente spesso parlare di CMS come WordPress, Joomla o Drupal ma conoscere questo linguaggio non ti darà accesso soltanto a queste soluzioni, esistono molti altri progetti open source che sono stati realizzati grazie a questo linguaggio.
Per esempio con il PHP sono stati rilasciati dei progetti dedicati al marketing come la possibilità di creare il proprio MailChimp.

Se ti interessa conoscere meglio questi strumenti non devi far altro che commentare questo articolo e saremo più che felici di fornirti altri progetti molto interessanti.
Però ho tirato in ballo questi progetti perché al giorno d’oggi conoscere il PHP significa partecipare in una community molto aperta che rilascia prodotti interessanti e utili, talvolta anche migliori delle soluzioni commerciali.
E non pensare alla partecipazione in una community come a un impegno, molto spesso i contributi più utili non richiedono grosse conoscenze tecniche perché è sufficiente controllare il corretto funzionamento delle feature sviluppate, aprire dei ticket e provare le patch.
Puoi vedere Daniele al WordCamp Torino che spiega come applicare una patch in WordPress e testarne le nuove implementazioni.
Man mano che continuerai nel percorso scoprirai da solo quanto sia forte il senso di comunità all’interno di questi progetti e ti sarà sempre più facile parteciparvi grazie anche allo strumento che ti sto per presentare.
Controlliamo le versioni del nostro codice
Ed eccoci ad affrontare un argomento incredibilmente interessante e utile. Forse per apprezzarlo davvero è necessario fare un esempio…
Hai mai lavorato a più mani su un progetto?
Magari ti è capitato di chiedere un aiuto a un collega per toglierti da un impiccio.
Generalmente in queste situazioni passiamo le credenziali FTP, lui fa le modifiche dal vivo (cowboy coding grrrr), ci contatta per dirci che è tutto a posto e noi siamo pronti alla riunione con il cliente.
La mattina seguente ti svegli, controlli il progetto per essere sicuro al 100% che tutto sia corretto e ti “capita” di avere il programma FTP aperto dove, per errore, gli dici di caricare il file che è presente sul tuo sistema operativo cancellando il lavoro del tuo collega.
A parte il danno di questa situazione e i problemi con il cliente, sono sicuro che ti vergogneresti come un ladro a ricontattare il tuo collega per chiedergli lo stesso aiuto, e ti ritrovi con un sito che funziona a metà.
Non pensare che questo esempio non sia reale, agli inizi della mia carriera sono successi diversi intoppi di questo tipo.
Poi ho conosciuto il Version Control System e mi sono innamorato di Git.
Ci sono alternative anche in questo caso come SVN o Mercurial, ma se vuoi un consiglio dato di cuore vai per Git che è open source e ha una community di grande suporto.
E questa non è una cosa che penso soltanto io, Git è anche la scelta di grandi aziende, pensa che anche Automattic ha il suo profilo pubblico su GitHub.
Comprendere Git non significa soltanto avere un account GitHub e partecipare a progetti open source, questa soluzione può (e deve) essere utilizzata anche per progetti privati.
Il passaggio da una soluzione all-in-one a una più elastica
Le soluzioni all-in-one per la realizzazione di ambienti di sviluppo locali hanno un problema comune: installando quest e applicazioni dobbiamo seguire le loro logiche senza una grande possibilità di manovra.
Prendiamo un esempio che mi è capitato proprio sulla mia pelle.
Durante la creazione del corso Apprendi il PHP con WordPress ho avuto la necessità di mostrare come poter attivare la reportistica degli errori sull’interprete PHP installato sul server.
Per fare questa cosa si può operare seguendo due strade diverse:
- a livello globale andando a modificare il file di configurazione
php.ini
- oppure andando a inserire delle funzioni dedicate all’interno di ogni file
.php
.
La cosa strana che mi è successa lavorando con MAMP è che anche se la prima soluzione funziona egregiamente, non sono stato in grado di attivare la reportistica soltanto su determinati file.
Questa situazione non sarebbe mai successa se avessimo potuto mettere le mani direttamente sul server e alla sua configurazione.

Anche se l’argomento punta i riflettori sull’ecosistema di applicazioni presenti sulla propria macchina, vorrei rassicurarti che non c’è alcuna necessità di diventare dei sistemisti di professione. Mi ripeto perché in fin dei conti si tratta di un articolo che parla di ambienti di sviluppo e qualche nozione su questi ambienti devo pur essere fornite.
Sicuramente conoscere meglio il tuo sistema operativo è un punto a favore per la convivenza con questo strumento di lavoro ma molto spesso basta comprendere a grandi linee il sistema Linux e i comandi che possiamo lanciare da terminale.
Se ci segui da diverso tempo, avrai sicuramente sentito dire che Linux è un ottimo sistema operativo se sei intenzionato a fare lo sviluppatore web, anzi diciamo chiaramente che Linux è presente su circa il 90% dei server web mondiali.
Scoprire questo sistema operativo è sicuramente una mossa vincente perché ti aiuterà moltissimo nei progressi delle tue conoscenze.
Allo stesso tempo capisco bene che lasciare le tue abitudini e Windows, anche se hai passato gli ultimi 10 anni a ottimizzarlo, può essere una sfida molto grande soprattutto se ci affacciamo alla vastissima scelta che offre il mondo open source.
La cosa più bella è che è un’operazione assolutamente non necessaria.
Crescendo nella tua carriera di sviluppatore verrai a conoscenza del concetto di macchina virtuale.
Se non dovesse essere familiare diciamo che con qualsiasi sistema operativo tu utilizzi sia questo Windows, Linux o OSX, tu puoi creare un computer virtuale concedendogli una parte della tua RAM, una porzione del tuo hard disk, della CPU e della scheda video trasformandolo in un computer separato, anche se sarai sempre dentro al tuo.
Sistemi come Parallels e VirtualBox offrono tutti gli strumenti necessari per creare e gestire degli ambienti virtuali, potrai spengere e riavviare queste macchine come desideri.
La cosa ancor più bella è che potrai distruggere la macchina senza pensarci due volte, estremamente comodo quando si fanno le prime modifiche al server web e ci si trova con un sistema da formattare.
Non sto scherzando, ho formattato svariate volte il mio Linux quando cercavo di comprendere il sistema operativo e diventare padrone del server web.
Capita.
Il tallone di Achille delle macchine virtuali risiede che ciascuna necessita di un sistema operativo, di una configurazione particolare, se vogliamo lavorare con i nostri progetti li dobbiamo importare con il copia/incolla…
Insomma, da questo punto di vista questi sembrano una bella faticaccia. E lo sono!
Per fortuna sono arrivate soluzioni come Vagrant e Docker che non soltanto permettono di creare una macchina virtuale ma installano il sistema operativo e tutti i software necessari per iniziare il nostro sviluppo nel tempo minore possibile.
Gli sviluppatori WordPress in ascolto saranno felici di sapere che in Vagrant è presente anche una configurazione pronta con moltissimi strumenti preinstallati dedicati agli sviluppatori che usano questo CMS.
Quello che vedi qua sopra è un webinar che abbiamo fatto un po’ di tempo fa dove abbiamo discusso proprio dell’utilità di uno strumento come Vagrant unito alla configurazione offerta da VVV, praticamente creare ambienti di sviluppo per il proprio WordPress è diventato un gioco da ragazzi.
Un ultimo aspetto che a breve andremo ad approfondire è un ambiente di sviluppo per Node.js, praticamente con il JavaScript adesso possiamo creare un server web che funziona proprio come questo linguaggio.
C’è ambiente e ambiente di sviluppo…
All’inizio di questa sezione abbiamo puntato gli occhi sulla struttura del nostro server, le soluzioni all-in-one sono sicuramente comode ma ci costringono a rispettare delle linee guida restrittive.
La virtualizzazione è la strada più sicura e veloce per creare degli ambienti di sviluppo dedicati, soprattutto dato che oggi abbiamo alcune soluzioni che ci permettono di configurare la macchina virtuale in pochissimo tempo.
Precedentemente abbiamo parlato di Vagrant perché è stato il primo della sua specie, la prima soluzione che ha permesso di condividere le configurazioni di intere macchine virtuali (compresi i software) in singoli file di testo.
Per raggiungere lo stesso risultato prima del suo avvento era necessario condividere il clone di un’immagine disco che pesava tranquillamente diversi GB.
Un altro contendente alla configurazione di questi ambienti di sviluppo virtuali si chiama Docker ed ha una simpaticissima mascotte.

A parte la grafica carina c’è da dire che la mascotte riesce a far capire facilmente la logica alla base di questa soluzione, il trasporto di container.
A differenza di Vagrant dove l’unica cosa che possiamo fare è passare il file di configurazione e non l’intera configurazione della macchina, con Docker questo è possibile e possiamo creare un container che conterrà al suo interno anche tutte le personalizzazioni fatte.
Che tu scelga l’una o l’altra strada è indifferente ma personalmente al momento preferisco Docker grazie soprattutto allo script di Eugenio che integra anche la potente gemma WordMove.
Lo strumento non fa lo scrittore, ma aiuta
Avviciniamoci alla fine di questo articolo con una riflessione nei confronti di uno strumento che stai usando da molto tempo.
Se sei arrivato passo passo come mi sono immaginato io ormai sarà circa un anno, un anno e mezzo che stai utilizzando il tuo editor di codice.
Io spero che tu abbia scelto Visual Studio Code perché la tua esperienza sarà stata migliore ma indipendentemente dalla scelta fatta senti che inizia a starti stretto.
Certo configurarlo per eseguire e ispezionare il linguaggio PHP è stata sicuramente una mossa che ti ha aiutato molto ma man mano che si cresce si sente il bisogno di strumenti diversi.
Magari non hai ancora sentito questa necessità ma al tempo stesso io mi sento in dovere di parlarti di alcune delle caratteristiche interessanti degli IDE.
Quello che leggerai di seguito è raggiungibile sia con NetBeans che con PhPStorm (entrambi IDE molto potenti) ma non approfondirò gli aspetti tecnici.
A parte la colorazione della sintassi o la segnalazione degli errori, cose considerate di default per gli editor di codice, un IDE offre molti altri strumenti che permettono di navigare facilmente all’interno dei file del nostro progetto, suggerire le sintassi andando a caricare direttamente la documentazione del progetto, eseguire debug mettendo in pausa l’esecuzione del codice per scovare i problemi più stupidi.
Altra caratteristica interessante di un IDE è che ti aiuta anche nell’esecuzione del profiling mostrandoti quanto tempo, e dove, è stato speso per eseguire i processi del tuo programma.
La cosa che ho trovato ancor più utile è la possibilità di avviare servizi esterni con pochi semplici passaggi.
Come anche per Visual Studio Code il terminale è uno strumento sempre dispinibile, da qua potrai lanciare la tua macchina Vagrant o il container Docker, gli watcher del tuo Grunt (o Gulp) ed eseguire qualsiasi altra operazione.
Ci sarebbero altre cose che rendono un IDE ancor più interessante rispetto a un classico editor di testo, per esempio quello di poter interrogare un database da una comoda GUI, ma al tempo stesso queste sono tutte cose che scoprirai con il tempo e una volta identificate queste necessità saprai anche cosa cercare nel tuo futuro IDE.
Attenzione, c’è del JavaScript ovunque
Sicuramente c’è una cosa che dobbiamo ammettere un po’ tutti, JavaScript sta vivendo la sua rinascita.
Fino a qualche anno fa questo linguaggio veniva un po’ snobbato cercando di realizzare qualsiasi effetto in CSS ma oggi è più in voga che mai e si stanno aprendo un sacco di opportunità.
Per prima cosa la stessa sintassi di questo linguaggio si è traformata rendendo il suo sviluppo ancora più semplice ma a scatenare l’interesse attorno a questa tecnologia è stata sicuramente la presenza di un server che ci aiuta a gestire le risorse del computer sul quale viene eseguito.
Questo significa che possiamo installare un nostro server ovunque ci sia un device in grado di leggere del codice JavaScript.
Da questi primi aspetti non si sono fatti mancare esempi successivi che hanno facilitato ulteriormente la vita dello sviluppatore andando a includere le varie librerie e framework che ci aiutano a realizzare applicazioni web, mobile e desktop.
Ma la febbre da Node.js ha colpito anche molti altri sviluppatori che sono stati in grado di creare delle applicazioni web che possono essere installate su qualsiasi sistema operativo.
Ancora una volta non sto parlando di fantascienza, come detto anche poco fa applicazioni come Atom o Slack sono state create utilizzando la tecnologia messa a disposizione da Electron; mi sono dimenticato di dirti che si tratta di un altro progetto open source disponibile su GitHub 🙂
Pronto ad espandere il tuo ambiente di sviluppo?
Viste tutte assieme possono sembrare che le cose da scoprire sono fin troppe ma come detto anche in apertura devi fare un passo alla volta. Questa lista non ti avrebbe dovuto spaventare, anzi avrebbe dovuto incuriosirti.
Lo sviluppo web corre a una velocità incredibile, un continuo sviluppo che non era pensabile fino a qualche anno fa eppure la possibilità e gli strumenti che oggi possiamo usare rende sempre più semplice collaborare con altri sviluppatori alla realizzazione dello stesso progetto.
Quando si inizia il percorso all’interno dello sviluppo web bisogna capire la necessità di comprendere che la formazione quotidiana è una componente fondamentale del nostro lavoro, devi allocare del tempo per questa attività.
Soltanto conoscendo le nuove tendenze e soluzioni sarai in grado di valutare se utilizzare o meno la nuova tecnologia, velocizzando di conseguenza il tuo lavoro.
In fin dei conti la carriera di uno sviluppatore è proprio questa, conoscere bene gli strumenti del mestiere in modo da concludere velocemente i progetti dei nostri clienti.
Prima si conclude un lavoro, più tempo abbiamo da dedicare alle nostre attività preferite e questa è la cosa più importante, praticamente è quella per la quale lavoriamo!
Non penso che questo articolo si possa considerare concluso.
Le tecnologie si aggiornano quotidianamente e magari mi sono perso qualcosa per strada. Allo stesso tempo in questo contesto mi sono dedicato alla creazione di ambienti di sviluppo per sviluppatori PHP specializzati in WordPress.
Con questo non voglio tagliar fuori gli altri linguaggi di programmazione e non portare il dovuto rispetto.
Se avessi dovuto trattare anche questi aspetti avrei avuto bisogno di molto altro testo per descrivere le varie situazioni. Sarebbe nato un libro vero e proprio dato che abbiamo ormai superato le 7000 parole 🙂
Infine preferisco parlare di PHP e WordPress perché in base alle statistiche di mercato questi sono le tecnologie usate maggoirmente in ambito lavorativo e tutto questo benessere si traduce anche in altri modi con i quali potrai promuovere la tua professione e conquistare nuovi clienti.
Essere in grado di guadagnarsi da vivere con le proprie passioni è qualcosa di inebriante ed è giusto imporsi che tutti dovremmo avere le giuste soddisfazioni.
Hai degli argomenti che mi vuoi proporre da aggiungere a questo articolo? Ho scritto qualche baggianata e vuoi segnalarmela? Commenta o scrivimi una mail per farmi sapere che ne pensi di questi articoli
Veramente un bell’articolo, pieno di cose vere, mi è piaciuto molto leggerlo, soprattutto per come è stato strutturato.
Grazie mille Carmine per le tue belle parole, onestamente mi è piaciuto molto scriverlo anche a me perché mi ha fatto tornare un po’ indietro nel tempo analizzando come sono cresciuto io nella mia professione. Spero possa essere utile anche agli altri lettori 😉
Ciao, bellissimo articolo.
Sono all’inizio di questo viaggio e mi spaventa sapere che per creare siti bisogna sapere tutti questi linguaggi! Se penso che agli inizi bastava HTML…
Non c’è dubbio che le cose siano migliorate rispetto ai tempi ma dall’altra parte tutto mi sembra esagerato.
Ultimamente ho letto che i prossimi CSS permettaranno l’uso delle animazioni con la trigonometria, eliminando di fatto Javascript e relative librerie. E vero? Sarebbe già una semplificazione…
Grazie
Ciao Max,
grazie mille per i complimenti e scusa nel ritardo di questa risposta ma il tuo commento mi era sfuggito.
Comunque sia io non so se tu sei uno sviluppatore o meno ma a seconda delle tue necessità non è necessario conoscere tutti i linguaggi. Per esempio, io sono uno sviluppatore WordPress e, anche se mi interessano, non conosco bene moltissimi linguaggi di programmazione, librerie o framework.
Conosco Node.js come logica di base ma non so utilizzarlo, allo stesso tempo mi è utilissimo per il mio lavoro perché anche senza conoscelo lo utilizzo con Gulp.
A mio avviso noi sviluppatori (includo anche te dato che hai parlato di HTML) dobbiamo essere bravi a specializzarci in qualcosa senza diventare vittime della sindrome degli shiny object inseguendo l’ultima libreria/framework/soluzione che viene presentata.
Come stavi chiedendo anche i CSS si stanno evolvendo molto e semplificano il nostro lavoro anche se richiedono l’acquisizione di nuove conoscenze. Non molto tempo fa sono state integrate le variabili CSS e ci sono tante altre cose che man mano vengono introdotte.
Io penso che sia bello che il nostro campo sia in continua evoluzione, anche perché separa il vero sviluppatore dagli implementatori che usano soluzioni punta-e-clicca perché questi strumenti non potranno mantenere il passo con le evoluzioni del web.
Ci sarebbe veramente tanto da dire ma preferisco fermarmi qua.
Spero che questa risposta ti sia stata utile e se vuoi approfondire non devi far altro che rispondere ?
A presto,
Andrea
Ciao, complimenti per l’articolo me lo sono letto tutto d’un fiato.
Volevo chiederti un consiglio.
Usavo MAMP come server web in locale, ho conosciuto per caso Local by Flywheel e volevo chiederti cosa ne pensi, se è un prodotto valido oppure meglio docker e vagrant
Avendo un Macbookpro datato volevo trovare il miglior rapporto peso/velocità
grazie
Ciao Alessandro, grazie mille per i complimenti è un piacere sapere che il materiale che produciamo in SkillsAndMore è utile ai nostri lettori.
Venendo al tuo problema, se hai una macchina datata il miglior rapporto peso/velocità lo trovi utilizzando Docker, qua trovi un articolo dove ne parliamo nel dettaglio sviluppando con WordPress.
Personalmente eviterei Local by Flywheel perché è un prodotto di un’azienda di hosting (quindi ci sono alcuni tool per la pubblicazione che sono inutili se non utilizzi quel dato hosting). Ti stavo anche per scrivere che utilizza Vagrant (un sistema di virtualizzazione abbastanza pesante) ma ho visto che non è più così ed utilizza Docker anche lui.
Se vuoi risparmiare sulle risorse però ti consiglio di usare questo script bash che è molto più leggero rispetto a qualsiasi altro programma con GUI ?
Grazie mille per i suggerimenti, ti ringrazio e rilancio allora con il suggrimento di integrare nello script bash per docker il software mailhog (se riesco modificoil tuo e te lo mando da testare) così a testare l’invio mail in un proxy locale e poter gestire anche questo aspetto (io lo sto utilizzando per un plugin che deve mandare mail da WordPress)
ciao.
Ciao Alessandro,
onestamente non ho incluso anche quel container perché non ne ho bisogno però se vuoi fare una PR sei il benvenuto! In questi giorni ho migliorato lo script per usare WordMove con PHP7 (neanche la
latest
al momento lo usa) e ho modificato anche la generazione del filemovefile.yml
in modo che prenda una variabile generata al volo per identificare il percorso in cui si trova WordMove.Ho anche trovato un Gist che ti aiuterà nella configurazione ?
Se ci riesci prova ad aggiungere una domanda allo script in modo che l’installazione del container di mailhog sia opzionale come succede già per phpMyAdmin e lo stesso WordMove.
In futuro vorrei sostituire la versione di WordMove (ma forse anche WordPress stesso) con quella
alpine
in modo che i container generati siano circa un terzo della grandezza odierna, magari metto anche questo come domanda così ogni utente può scegliere che fare.Ciao,intanto complimenti per l’articolo, però volevo chiederti una integrazione.
Io sono un ex programmatore che vorrebbe realizzare un semplice sito web con un database, però vorrei sviluppare senza wordpress e cose varie.
Conosco tutti i linguaggi di programmazione dell’articolo però è’ un pò che non programmo e la domanda è : cosa devo istallare ed in che sequenza ?
esempio:
Vagrant e Virtual Machine: Server: es. Apache
Database: MySql
IDE: NetBeans.
Browser: Firefox.
Grazie per la risposta, Marco.
Ciao Marco,
se conosci già i vari linguaggi di programmazione e non vuoi sbatterti con WordPress puoi tranquillamente installare nel tuo computer un sistema AMP (Apache – MySQL – PHP) pacchettizzato. Ne esistono di diverse salse ma io ho esperienza soltanto con MAMP, esiste sia per Windows che per Mac.
Se poi sei in ambiente Linux puoi sempre fare una veloce ricerca “come installare LAMP su [distro Linux che usi]” e troverai centinaia di tutorial.
In bocca al lupo!