Misstag 8. Att älska arv. Du har sett ljuset i arv á la objektorientering (inheritence) och nu tycker du att man alltid ska börja med att bryta ner allt i perfekta klasshierarkier. Alla andra ska lära sig hur din hjärna fungerar och hålla reda på läskiga parallella klasstrukturer.

Misstag 9. Att älska funktionell programmering. Du har precis lärt dig funktionell programmering och tycker att objektorientering var ett stort, och långvarigt, misstag. Allt ska ju vara tillståndslöst (stateless) och funktionellt!

Men om man behöver lägga till en sak i koden och behöver göra om vartenda funktionsanrop så är det inte så roligt längre.

Misstag 10. Att älska globala variabler. Det är svårt att koda, inte minst att bestämma var olika resurser som variabler ska vara nåbara, det som kallas ”scope” på engelska. Den enkla lösningen på det problemet är att använda den mest lättillgängliga nivån, till exempel med globala variabler.

Men vänta, du tar kål på minnet, koden kan inte parallelliseras och det blir en massa konflikter. Det känns i alla fall lätt att koda.

Läs ocksåJavascript-utvecklare i internpolitiskt storbråk

Misstag 11. Super-mega-objekt. Har du sett klassfiler med hundratals variabler som beskriver tillstånd och en massa metoder för att hantera dem? Då kanske du också har sett att de laddas under programkörning, även fast det mesta i dem inte behövs? Och att resultatet blir ett enormt minnesslöseri.

Misstag 12. För många objekt. Vissa använder för många objekt, vilket ofta hänger ihop med att de älskar arv, se misstag 8, men inte alltid gör det. Om ingen klassfil är ens 100 rader lång och det finns hundratals, eller tusentals, av dem så gör man något fel.

Misstag 13. En tråd här och en tråd där. Det mesta av all kod som skrivs kan skrivas i en tråd, även om det inte fungerar så bra för databashanterare, applikationsservrar och liknande. Använd inte en massa trådar om du inte behöver göra det. Nu för tiden går det ofta att använda en tråd och ändå distribuera koden och dra nytta av trådhantering.

Misstag 14. Att låsa rader. Det här är ett problem som främst gäller för databashanterarna Sql Server och DB2. I de flesta fall är radlåsning standard, men för DB2 gäller sidlåsning på vissa plattformar, vilket är ännu värre. Oracle har mindre dumma standardinställningar.

En gång i tid fanns det en debatt om radlåsning jämfört med att garantera konsekvent läsning under en transaktion (snapshot isolation). I teorin är radlåsning mer effektivt, i alla fall tills det kommer en begäran till som kan orsaka en konflikt. Vilket i princip är en beskrivning av de flesta moderna applikationer.

Läs ocksåSäkerhetsexperten tillbaka med it-thriller – lyssna på den hos oss

Nuförtiden vet inte de flesta utvecklare ens vad ”snapshot isolation” är, än mindre hur man aktiverar det. Resultatet blir att körningar börjar hänga sig under skarp drift eftersom radlåsning används. Lär dig vad ”snapshot isolation” är och undvik radlåsning.

Misstag 15. Automatgenererade sekvenser. Lova att aldrig använda automatiskt genererade sekvensnummer för att skapa unika id i databastabeller.

Det innebär låsningar och en massa andra problem, som att en enda tråd innebär att allt avstannar. Man kan använda 128-bitars slumptalsgenerering i stället. Är du orolig för duplicerade id? Risken att bli träffad i huvudet av en meteoroid är större.

Sida 2 / 2

Innehållsförteckning