Vad är Laravel?
Låt inte det här skrämma dig: Laravel är ett ramverk för PHP. PHP är det mest populära programmeringsspråket för att bygga dynamiska hemsidor. Det beräknas att över 80% av alla dynamiska hemsidor på internet har PHP i botten. Det finns en uppsjö av olika programmeringsspråk man kan bygga hemsidor med, men inget annat kommer ens i närheten av PHP när det gäller användning och spridning. Exempelvis är Facebook byggt med PHP.
Ett ramverk i den här kontexten kan ses som en verktygslåda med verktyg för att lösa generiska problem. Då slipper man uppfinna hjulet igen. Den grundläggande principen för alla hemsidor är att man tar emot ett anrop (användaren besöker sidan i sin webbläsare) och utefter diverse premisser skickas ett svar tillbaka (det som visas i användarens webbläsare). Möjligen låter det som en trivial sak, men det är verkligen toppen på isberget av komplexitet och variabler. Här kommer ramverk som Laravel in i bilden, det hanterar det åt dig. Då kan man fokusera på att bygga hemsidans funktionalitet istället.
Mycket grundläggande funktionalitet följer med, som att kommunicera med databaser, registrering och inloggning av användare, språkstöd, skicka ut e-post och validering av data som användare skickar in via hemsidan. Det är ett axplock av den typ av funktionalitet man slipper skriva om från början varje gång. Vad det framförallt hjälper med är att **snabba upp utvecklingen av hemsidan**. Alla inblandade vill att hemsidan ska byggas så fort det går. Varför skriva kod på nytt när andra människor har lagt tid på att göra riktigt bra saker man kan använda sig av?
Det är som ett ganska tunt lager, ett gäng komponenter och mycket lim. Principen och filosofin bakom ramverket är att ta de bästa och testade komponenter som finns tillgängliga, limma ihop dom, strössla lite magi för oss programmerare på det och sedan säga “Här, använd din kreativitet på att bygga fantastisk funktionalitet istället för att ägna dig åt repetitiva uppgifter”. Eftersom det bygger på ett gäng komponenter är större delen av Laravel faktiskt inte ens byggt av de som bygger Laravel. De som aktivt bygger Laravel identifierar de bästa lösningarna som redan finns tillgängliga för att sedan paketera det i ett fantastiskt ramverk där komponenterna är ihoplimmade.
Har du hört talas om WordPress?
Laravel är bara ett i mängden av en massa ramverk som finns tillgängliga. Du kanske har hört talas om Wordpress? Sedan finns det många som är mer kända i programmerarvärlden som Symfony2, CodeIgniter, Silex, Aura, etc. Det är inga namn du behöver lägga på minnet dock. Och även om Wordpress är det mest välkända ramverket, både hos programmerare och icke-programmerare, är det faktiskt en riktig mardröm kodmässigt som väldigt få programmerare vill arbeta med.
Varför Laravel?
Varför är då Laravel bättre än *\<valfritt ramverk här\>*? Tyvärr måste jag dra till med det tråkiga svaret: **det beror på**. Det jag kan säga är att jag inte hade valt något annat ramverk om en någorlunda generisk hemsida ska byggas. De få fall jag hade valt något annat hade varit i nischade fall. Säg att en sida beräknas få extremt mycket besökare och behöver ha fokus på prestanda, då hade jag möjligtvis tittat åt ett annat håll än Laravel. Men som ett ramverk som hanterar det mesta är det alltid mitt val.
Glada programmerare
I slutet av dagen handlar det alltid om kvaliteten på koden. Det är en oerhört viktig faktor i att hålla programmerare glada. Glada programmerare är produktiva. Glada programmerare skriver bra kod. Bra kod fostrar mer bra kod. Ett av de bästa verktyg för att hålla dom glada är att låta dom jobba med bra verktyg och förhoppningsvis verktyg de vill jobba med. De flesta av oss programmerare avskyr att arbeta med dåligt skriven kod. Precis på samma sätt som bra kod fostrar mer bra kod, så fostrar dålig kod mer dålig kod. Det är enkelt att avgöra vilken spiral man vill hamna i.
Hitta fler glada programmerare
Inte nog med att det är enklare att hålla programmerare glada, det gör det även enklare att hitta nya programmerare! Duktiga programmerare är en bristvara, att locka till sig och behålla dom kan vara en blodig kamp ibland. Varför göra saken svårare för sig genom att inte kunna inkludera *arbeta med de bästa teknologierna* i jobbannonserna?
Kod som testar ord
Något som kallas "unit testing", eller enhetstestning, har varit på framfart starkt inom PHP-världen på senaste. Laravel skiner på det området i och med att det gör all kod möjlig att enhetstesta. Vad det handlar om är att skriva kod som testar "den riktiga" koden. En sorts metakod för att försäkra sig om högre kvalitet. Det är ett enkelt koncept att uttrycka i ord, det kan låta så här: *när en användare försöker registrera sig med en felaktig e-postadress, då vill jag försäkra mig om att ett felmeddelande visas för användaren*. Den frasen kan representeras i kod som ett test och processer kan automatisera att tester körs. Då får man enkelt reda på om ens kod inte gör det som förväntas av den, exempelvis efter att ändringar gjorts i den. Återigen, kvalitet på koden.
Prototyper
Då allt finns på plats för att fokusera på snabb programmering av funktionalitet, kan man göra prototyper till ett bra verktyg inom ett företaget. Att skapa en första version av något och få tidig feedback från riktiga användare kan vara ovärderligt. Kan man skära ner på tid och kostnad för utveckling av prototyper är det bara att köra på. Det gör det även enklare att slänga saker som helt enkelt inte fungerade så bra som man trodde.