Configurazione di un MacBook Pro 2017 per lo sviluppo di WordPress
Giovedì scorso è stata dura. Se dovessi spiegare tutto quello che è successo sia con il mio computer che con la mia vita personale, penseresti che mi sto inventando tutto.
Sarebbe come l’equivalente adulto di "il mio cane ha mangiato [l’ultimo mese di] i miei compiti". O qualcosa del genere.
In primo luogo, per quanto riguarda la mia vita personale, questo non ha nulla a che fare con il benessere della mia famiglia. Solo una debacle locale di aspettare due ore durante la giornata lavorativa per ottenere qualcosa da fare. Irrilevante a parte, sai, prendersi una grossa fetta di una giornata lavorativa.
In secondo luogo, la questione del computer può essere riassunta facilmente: c’è stata una serie completamente patetica di eventi sfortunati che hanno portato alla sua scomparsa. In sostanza, " Ho ucciso la macchina. “
Quindi ho dovuto ordinare una sostituzione in breve tempo (che non è qualcosa che volevo fare), ho dovuto consegnare il giorno successivo prima di mezzogiorno (che non è qualcosa per cui mi piace pagare) né è qualcosa che avevo pianificato come spesa aziendale per almeno un altro anno o due.
Ma eccoci qua.
E questo mi porta a scrivere questo post: È una panoramica del processo che seguo e delle applicazioni che installo ogni volta che configuro una nuova macchina e di come la configuro.
Non sarà incredibilmente dettagliato, ma è un punto di partenza per se ciò dovesse accadere di nuovo o per qualsiasi sviluppatore che cerca di configurare una nuova macchina o riutilizzare una macchina esistente.
MacBook Pro per lo sviluppo di WordPress
Ho pensato a come raggruppare tutte le applicazioni insieme, come raggruppare la mia configurazione e come raggruppare le varie configurazioni in un modo che sembra fluire bene.
E penso che sia più semplice elencare tutto ciò che uso, collegarmi a cose dove posso e quindi fornire i dettagli sui vari passaggi che utilizzo. Quindi è quello che ho fatto e quello che puoi aspettarti.
Eccoci qui.
Le mie applicazioni
Dopo aver eseguito tutti gli aggiornamenti necessari e aver riavviato la macchina, inizio a esaminare, installare e configurare tutti i miei strumenti.
L’elenco seguente è un elenco completo di tutto ciò che installo. Alcuni di loro sono applicazioni gratuite, altri no. Ho provato a fornire una breve descrizione di ciò che ciascuno fa, ma il tuo chilometraggio può variare se scegli di installarli uno o tutti.
- Atomo. Anche se lo usavo come IDE generale, ora lo uso come editor di testo, editor di markdown e così via.
- Barista 3. Questa è la mia applicazione preferita per ripulire la barra dei menu del mio Mac. Aiuta a ridurre al minimo le distrazioni assicurandomi di avere ancora accesso a tutte le app di cui ho bisogno rapidamente.
- Meglio rinominare 9. Sono compulsivo su come organizzo ed eseguo il backup di foto e video, quindi utilizzo questa app per utilizzare i dati EXIF dei media per organizzarli in base al timestamp.
- CardHop. Questa è un’applicazione più recente per il mio arsenale (almeno al momento di questo post) ed è semplicemente usata perché mi sento facilmente frustrato dall’app Contatti di Apple e perché penso che Flexibits scriva un buon software.
- CleanMyMac. MacPaw è un’altra azienda che produce un buon software. Lo eseguo alla fine di ogni settimana per assicurarmi di sbarazzarmi di molti file spazzatura (generalmente vari file di cache da varie applicazioni) accumulati nel corso della settimana. Inoltre, aiuta nel processo di disinstallazione se hai installato qualcosa e stai cercando di rimuoverlo completamente.
- CodeKit. Ho scritto di questa app in diversi post. Lo consiglio ancora, ma dipende dal progetto. Uso anche strumenti come Gulp e vari pacchetti (che tratterò più avanti in questo post).
- Dropbox. Questo è per la sincronizzazione generale dei file tra applicazioni (come Transmit) e la condivisione di file con designer, familiari e amici.
- Droplr. Questa è diventata la mia applicazione di fatto per condividere immagini, screencast e altri media con i colleghi. È veloce, fornisce statistiche utili, è minimo e vale l’abbonamento annuale.
- Evernote. Prendo molti appunti usando il mio iPad e Notability e nessun’altra app ha ancora la ricerca del riconoscimento della grafia oltre a Evernote.
- ExifPurge. Questo è utile ogni volta che vuoi condividere file multimediali con altri, ma non voglio che abbiano la possibilità di estrarre dati su dove o quando il file multimediale è stato girato.
- Fantastico. È la migliore applicazione di calendario che ho usato. Ho già provato a rompere con esso, ma continuo a tornare. È ancora un altro prodotto Flexibits.
- Gemelli. Lo uso insieme a Better Rename 9 (di cui ho parlato sopra). In breve, rimuove eventuali duplicati). Anche se spesso non ne ho molti, è bello assicurarsi di rimuovere quelli che ho prima di archiviarli nella memoria esterna.
- Freno a mano. Anche se sono un fan di Super265 (che intendevo più avanti in questo articolo), a volte sono meno preoccupato per la dimensione del file che per la codifica in un codec diverso. E quando questo è il caso, il freno a mano è quello che uso.
- Birra fatta in casa. Non l’ho sempre usato, ma una volta iniziato, è diventato più difficile non usarlo soprattutto quando si tratta di strumenti di sviluppo (che tratterò di seguito). È un gestore di pacchetti, ma lo trovo estremamente utile quando si lavora con strumenti relativi allo sviluppo.
- ImageOptim. Rimuove i metadati, risparmia spazio, comprime le immagini e lo fa senza perdite. Ottimo per chiunque utilizzi immagini nei propri post di blog, documenti o semplicemente condivida molte immagini con altri che non hanno molta larghezza di banda.
- Caleidoscopio. Ogni sviluppatore che lavora con un team o lavora su software open source ha bisogno di un buon strumento di differenziazione. Alcuni preferiscono la riga di comando, altri preferiscono una GUI. Sono in quest’ultimo campo e questa è sempre stata la mia applicazione preferita.
- Mac DVD Ripper. Se hai dei DVD di cui desideri eseguire il backup o hai dei bambini e stai cercando di caricare un iPad con i video, questa applicazione lo rende il più semplice possibile: seleziona la parte del DVD da rippare e poi lasciala fare le sue cose.
- Mac VideoRipper Pro. Questo è il modo più semplice per scaricare video dal Web da fonti come YouTube. È ottimo per quando vuoi guardare discorsi, presentazioni o video offline.
- PhpStorm. Il mio IDE preferito e preferito per lo sviluppo (nonostante il suo nome, è anche valido per tutti i linguaggi che funzionano in combinazione con esso come HTML, JavaScript, CSS o i suoi preprocessori e così via).
- postino. Se lavori con qualsiasi API, in particolare API REST, Postman è solido nell’aiutarti a testare la tua API o quella di qualcun altro prima di provare a integrare le chiamate all’interno della tua applicazione.
- ScreenFlow. Questa è la migliore app per ogni volta che devi fare un serio screencasting di alto livello.
- Sequel Pro. Questo è il mio front-end di database preferito.
- lento. A questo punto, non credo che questa app abbia bisogno di alcun tipo di descrizione. È così che io e il mio team ci teniamo in contatto, integriamo i nostri servizi e, in generale, svolgiamo il lavoro.
- Skitch. Questo è utile per annotare rapidamente le immagini, anche se Droplr non è male neanche in questo. Dipende da cosa ti serve, davvero, ma lo consiglio comunque per determinati casi d’uso.
- Spotify. Anche se abbiamo un abbonamento Apple Music, questa è la mia app preferita per i servizi di streaming. Le sue funzionalità di scoperta e la sua capacità di generare playlist sulle mie abitudini di ascolto sono ciò che ha reso difficile smettere. Quindi non lo faccio.
- Notifiche Spotify. Una solida applicazione per dare notifiche su quale canzone sta suonando insieme alla sua copertina dell’album, ecc. È una caratteristica mancante di Spotify e fa un buon lavoro portandolo al punto di partenza per le cose che iTunes offre.
- Super265. Anche se sono un fan di Handbrake, ho scoperto che questa particolare app – ed è più recente, di certo – fa un lavoro eccezionale nel prendere un video e comprimerlo (a volte tramite il 50%) con una qualità senza perdite.
- Cose. Senza dubbio, la mia app "fai le cose" preferita e la sua integrazione con i promemoria di Apple e Siri insieme alla sincronizzazione di iOS lo rendono ancora migliore.
- Torre. Nell’ultimo anno mi sono sentito sempre più a mio agio con Git sulla riga di comando, ma ci sono ancora progetti su cui sto lavorando su cui ho usato Tower dal commit iniziale. È la mia GUI Git preferita.
- Trasmetti. Il mio client S/FTP preferito.
- TweetBot. Il mio client Twitter preferito (e la sua integrazione con Pocket e Droplr lo rende ancora migliore) sia su macOS che su iOS.
- uTorrent. Se devi scaricare qualcosa tramite torrent, questo è il client che ti consiglio.
- Versioni. Se hai bisogno di una solida GUI di Subversion (ad esempio se stai al passo con l’avanguardia di WordPress), questa mi piace molto. Cornerstone è una buona alternativa, ma non la uso più come una volta e non uso Subversion per molto, quindi la semplicità di Versions è ciò che mi ha conquistato.
- VLC. Ogni tanto ci sono alcuni file video nel formato, diciamo, mkv che non voglio preoccuparmi di convertire. Questo è un fantastico lettore video open source (anche per una varietà di formati).
- Scrivere vento. Questo è il mio strumento macOS e iOS preferito per utilizzare una VPN durante la navigazione sul Web. Il suo prezzo è giusto e le app (e l’estensione del browser) sono solide.
- codice X. La piattaforma di sviluppo proprietaria di Apple che è necessaria anche per eseguire una serie di cose che vedrai più avanti in questo post.
Cerco di mantenere le cose snelle, ma ci sono ragioni per cui uso le applicazioni che faccio. E nonostante i miei tentativi di essere il più sicuro possibile, ci sono alcune applicazioni che utilizzo per ragioni diverse dalla "semplice archiviazione".
Quindi, sai, il solito disclaimer sull’essere attenti a ciò che conservi e a ciò che usi per conservarlo. Sii intelligente su come stai salvando le informazioni sensibili.
Strumenti specifici per lo sviluppo
Il seguente elenco di strumenti non è necessariamente esaustivo. Cioè, alcuni progetti richiedono determinati pacchetti che semplicemente non hanno senso elencare qui.
Invece, questo è l’insieme generale di strumenti che utilizzo per il mio ambiente di sviluppo. Copre tutto, dal font che preferisco all’IDE di mia scelta e tutto il resto.
- Codice Fira. Questo è il mio font preferito per qualsiasi IDE o editor di testo.
- Tema materiale. Questo è completamente soggettivo (come lo sono la maggior parte delle cose in questo elenco), ma ho scoperto che questo è il tema con cui sono rimasto più a lungo quando utilizzo PhpStorm.
- PHP. Il runtime necessario per lo sviluppo di WordPress e PHP in generale. Avrò le istruzioni di configurazione per questo (e altri strumenti) più avanti in questo documento su come installarlo utilizzando Homebrew per semplificare la gestione del pacchetto.
- Compositore. Se stai lavorando con varie dipendenze nei tuoi progetti, dovresti usare Composer per gestire quei pacchetti.
- WP-CLI. Questa è una fantastica interfaccia a riga di comando per WordPress che è in fase di sviluppo davvero fantastico che rende il lavoro con WordPress a livello di riga di comando non solo possibile ma anche facile.
- Unità PHP. Se hai intenzione di scrivere unit test per il tuo progetto, allora questo è il framework che consiglio.
- Sniffer di codice PHP. Questa è la libreria per assicurarti che il tuo codice segua uno degli standard che elenco nella voce successiva. Ti assicura di seguire le linee guida corrette e di scrivere le cose in modo corretto.
- Standard di codifica PHP. Esistono due tipi generali di standard di codifica che probabilmente utilizzerai (se stai leggendo questo blog) e sono il PSR o il WPCS. A seconda di quello che usi dipenderà da come li installi. Indipendentemente da ciò, ciascuno richiede l’installazione prima di PHP Code Sniffer.
- cameriere. Ho scritto di altri strumenti pronti all’uso come MAMP in altri post, ma ho usato Valet per la metà migliore del 2017 e davvero, davvero "funziona". È davvero facile da usare e rende la creazione di nuovi siti e progetti un gioco da ragazzi.
- Xdebug. Se stai scrivendo codice lato server (e se stai scrivendo PHP, lo sei), allora c’è di più nel debug di echo e var_dump. Entra in Xdebug.
- Nodo. Questo è un altro gestore di pacchetti per l’utilizzo di una varietà di librerie JavaScript differenti. Se hai intenzione di fare qualcosa con Sass, Less, JavaScript, Image Compression e così via, ti consiglio di incorporarlo nel tuo flusso di lavoro. Vedi anche questo post.
Una volta che hai installato tutto questo, c’è ancora la configurazione che deve essere eseguita. Tratterò anche quello.
Configurazione dei miei strumenti di sviluppo
Come accennato in precedenza, molti dei pacchetti che installo a questo punto vengono eseguiti tramite Homebrew, quindi questo presuppone che tu abbia installato Homebrew.
Quindi il primo passo sarà l’installazione di Homebrew. Tutto dopo è esattamente ciò che è necessario per entrare nel tuo terminale per installarlo e nient’altro.
Se ci sono note su un particolare pacchetto, lo incorporerò nel succo associato.
Una nota sull’homebrew
Il motivo per cui consiglio di utilizzare un gestore di pacchetti è che rende molto, molto più semplice installare e disinstallare pacchetti particolari quando ne hai bisogno.
Rende le cose più, ehm, gestibili. E mantiene le cose un po’ più pulite sul tuo sistema (per coloro che diventano [stranamente] compulsivi per quella roba).
1 Installazione di Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2 PHP
$ brew tap homebrew/php
$ brew install homebrew/php/php70
3 Compositore
4 WP-CLI
5 Unità PHP
6 Sniffer di codice PHP
$ brew install php-code-sniffer
7 cameriere
$ composer global require laravel/valet
$ export PATH="$PATH:$HOME/.composer/vendor/bin"
$ valet install
Una volta installato Valet, potrebbe essere necessario aggiungerlo al tuo percorso (che è ciò che vedi a partire dalla seconda riga. Quindi lo installi ufficialmente come puoi vedere sulla terza riga.
8 Xdebug
$ brew install homebrew/php/php70-xdebug
Se stai usando Valet, dovrai anche aggiungere alcune righe di configurazione in modo da poter usare correttamente Xdebug con Valet insieme a PhpStorm.
Per farlo, aggiungi le seguenti righe a /usr/local/etc/php/7.0/conf.d/ext-xdebug.ini :
xdebug.remote_enable=1
xdebug.remote_port=9001
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
Ovviamente, la tua idekey e la posizione del file di configurazione varieranno in base alla versione di PHP che hai installato e all’IDE che stai utilizzando.
9 Nodo
10 MySQL
$ brew install mysql
$ brew services start mysql
Estensioni del browser
Di seguito ho incluso solo alcune delle estensioni del browser che utilizzo. Questi sono principalmente per scopi di sviluppo o per eliminare le cazzate dal web che non sopporto di vedere ogni volta che lo navigo:
- Blocco pubblicità di Facebook. Non uso molto Facebook, ma quando lo faccio voglio un po’ di distrazione possibile.
- Schermata fantastica. Per quando devi scattare una foto di qualcosa da inviare a qualcun altro, ovviamente. Funziona bene con Droplr.
- Buffer. Mi piace bufferizzare molti dei miei tweet e questo lo rende facile.
- ColorZilla. Quando si acquisiscono i colori per un’immagine, un design o un tema esistente, questo aiuta a ottenere i valori RGB ed esadecimali.
- Fantasma. Le persone hanno sentimenti contrastanti su questo (e per me va bene), ma questo serve per interrompere la pubblicità e il monitoraggio.
- Grammaticamente. Per essere sicuro che sto effettivamente facendo un lavoro decente nel costruire frasi e scrivere parole.
- Unisci finestre. Innanzitutto, avevamo troppe finestre, quindi abbiamo introdotto la navigazione a schede. Ora abbiamo solo troppe finestre con troppe schede. Questo unisce tutte le finestre in un’unica finestra.
- Rimuovere W3Schools. Rimuove W3Schools dai risultati di ricerca di Google in modo da poter ottenere risultati migliori.
- Ordinatore di schede. Quando le tue schede perdono il controllo tra Asana, Trello, Pocket, Reddit e così via, questo aiuta a organizzarle per tipo.
- Acceleratore. Funziona in combinazione con il servizio Web Throttle per creare indirizzi e-mail usa e getta (che puoi ancora utilizzare per leggere le e-mail) per servizi con cui non vuoi necessariamente tenere il passo.
- Toby per Chrome. Ottimo per salvare e sessioni di schede di gruppo (se scegli di non utilizzare Tab Sorter) in modo da poter tornare a lavorare su qualunque cosa stavi facendo quando ti sei allontanato, riavviato o qualsiasi altra cosa.
- Aiutante di Xdebug. Funziona in combinazione con Xdebug per aiutare a eseguire il debug, profilare e tracciare le prestazioni e il codice in un’applicazione Web locale.
Ci sono altre estensioni che uso per applicazioni come 1Password e Pocket ma non sembrano essere così rilevanti, quindi ho deciso di escluderle soprattutto perché quei servizi sono meno orientati allo sviluppo.
La fine
Perché le estensioni del mio browser sono ultime? Lo so, sembra un po’ sciocco: non farebbero parte, diciamo, del mio set standard di applicazioni?
In poche parole, ce ne sono alcuni che sono più legati allo sviluppo, quindi volevo che arrivassero dopo aver coperto tutto il resto.
In un’altra nota, ci sono momenti in cui devo cambiare le cose dall’usare, diciamo, PHP7 a PHP5.6 a seconda di un progetto. Ci sono anche momenti in cui utilizzo altre librerie come PHPMD, ecc., che non ho trattato qui perché sono strumenti specifici del progetto.
Ma dalla configurazione del mio sistema, questa è la panoramica generale. Quindi ora ho un riferimento documentato di ciò che devo installare dal Mac App Store, da vari punti del Web, i comandi che devo eseguire e come posso ripristinare e ripristinare rapidamente una macchina se qualcosa dovesse rompersi di nuovo.
Detto questo, mi chiedo se non valga la pena acquistare una macchina di backup economica per ogni evenienza.
Ma non lo so. Questo è un altro post.
Epilogo
Se stai cercando un altro post da seguire che sia simile anche se con maggiori dettagli per quanto riguarda alcuni strumenti, ti consiglio di dare un’occhiata al post di Carl Alexander.