Ny blog: Hvad blev der af fortryd-knappen i web-applikationer?

Hvorfor kan man sjældent fortryde en handling, når man arbejder i et webbaseret program? Det er et af de spørgsmål, som Version2's nye blogger Allan Ebdrup tager fat på.

I takt med at flere og flere programmer bliver afviklet 100 procent online, sker der også ændringer i måden, man arbejder med dem. En fundamental ændring er fraværet af en fortryd-knap i mange Ajax- og Web 2.0-baserede programmer.

Det er et af de første emner, som Allan Ebdrup, Enterprise Architect og ny blogger på Version2, tager fat på i sit første indlæg.

»Generelt set synes jeg, at it er på stenalderstadiet. Vi er stadig i det vilde vesten, hvor alt kan lade sig gøre, men hvor tingene også er meget mere besværlige, end de burde være. Jeg har nogle meninger om, hvad vi bør gøre for at gøre tingene mindre besværlige for udvikleren,« siger Allan Ebdrup.

Allan Ebdrup håber at få læserne på Version2 til aktivt at bidrage til debatten om Ajax, JavaScript, Rich Internet Applications, DHTML og »et drys af usability og Web 2.0.«

»Jeg har nogle betragtninger, jeg gerne vil diskutere med andre, og på Version2 tror jeg, at folk vil forstå, hvad jeg skriver, og give deres mening til kende. Jeg får også en forpligtelse til at levere nogle gode artikler, når jeg ved, at der sidder kompetente folk og læser, hvad jeg skriver,« siger Allan Ebdrup.

Med bloggen har Allan Ebdrup også en ambition om at kunne forandre tankegangen hos nogle af de helt store spillere. For eksempel mener han, at der er behov for integreret understøttelse af en fortryd-funktion i .Net, Java og Ruby.

»Ultimativt vil jeg gerne påvirke udviklere af udviklingsmiljøer såsom Microsoft, Sun og så videre. Men vi får se - det er jo altid godt at have ambitioner,« slutter Allan Ebdrup.

Læs Allan Ebdrups blog »

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (8)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#2 Torben Mogensen Blogger

Jeg siger også velkommen.

Løsningen på fortryd-problemet er vel at have persistent data, som altså ikke forsvinder blot fordi man i det view, en bruger ser, erstatter et med noget andet. Dermed er slettet data slet ikke slettet, men stadig tilgængelig på systemet (indtil der laves en oprydning i stil med "tøm skraldespand"), og det vil være en smal sag at lave fortrydfunktioner.

  • 0
  • 0
#3 Rasmus Schultz

Desværre er det ikke en triviel funktion at implementere på nettet.

I desktop applikationer er det er naturlig og enkel funktion, som man bare forventer er der - men det er langt enklere at implementere i enkelt-bruger situationen end det er på nettet, hvor AJAX request f.eks. kan berøre de samme records i en database, på kryds og tværs.

Hvis jeg lige har ændret noget i en record, og du så laver en ændring i den samme record, og jeg derefter ønsker at fortyde, hvordan får man så det reddet ud?

Det er desværre langt fra en triviel udfordring, og jeg tvivler på at det kan løses i selve programmerings sproget - det er nok noget, der skal understøttes på SQL niveau...

Held og lykke :-)

  • 0
  • 0
#4 Allan Ebdrup Blogger

Tak for velkomsterne. Det er godt at se der findes folk som dig Torben der mener det er en smal sag at implementere fortryd, så er der håb for at vi får mere af det. Og det er også godt at se at der er folk der kan se concurrency udfordringerne som dig Rasmus. For mig ligger sandheden et sted midt i mellem, blot fordi der er potentielle problemer med at lave "den perfekte" løsning der tager højde for alle tænkelige scenarier, behøver man ikke helt opgive at lave noget fortryd funktionalitet. Og samtidig skal man være opmærksom på, at der kan være concurrency problemer når man gør det. Men min opfordring er helt klart: "prøv det".

  • 0
  • 0
#5 Rasmus Schultz

Klart - det var ikke ment som en undskyldning for ikke at gøre det, selvfølgelig skal vi sætte nye og højere mål for os selv hver dag, ellers bliver det jo kedeligt at være webudvikler :-)

Det er jo heller ikke et emne der er blevet totalt overset - de fleste HTML editorer har jo f.eks. undo knapper...

  • 0
  • 0
#6 Peter Nørregaard Blogger

Hej Allan, gamle kollega :-) Velkommen til som blogger – du skal nok have pillet ved en indstilling så vi kan sætte kommentarer på dit blog-indlæg.

Jeg har hørt om brugen af Command og specielt Memento designmønstrene til at implementere fortryd, men det kræver jo enten en fed AJAX på klienten eller en del state på serveren. Ikke nemt, men heller ikke umuligt.

  • 0
  • 0
#7 Allan Ebdrup Blogger

Hej Peter Tak for velkomsten. Jeg tror jeg har fået gjort det muligt at kommentere nu. Ja der er patterns til at lave fortryd. Det er faktisk ret simpelt at lave, med en tyk AJAX klient. Uden tyk AJAX klient, er det afhængigt af hvordan du implementerer det, men det behøver det ikke kræve den helt store state på serveren. Det er jo begrænset til de ændringer brugeren rent faktisk laver, og state lever kun pr. session. Selvfølgeligt kommer det an på dine brugeres brugsmønster.

  • 0
  • 0
#8 David Konrad

desktop applikationer er det er naturlig og enkel funktion, som man bare forventer er der - men det er langt enklere at implementere i enkelt-bruger situationen end det er på nettet, hvor AJAX request f.eks. kan berøre de samme records i en database, på kryds og tværs.

Hvis jeg lige har ændret noget i en record, og du så laver en ændring i den samme record, og jeg derefter ønsker at fortyde, hvordan får man så det reddet ud?

Nu er det jo transaktionsstyring, du lægger op til - eller blander sammen med standalone "desktop" programmer - hvorfor skulle transaktionsstyring være mere besværligt i en applikation der kører på internettet, end en applikation der kører på f.eks et lokalnet? Det er samme problematik, samme databaser.

Mht simpel "fortryd" kan det meget nemt og meget hurtigt gøres med en cookie - man kan endda lige så nemt implementere multiple fortrydmuligheder. Det kræver bare at man gør det - at man ikke gør det, fordi der ikke er indbygget "cancel" lige umiddelbart i sprogene og database-tilgangen, er slet og ret dovenskab, en slags reminiscens fra internettets barndom, man har lært at acceptere.

Det kræver så lidt, og øger et programs funktionalitet ret markant. Jeg er 100% enig i den nye bloggers betragtninger om, at det helt i strid med applikationerns øvrige kompleksitet og den efterhånden udbredte brug af onlinebaserede programmer er direkte mærkeligt, en generel uvane/"industristandard", ikke at implementere "fortryd"-funktioner.

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