Sov nu på det

Jeg fik et feature request ind af døren. Egentlig var det et kendt problem, der havde ligget og rumsteret i et halvt års tid, fordi der ikke var nogen (inklusive mig selv, som var den, der i første omgang havde identificeret problemet), der havde en rigtig god løsning. Men nu skulle det altså fikses, og så måtte det om nødvendigt blive med en halvdårlig løsning. Øv! Er der noget mere utilfredsstillende end at lave halvdårlige løsninger? (Okay, heldårlige løsninger er måske værre...)

Den foreslåede halvdårlige løsning var i realiteten at vælte kompleksiteten over på brugerens skuldre. At tilføje endnu en konfigurationsmulighed, så ekspertbrugerne kunne tweake programmet til at gøre det ønskede - hvis de altså nogensinde nåede så langt som til at opdage, at netop denne konfigurationsmulighed ville kunne løse det konkrete problem. Man ved, at man er ude på et skråplan, når man har lyst til at kalde en konfigurationsmulighed for "Prøv at vælge den her checkbox og se om det virker. Det kan i nogle tilfælde også være, at det bare forværrer problemet." ARRRGHHH. Brugeren har ikke lyst til at få den slags valgmuligheder!!

Heldigvis havde min chef ikke tid til at svare på en mail med bekræftelse på, hvorvidt vi skulle lave den feature eller ej, samme dag. Så jeg gik småskumlende hjem fra arbejde uden at være gået i gang. Og tænk sig; da jeg mødte på arbejde den følgende dag, slog det mig pludselig, at der var en meget bedre løsning på problemet end at tilføje en væmmelig konfiguationsmulighed. At man ved at tænke lidt ud-af-kassen kunne lave en radikalt anden løsning, der slet ikke involverede, at brugeren skulle tage stilling til noget, og alligevel bare virkede.

Og så blev jeg rigtig glad. Over, at jeg ikke bare blev siddende foran skærmen og implementerede en løsning, som mavefornemmelsen sagde var noget bras. Over, at jeg ikke bare gjorde min hovedpine til brugerens. Over, at der nogle gange bare skal en god nats søvn til. Sov på det ![Eksternt billede](http://www.version2.dk/uploads/smil3dbd4d6422f04.gif" alt=")

Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Anne-Sofie Nielsen

Hm, nu fik jeg jo ikke engang beskrevet problemet! Det må jeg nok hellere starte med... (men også kun fordi du selv bad om det!)

Kernen er, at vi genererer noget HTML baseret på noget andet HTML. Og nogle gange har det oprindelige HTML indeholdt en Doctype erklæring. Den har vi hidtil ikke genereret med ud til klienten, fordi den oprindelige HTML måske giver nogle løfter, vi ikke kan holde, f.eks. at det er XHTML eller kan valideres strict.

Problemet er, at browsere vælger CSS validerings-mode udfra doctypen, og dette har indflydelse på renderingen. Altså kan den genererede side komme til at se forkert ud, hvis ikke man sender doctypen med.

Så den "dårlige" (eller i hvert fald u-brugervenlige) løsning var at give brugeren mulighed for at vælge, om doctypen skulle sendes med ud i den genererede HTML. Og det er faktisk ret svært for en bruger at gennemskue.

Hvad jeg heldigvis opdagede var, at det ikke gør en forskel (i de fleste browsere) for renderingen, om man sender eksempelvis en Transitional / Strict / XHTML doctype. Altså kan vi i stedet for at sende den originale doctype igennem altid sende en Transitional doctype, når de originale dokument har indeholdt en af de doctypes, som får browsere i en bestemt renderings-mode. Og det kan vi lige præcis afgøre automatisk - uden at blande brugeren ind i det.

Ja, det var så den lange og tekniske forklaring ;-)

  • 0
  • 0
Michael Rasmussen

"Er det Microsoft, der har opfundet doctype-switching?"

Ja. Det relaterer sig tilbage i tiden før 1998, hvor Netscape var den alt-dominerende browser, og MS ville ind på markedet. NS og MS konkurrerede og førertrøjen på udvidelser til standarden, og da MS var opkomlingen, måtte deres browser både fungerer i NS mode og i MS mode. At det så senere hen er blevet til en mulighed for at holde andre ude af markedet, er en helt anden historie:-\

  • 0
  • 0
Log ind eller Opret konto for at kommentere