19. december 2008 - 08:37Der er
12 kommentarer og 2 løsninger
Ajax framework eller små ajax scripts
Hej Eksperter
Jeg arbejder på et større projekt "php/mysql" hvor jeg har indlejret nogle forskellige ajax funktioner.
Nu er mit spørgsmål om det er en god løsning at lave forskellige ajax funktioner rundt omkring i et projekt, eller om det er bedre at bygge projektet op omkring et AJAX framework, Ext js eller lign.
Jeg er ikke bekendt med eksistensen af et Ajax-library i valid, hensigtsmæssig og moderne kode ... heller ikke libs som Prototype, scriptaculous eller jQuery. Min anbefaling er helt klart at skrive noget selv.
Det er også min udmidelbare vurdering. Men kræver vidst jeg får tygget "DenGodeKode" igennem. Hvornår forventer du at kunne udgive din bog? Det er nok en af de første der ryger på ønskesedlen!!
Man kan vaelge flere forskellige strategier for sin AJAX JS udvikling:
1) Bruge server side komponenter som outputter JS uden at ens kilde kode indeholder noget JS - saadanne findes til JSP, ASP.NET og PHP.
2) Udvikle sin app i et mere strict sprog og saa generere JS fra det. Eksempler er GWT (Java -> JS) og Script# (C# -> JS).
3) Bruge JS libs som prototype, scriptaculous, overlibmws etc. og kun lave en lille smule JS selv som bruger disse libs.
4) Lave sit eget lib fra bunden af.
Hvis man gerne vil laere en masse om JS, HTML, standarder etc. saa er loesning #4 glimrende, men hvis man skal levere bang for the buck, saa virker #1-3 uendeligt meget mere tiltalende.
arne_v >> det kommer jo an på hvilket forhold man har til kvalitet i arbejdet. Skal jeg købe en ny bil - eller have en gammel repareret - er jeg fuldstændig uinteresseret i, hvormeget 'bang' sælger/mekaniker kan tilfredsstille sig selv med.
I min verden er det ikke fikst at bevæge sig bagud i forhold til standarderne. Tænk, hvis browser leverandørerne pludselig en dag beslutter sig til at understøtte XHTML for alvor. Så ville det da være fikst, om ikke al kode skal udskiftes.
Men du har da ret i, at det ofte er hurtigere at lave arbejde, som ikke lever op til de for faget gældende standarder. Problemet er bare, at man let kommer til at levere 'shit for the buck' - og det er der vel ingen, som kan være interesseret i =)
Hvis man arbejder på sin personlige hjemme side som hobby projekt, så kan man gå op i om noget er "fikst" eller ej.
Men er det arbejder, så skal man levere værdi for pengene. Det er yderst sjældent værdi for pengene at lave noget fra scratch.
Vi er helt enige om at hvis man vælger #4, så er det mest økonomisk at følge standarderne, fordi hvis koden er et stort hack, så har man selv ansvaret for at få det til at virke den dag der kommer en ny browser. Og der er nu engang betydeligt bedre chancer for at standard kode virker i fremtiden end hacks.
Men bruger man noget eksternt kode, så er det dem der vedligeholder det som har et problem, hvis det er noget slam kode.
Hvis jeg bruger GWT og GWT output ikke virker med IE 9, så har Google et problem ikke mig. De lacer en fix for at få deres egne sider til at virke med IE 9. Jeg henter en opdatering til GWT og recompiler - og så virker mine sider også igen.
Der er jo heller ikke nogen som vælger styre system eller web server udfra en analyse om, hvorvidt det er ANSI C kode eller compiler specifik C kode.
Umiddelbart finder jeg det en lidt forsimplet fremstilling. Hvis GWT ikke bygger på standardiseret kode, og det er et krav fra kunden, at du bruger GWT, er det Google's og din kundes problem, hvis IE9 pludselig beslutter sig for at overholde standarderne. Hvis det derimod er din idé, er det dit problem, at du ikke forudså, der før eller siden ville opstå problemer.
Desværre er det jo langtfra altid, der indenfor rimelig tid kommer fixes fra leverandørens side. Hvormange år har vi f.eks. ikke ventet på, at MS fik rettet op på sin elendige garbage collection i IE - der har medført alenlange omskrivninger i DOM-/Ajax-sammenhænge?
Når man kode som hobby, kan man gøre, hvad somhelst. Koder man derimod professionelt, kan man naturligvis ikke tillade sig at bruge 'materialer', som ikke lever op til fagets internationale standarder. Derfor skriver man naturligvis sine egne libraries, så man er fri for at opfinde den dybe tallerken fra scratch, hvergang.
Jeg har adskillige gange hjulpet folk med problemer i forbindelse med f.eks. jQuery, fordi almindelig DOM-programmering pludselig ikke lod sig gøre, qua overskrivning med innerHTML af referencer, m.m. Bl.a. derfor holder jeg mig fra libraries, der bruger innerHTML ... men det kan der selvfølgelig være flere meninger om =)
Takker for svarerne, synes nu egentligt det største problem med libs, er at de sjældent rammer 100% ens behov. Og hvis man alligevel skal ændre i et lib, så er man jo ligehvidt.
Ved ikke helt hvordan jeg skal gribe det an endnu, men tror det bliver from scratch.
Hvis google search og gmail ikke virker med IE 9, så er jeg meget fortrøstningsfuld med at der kommer en hurtig fix til GWT.
Hvis man i professionel sammenhæng som junior developer argumenterer for at udvikle libs fra scratch, så får man at vide af en senior udvikler, at det ikke er smart. Hvis man som senior udvikler argumenterer for det samme så skifer man status fra senior udvikler til arbejdsløs.
Man udvikler ikke sit eget styre system, ikke sin egen compiler, ikke sit eget server side script sprog, ikke sin egen database o.s.v. - AJAX libs er ikke på magisk vis anderledes end andet software - man genbruger hvis man kan.
Ja, branchen er ikke så gammel, så man kan slippe afsted med det mest utrolige. At bruge defekt udstyr er naturligvis fyringsgrund i andre brancher. Derudover er det tydeligt, der også hersker væsentligt forskellige forhold i de IT-firmaer, vi hver især har arbejedet for =)
Jo, Ajax-libs er væsentligt anderledes, da det ikke er noget voldsomt stort arbejde at skrive noget væsentligt bedre end det, der findes på markedet. Pointen er jo netop, at man ikke _kan_ genbruge, hvis man insisterer på ikke at bruge invalid kode.
Sålænge, der er tale om ordentlig kode, er jeg dog helt enig i, man skal genbruge så meget, som overhovedet muligt ... og når man én gang har skrevet sine egne libs, ville man da også være idiot, hvis man ikke genbrugte dem ;o)
JSP - jeg kan godt komme med forskellige anbefalinger, men jeg antager at det ikke er relevant for dig
ASP.NET - AJAX kommer standard, så brug det
PHP - jeg ved ikke hvad der godt og hvad der er skidt
re #2)
GWT - Google er helt klart en software leverandør som man kan regne med også eksisterer om 2 år
Script# - ville jeg være lidt bekymret ved at satse på - det er et enmands projekt - men jeg kender projekter som bruger det
re #3)
prototype, scriptaculous og overlibmws er alle meget brugte.
overlibmws er også et enmands projekt, men den ene person er Foteos Macrides og det mener jeg i et eller andet omfang borger for kvaliteten (jeg kender ikke så meget til hans JavaScript lib, men jeg kender hans arbejde med Lynx og diverse CGI scripts tilbage midt i 90'erne)
prototype og scriptaculous synes at have et solidt fundament
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.