Konfigurera en 2017 MacBook Pro för WordPress-utveckling
Förra torsdagen var jobbig. Om jag skulle förklara allt som gick ner både med min dator och mitt privatliv, skulle du tro att jag hittade på det hela.
Det skulle vara som den vuxna motsvarigheten till "min hund åt [den sista månaden av] mina läxor." Eller något liknande.
För det första, när det gäller mitt personliga liv, har detta ingenting att göra med min familjs välbefinnande. Bara ett lokalt debacle att vänta två timmar under arbetsdagen för att få något hanterat. Irrelevant annat än, du vet, att ta en rejäl bit av en arbetsdag.
För det andra kan alla datorgrejer lätt sammanfattas: Det var en helt patetisk serie av olyckliga händelser som ledde till dess bortgång. I huvudsak, " Jag dödade bilen. "
Så jag var tvungen att beställa en ersättare i kort ordning (vilket inte är något jag ville göra), var tvungen att leverera nästa dag före lunchtid (vilket inte är något jag gillar att betala för) och det är inte heller något som jag hade planerat som en affärsutgift i minst ytterligare ett eller två år.
Men här är vi.
Och detta får mig att skriva det här inlägget: Det är en genomgång av processen jag följer och av de applikationer jag installerar när jag ställer in en ny maskin och hur jag konfigurerar den.
Det kommer inte att vara otroligt detaljerat, men det är en startplats för om detta någonsin händer igen eller för någon utvecklare som vill sätta upp en ny maskin eller återanvända en befintlig maskin.
MacBook Pro för WordPress-utveckling
Jag har funderat på hur man grupperar alla applikationer, hur man grupperar mina inställningar och hur man grupperar de olika inställningarna på ett sätt som verkar flyta bra.
Och jag tror att det är enklast att bara lista ut allt jag använder, länka till saker där jag kan och sedan ge detaljer om de olika stegen jag använder. Så det är vad jag har gjort och vad du kan förvänta dig.
Nu kör vi.
Mina applikationer
Efter att ha kört alla nödvändiga uppdateringar och startat om maskinen börjar jag gå igenom och installera och konfigurera alla mina verktyg.
Följande lista är en omfattande lista över allt jag installerar. Vissa av dem är gratisapplikationer, andra är det inte. Jag har försökt ge en kort beskrivning av vad var och en gör, men din körsträcka kan variera om du väljer att installera någon eller alla av dem.
- Atom. Även om jag brukade använda detta som en allmän IDE, använder jag den nu som en textredigerare, markdown-redigerare och så vidare.
- Bartender 3. Det här är mitt favoritprogram för att rensa upp min Mac-menyrad. Det hjälper till att hålla distraktioner till ett minimum samtidigt som jag ser till att jag fortfarande har tillgång till alla appar jag behöver snabbt.
- Bättre byta namn 9. Jag är tvångsmässig när det gäller hur jag organiserar och säkerhetskopierar mina foton och videor så jag använder den här appen för att använda medias EXIF-data för att organisera den baserat på tidsstämpeln.
- CardHop. Det här är en nyare applikation till min arsenal (åtminstone vid tidpunkten för detta inlägg) och den används helt enkelt för att jag lätt blir frustrerad över Apples kontaktapp och för att jag tycker att Flexibits skriver bra mjukvara.
- CleanMyMac. MacPaw är ett annat företag som producerar bra mjukvara. Jag kör detta i slutet av varje vecka för att se till att jag blir av med en massa skräp (vanligtvis olika cachefiler från olika applikationer) som har samlats in under veckan. Vidare hjälper det i avinstallationsprocessen om du har installerat något och du vill ta bort det helt.
- CodeKit. Jag har skrivit om den här appen i ett antal inlägg. Jag rekommenderar det fortfarande, men det beror på projektet. Jag använder också verktyg som Gulp och olika paket (som jag tar upp längre fram i detta inlägg).
- Dropbox. Detta är för allmän filsynkronisering mellan applikationer (som Transmit) och för att dela filer med designers och familj och vänner.
- Droplr. Detta har blivit min de-facto-applikation för att dela bilder, skärmsändningar och andra medier med kamrater. Det är snabbt, ger användbar statistik, är minimalt och är värt den årliga prenumerationen.
- Evernote. Jag gör många anteckningar med min iPad och Notability och ingen annan app har ännu sökningen för handskriftsigenkänning än Evernote.
- ExifPurge. Detta är användbart när du vill dela media med andra, men jag vill inte att de ska ha möjlighet att extrahera data om var eller när media spelades in.
- Fantastiskt. Det är den bästa kalenderapplikationen jag har använt. Jag har försökt bryta med det förut, men jag återkommer hela tiden. Det är ännu en Flexibits-produkt.
- Tvillingarna. Jag använder detta tillsammans med Better Rename 9 (som jag täckte ovan). Kort sagt, det tar bort alla dubbletter). Även om jag inte ofta har många, är det trevligt att se till att jag tar bort alla jag har innan jag förvarar dem i extern lagring.
- Handbroms. Även om jag är ett fan av Super265 (vilket jag menade senare i den här artikeln), är jag ibland mindre oroad över filstorleken än om att koda till en annan codec. Och när så är fallet är det handbroms jag använder.
- Hembrygd. Jag har inte alltid använt det här, men när jag väl började blev det svårare att inte använda det, särskilt när det gäller utvecklingsverktyg (som jag kommer att ta upp nedan). Det är en pakethanterare men jag tycker att den är extremt användbar när jag arbetar med utvecklingsrelaterade verktyg.
- ImageOptim. Tar bort metadata, sparar utrymme, komprimerar bilder och gör det på ett förlustfritt sätt. Perfekt för alla som använder bilder i sina blogginlägg, dokument eller helt enkelt delar massor av bilder med andra som inte har mycket bandbredd.
- Kalejdoskop. Varje utvecklare som arbetar med ett team eller arbetar med programvara med öppen källkod behöver ett bra diff-verktyg. Vissa föredrar kommandoraden, andra föredrar ett GUI. Jag är i det senare lägret och det här har alltid varit min favoritapplikation.
- Mac DVD Ripper. Om du har DVD-skivor som du vill säkerhetskopiera eller om du har barn och vill ladda upp en iPad med videor, gör den här applikationen det så enkelt som möjligt: Välj vilken del av DVD:n som ska rippas och låt det sedan göra sin grej.
- Mac VideoRipper Pro. Detta är det enklaste sättet att ladda ner videor från webben från källor som YouTube. Det är bra när du vill titta på föredrag, presentationer eller videor offline.
- PhpStorm. Min föredragna och favorit-IDE för utveckling (trots namnet är den också stabil för alla språk som fungerar tillsammans med den som HTML, JavaScript, CSS eller dess förprocessorer och så vidare).
- Brevbärare. Om du arbetar med några API:er, särskilt REST API:er, är Postman en solid på att hjälpa dig testa ditt eller någon annans API innan du försöker integrera anrop till det i din applikation.
- ScreenFlow. Det här är den bästa appen för när du behöver göra några seriösa screencasting på hög nivå.
- Sequel Pro. Detta är mitt föredragna databasgränssnitt.
- Slack. Vid det här laget tror jag inte att den här appen behöver någon typ av beskrivning. Det är hur mitt team och jag håller kontakten med varandra, integrerar våra tjänster och i allmänhet får jobbet gjort.
- Skitch. Det här är bra för att snabbt kommentera bilder, även om Droplr inte heller är dålig på detta. Det beror på vad du behöver, men jag rekommenderar det ändå för vissa användningsfall.
- Spotify. Även om vi har ett Apple Music-medlemskap också, är detta mitt val app för streamingtjänster. Dess upptäcksfunktioner och dess förmåga att skapa spellistor på mina lyssningsvanor är det som har gjort det svårt att sluta. Så det gör jag inte.
- Spotify-aviseringar. En solid applikation för att ge meddelanden om vilken låt som spelas tillsammans med dess albumomslag, etc. Det är en saknad funktion i Spotify och gör ett bra jobb för att få den att fullborda saker som iTunes erbjuder.
- Super265. Även om jag också är ett fan av Handbrake, har jag upptäckt att just den här appen – och den är nyare, förvisso – gör ett fantastiskt jobb med att ta en video och komprimera den (ibland via 50 %) med förlustfri kvalitet.
- Saker. Helt klart, min favoritapp för "få saker gjorda" och dess integration med Apples påminnelser och Siri tillsammans med iOS-synkronisering gör det hela bättre.
- Torn. Under det senaste året eller så har jag blivit mer och mer bekväm med Git på kommandoraden, men det finns fortfarande projekt jag jobbar på som jag har använt Tower sedan den första commit. Det är min föredragna Git GUI.
- Sänd. Min föredragna S/FTP-klient.
- TweetBot. Min föredragna Twitter-klient (och dess integration med Pocket och Droplr gör det hela bättre också) på både macOS och iOS.
- uTorrent. Om du måste ladda ner något via torrents är det här klienten jag rekommenderar.
- Versioner. Om du behöver ett solidt Subversion-gränssnitt (som om du hänger med i WordPress) så gillar jag verkligen det här. Cornerstone är ett trevligt alternativ, men jag använder det inte lika mycket som jag brukade och jag använder inte Subversion för mycket så Versions enkelhet är det som har vunnit mig.
- VLC. Då och då finns det vissa videofiler i formatet, säg, mkv som jag inte vill bry mig om att konvertera. Detta är en fantastisk videospelare med öppen källkod (även för en mängd olika format).
- Windscribe. Det här är mitt favoritverktyg för macOS och iOS för att använda ett VPN när du surfar på webben. Dess pris är rimligt och apparna (och webbläsartillägget) är solida.
- Xcode. Apples egenutvecklade utvecklingsplattform som också behövs för att ett antal saker ska fungera som du kommer att se längre fram i det här inlägget.
Jag försöker hålla saker mager, men det finns anledningar till att jag använder de applikationer som jag gör. Och trots mina försök att vara så säker som möjligt, finns det vissa applikationer som jag använder av andra skäl än att "bara lagra saker."
Så, du vet, den vanliga friskrivningen om att vara försiktig med vad du lagrar och vad du använder för att lagra det. Var smart med hur du sparar känslig information.
Utvecklingsspecifika verktyg
Följande lista över verktyg är inte nödvändigtvis uttömmande. Det vill säga att vissa projekt kräver vissa paket som helt enkelt inte är meningsfulla att lista här.
Istället är detta den allmänna uppsättningen verktyg jag använder för min utvecklingsmiljö. Den täcker allt från vilket typsnitt jag föredrar till den IDE som jag väljer och allt däremellan.
- Fira kod. Detta är mitt favoritteckensnitt för alla IDE- eller textredigerare.
- Material tema. Detta är helt subjektivt (liksom det mesta i den här listan) men jag har tyckt att detta är det tema jag har hållit fast vid längst när jag använder PhpStorm.
- PHP. Körtiden som behövs för WordPress och allmän PHP-utveckling. Jag kommer att ha konfigurationsinstruktioner för detta (och andra verktyg) senare i det här dokumentet om hur man installerar det med Homebrew för att göra det enklare att hantera paketet.
- Kompositör. Om du arbetar med olika beroenden i dina projekt, bör du använda Composer för att hantera dessa paket.
- WP-CLI. Detta är ett fantastiskt kommandoradsgränssnitt för WordPress som är under en riktigt fantastisk utveckling som gör att arbeta med WordPress på kommandoradsnivå inte bara möjligt utan också enkelt.
- PHPUnit. Om du ska skriva enhetstester för ditt projekt, så är detta ramverket jag rekommenderar.
- PHP Code Sniffer. Det här är biblioteket för att se till att din kod följer någon av standarderna jag listar i nästa objekt. Det ser till att du följer korrekta riktlinjer och skriver saker ordentligt.
- PHP kodningsstandarder. Det finns två allmänna typer av kodningsstandarder som du sannolikt kommer att använda (om du läser den här bloggen) och det är antingen PSR eller WPCS. Beroende på vilken du använder beror på hur du installerar dem. Oavsett vilket kräver var och en att PHP Code Sniffer installeras först.
- Betjänad. Jag har skrivit om andra out-of-the-box-verktyg som MAMP i andra inlägg, men jag har använt Betjänad under den bättre hälften av 2017 och det verkligen, verkligen "bara fungerar." Det är verkligen lätt att arbeta med och gör det enkelt att skapa nya webbplatser och projekt.
- Xdebug. Om du skriver kod på serversidan (och om du skriver PHP så gör du det), så finns det mer att felsöka än echo och var_dump. Ange Xdebug.
- Nod. Detta är en annan pakethanterare för att använda en mängd olika JavaScript-bibliotek. Om du ska göra något med Sass, Less, JavaScript, Image Compression, och så vidare, rekommenderar jag att du integrerar det i ditt arbetsflöde. Se även detta inlägg.
När du har installerat allt detta finns det fortfarande konfiguration som måste ske. Jag täcker det också.
Konfigurera mina utvecklingsverktyg
Som nämnts tidigare görs många av paketen som jag installerar vid denna tidpunkt via Homebrew så detta förutsätter att du har Homebrew installerat.
Så det första steget är att installera Homebrew. Allt efter det är precis vad som behövs för att komma in i din terminal för att installera den och inget mer.
Om det finns några anteckningar kring ett visst paket kommer jag att infoga det i den tillhörande kärnan.
En anteckning om Homebrew
Anledningen till att jag rekommenderar att du använder en pakethanterare är att det gör det mycket, mycket lättare att installera och avinstallera vissa paket när du behöver dem.
Det gör saker mer, ahem, hanterbara. Och det håller saker och ting lite renare på ditt system (för de som blir [märkligt] tvångsmässiga av det där).
1 Installera 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 Kompositör
4 WP-CLI
5 PHPUnit
6 PHP Code Sniffer
$ brew install php-code-sniffer
7 Betjänad
$ composer global require laravel/valet
$ export PATH="$PATH:$HOME/.composer/vendor/bin"
$ valet install
När Valet väl har installerats kan du behöva lägga till den i din sökväg (vilket är vad du ser från den andra raden. Sedan installerar du den officiellt som du kan se på den tredje raden.
8 Xdebug
$ brew install homebrew/php/php70-xdebug
Om du använder Betjänad, kommer du också att behöva lägga till några rader med konfiguration så att du kan använda Xdebug med Betjänad korrekt tillsammans med PhpStorm.
För att göra det, lägg till följande rader till /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
Naturligtvis kommer din idekey och konfigurationsfilens plats att variera beroende på vilken version av PHP du har installerat och vilken IDE du använder.
9 Nod
10 MySQL
$ brew install mysql
$ brew services start mysql
Webbläsartillägg
Jag har bara inkluderat några av webbläsartilläggen jag använder nedan. Dessa är främst för utvecklingsändamål eller för att klippa skiten ur webben som jag inte tål att se när jag surfar på den:
- Facebook annonsblockerare. Jag använder inte Facebook så mycket, men när jag gör det vill jag ha lite distraktion som möjligt.
- Fantastisk skärmdump. För när du behöver ta en bild av något för att skicka till någon annan, förstås. Fungerar bra med Droplr.
- Buffert. Jag gillar att buffra många av mina tweets och det gör det enkelt att göra det.
- ColorZilla. När du tar tag i färger för en befintlig bild, design eller tema, hjälper detta att få RGB- och hex-värdena.
- Spökeri. Folk har blandade känslor om detta (och det är bra för mig), men det här är att sluta annonsera och spåra.
- Grammatiskt. För att se till att jag faktiskt gör ett hyfsat jobb med att konstruera meningar och skriva ord.
- Slå samman Windows. För det första hade vi för många fönster, så vi introducerade fliksurfning. Nu har vi bara för många fönster med för många flikar. Detta slår samman alla fönster till ett enda fönster.
- Ta bort W3Schools. Tar bort W3Schools från Googles sökresultat så att du kan få bättre resultat.
- Fliksorterare. När dina flikar kommer utom kontroll mellan Asana, Trello, Pocket, Reddit, och så vidare, hjälper detta att organisera dem efter deras typ.
- Gasspjäll. Detta fungerar tillsammans med webbtjänsten Throttle för att skapa engångs-e-postadresser (som du fortfarande kan använda för att läsa e-post) för tjänster som du inte nödvändigtvis vill hänga med.
- Toby för Chrome. Perfekt för att spara och gruppera fliksessioner (om du väljer att inte använda fliksorterare) så att du kan komma tillbaka till jobbet med vad du än gjorde när du gick iväg, startade om eller vad som helst.
- Xdebug Helper. Fungerar tillsammans med Xdebug för att hjälpa till att felsöka, profilera och spåra prestanda och kod i en lokal webbapplikation.
Det finns andra tillägg jag använder för applikationer som 1Password och Pocket men de verkar inte vara lika relevanta så jag har valt att utesluta dem, särskilt för att dessa tjänster är mindre utvecklingsorienterade.
Slutet
Varför är mina webbläsartillägg sist? Jag vet, det verkar lite dumt – skulle de inte vara en del av, säg, min standarduppsättning av applikationer?
Enkelt uttryckt finns det några som är mer utvecklingsrelaterade, så jag ville att de skulle komma efter att jag hade täckt allt annat.
Å andra sidan, det finns tillfällen då jag måste ändra saker från att använda till exempel PHP7 till PHP5.6 beroende på ett projekt. Det finns också tillfällen då jag använder andra bibliotek som PHPMD, etc., som jag inte har täckt här eftersom de är projektspecifika verktyg.
Men från att ställa in mitt system är detta den allmänna översikten. Så nu har jag en dokumenterad referens till vad jag behöver installera från Mac App Store, från olika ställen på webben, de kommandon jag behöver köra och hur jag snabbt kan få igång en maskin och återställa om något skulle gå sönder igen.
Med allt detta sagt så undrar jag om det inte är värt att köpa en billig reservmaskin för säkerhets skull.
Men jag vet inte. Det är ett annat inlägg.
Epilog
Om du letar efter ännu ett inlägg att följa som är liknande men mer detaljer om vissa verktyg, rekommenderar jag att du kollar in Carl Alexanders inlägg.