Från kaos till klarhet: Därför slår konvention convention varje gång
Bygg webbappar smartare: Därför slår konventioner och tydlighet alltid konfiguration
Alla som jobbat med webbutveckling känner igen sig. Du startar ett nytt projekt och lägger timmar på att välja rätt ORM, fundera över var modellerna ska placeras och tampas med konfigurationsfiler som växer sig längre än en roman. När du äntligen kommer till den första riktiga koden är du redan trött.
Finns det ett bättre sätt?
Varför opinionated ramverk ofta är smartare
Under det senaste decenniet har trenden gått mot alltmer flexibla ramverk. Du får välja själv – autentisering, caching och allt annat. Men valet kan snabbt bli överväldigande. Sjutton olika bibliotek för en enda funktion, och ingen som talar om vad som egentligen fungerar.
Där kommer en annan tanke in: låt ramverket ha en tydlig åsikt. Inte för att styra dig, utan för att någon redan tänkt igenom hur en webbapp bör byggas. Då slipper du göra samma val varje gång.
Tre principer som gör ett ramverk hållbart
1. Kod skrivs för människor
Prestanda är viktigt, men det är läsbarhet som avgör hur lätt det blir att underhålla och vidareutveckla en kodbas. När strukturen är kristallklar och namngivningen konsekvent, sparar du tid varje gång du eller någon annan ska förstå koden.
Det handlar inte om att vara tråkig. Det handlar om att minska den mentala belastningen som annars byggs upp över tid.
2. Konvention före konfiguration
Det bästa med ett bra ramverk är att du vet var saker ska ligga – utan att behöva fråga. En modell för poster heter Post och ligger i models/post.py. Kontrollern heter PostController och finns i controllers/post_controller.py. Vyer ligger i views/pages/post/.
Det låter enkelt, men det är en stor befrielse. Du slipper diskutera mappstruktur och kan i stället fokusera på affärslogiken.
3. CRUD som grundregel
De flesta funktioner i en webbapp följer samma grundmönster: skapa, läsa, uppdatera och ta bort. Genom att utgå från det blir dina API:er förutsägbara och teamet talar samma språk.
När en ny funktion inte passar in i det mönstret är det ofta ett tecken att du behöver skapa en ny resurs i stället.
Allt som redan borde finnas där
Varje webbapp behöver samma saker: autentisering, formhantering, caching, e-post, filuppladdning, bakgrundsjobb, internationalisering och WebSockets. Det är boring stuff, men viktigt.
Ett bra ramverk inkluderar allt detta. Inte som extra komponenter som du måste integrera själv, utan som färdiga delar som är redan är dokumenterade och testade.
Generatorer i stället för copy-paste
Scaffolding handlar inte bara om att spara tid. Det handlar om att skapa nyare