Archive for July, 2009

Varför är webbapplikationer ofta dåligt skrivna?

En ofta återkommande kvalitetsfråga är varför webbapplikationer ofta är så dåligt skrivna. Själv har jag erfarenhet av sådana applikationer skrivna i Java, Perl, och PHP.

Eftersom Perl och PHP inte direkt är objektorienterade språk (fastän bägge stödjer grundläggande OO-konstruktioner) verkar webbapplikationen bli en enda stor gegga utan någon som helst uppdelning av innehåll, navigering och presentation. Direkt databasaccess verkar vanligt och alla principer om att skapa lager och abstrahera verkar vara som bortblåsta. Det är inte alls ovanligt med tusentals rader stora filer som förutom att innehålla dåligt HTML även “gör allt”.

I Java-fallet kan man ha en snyggt skiktad backend, men om JSP och servlets blir inblandade kan vad som helst dyka upp. En extremt kraftfull kombination är tabell- och pixel-baserad layout med total oförståelse för JSP, tag libraries och servlets. Det finns inga gränser för hur “intressant” en sådan lösning kan bli.

Sedan har vi så klart diverse ramverk som ska hjälpa oss. Jag tänker faktiskt främst på Struts, men det finns många modernare, som gör ungefär samma sak. Det fina med ramverken är att de ofta är duktiga på “Hello world”-exempel, och är tänkta att leda utvecklaren mot en hållbar lösning genom att begränsa möjligheterna. Min erfarenhet är att så inte är fallet. Oftast kan man inte ramverket och arbetar runt det på bättre, eller oftast sämre, sätt. För att kringgå ramverken krävs oftast en viss typ av kreativitet… Som jag helst inte vill dela mjukvaruprojekt med.

Webbapplikationer är ofta ingångsporten för nya utvecklare och kvalitetsbristerna uppkommer i samband med att utvecklaren varken behärskar grundläggande programmeringsprinciper eller själva ramverket. Som vanligt kan man googla fram en tutorial, men de brukar sluta efter “Hello world”… Så länge detta mönster upprepas får vi nog leva med spagettin.

No Comments