Ist die Wartung von stark Ajax-basierten Web-Apps schwieriger?

8

Vielleicht mache ich es falsch, aber meiner Erfahrung nach ist die Entwicklung und Pflege von stark ajaxbasierten Web-Apps viel schwieriger als eine "normalere" Web-App.

Ich spreche nicht von einer App, die hier und da Ajax zum Laden einiger Daten verwendet, aber der Stil, in dem die vom Server gesendete Seite nur ein Frame ist und alle Daten beim Laden ausgefüllt werden.

Ich würde gerne von denen hören, die Erfahrung in der Entwicklung solcher Apps haben. Meine persönliche Erfahrung ist, dass der Bau und die Wartung mehr Stunden dauern.

Erik
quelle
Wie definieren Sie eine Standard-Web-App?
Chris
eine, die Ajax nicht für alles verwendet? Zum Beispiel sind 37signals Webapps entschieden kein Ajax, obwohl sie hier und da eine Streuung verwenden
Erik
1
Schwieriger als was? Als etwas, das gehackte, nicht standardisierte Technologien verwendet, um die gleichen Ergebnisse zu erzielen? Wenn Sie Ihre App komplexer gestalten (z. B. durch Hinzufügen von Intrapage-Interaktivität), ist es nur vernünftig, mit höheren Kosten für die Wartung zu rechnen.
Alex Feinman
Fragen Sie sich insbesondere, ob die Arten von Websites, auf denen Ajax verwendet wird, tendenziell schwieriger sind als die Arten von Websites, auf denen Ajax nicht verwendet wird, oder fragen Sie, ob Ajax-Websites für dieselbe Funktionalität schwieriger sind als Nicht-Ajax-Websites?
David Thornley

Antworten:

6

Ich würde vorschlagen, dass sowohl die Entwicklung als auch die Wartung einer Anwendung, die JavaScript verwendet, eine komplexere und herausforderndere Aufgabe ist als die Entwicklung "klassischer" Webanwendungen.

Der Grund dafür liegt in der einfachen Tatsache, dass die Arbeit umso schwieriger wird, je heterogener Technologie-Stack Sie verwenden.

In diesem Fall programmieren wir mit JavsScript im Grunde genommen gegen eine automatisierte Serverausgabe, was für sich genommen eine seltsame Idee ist. Die Seiten dynamischer Webanwendungen werden mit einer Programmiersprache auf dem Server generiert. Auf der Serverseite stehen Ihnen alle Süßigkeiten wie Syntaxprüfung, Typprüfung, alle Arten von automatisierten Analyse- und Refactoring-Tools zur Verfügung.

JavaScript funktioniert auf der anderen Seite des Zauns, wo es keine Informationen über die großen Ereignisse auf dem Server gibt. JavaScript arbeitet gegen ein automatisch generiertes Markup, das ziemlich volatil ist und Änderungen unterworfen ist. Aus diesem Grund muss ein Entwickler darauf achten, dass beide synchron bleiben. Je größer eine App wird, desto schwieriger wird die Aufgabe. Und diese Aufgabe ist normalerweise eine manuelle Arbeit, die nicht ausreichend automatisiert werden kann, um nahtlos mit Ihrer App zu skalieren.

Daher sind JavaScript-reiche Apps schwieriger zu warten.


quelle
6

Ich finde auf lange Sicht, dass meine Ajax-Apps (alle Intranets) einfacher zu warten sind, weil sie mir viel modularer erscheinen. Wenn ich zum Beispiel eine Seite habe, die dann anderen Inhalt in Container lädt, kann dieser Inhalt einfach wiederverwendet und an anderer Stelle gerendert werden. Der Quellcode für jedes Teil befindet sich in verschiedenen Dateien für die Ansichten und Methoden auf dem Controller, was das Debuggen / Verbessern erleichtert. Es hängt wirklich davon ab, wie Sie AJAX verwenden und wie Sie Ihre Apps einrichten.

Ominus
quelle
1

Die Schwierigkeit ist in erster Linie eine Frage der Erfahrung. Wenn Sie keine Erfahrung mit der Wartung stark AJAX-basierter Webanwendungen haben, ist dies schwieriger.

Doch es scheint mehr zu sein , die Komplexität in einem UI - Modell mit rerendering Fähigkeit als ein mit einem einzigen machen, wie eine traditionellen Web - Seite über eine einzige Anfrage serviert. Dies gilt aus mehreren Gründen:

  • Der Rendering-Code ist unterteilt in serverseitigen Code, der das anfängliche Rendern ausführt, und JavaScript-Code, der das clientseitige Rendern ausführt. Dies kann beispielsweise durch die Verwendung von JavaScript sowohl auf dem Server als auch auf dem Client erleichtert werden.
  • Im Allgemeinen muss möglicherweise ein Großteil Ihres Codes sowohl auf dem Client als auch auf dem Server dupliziert werden (z. B. Validierung).
  • Anstatt Daten mit serverseitigem Code direkt in HTML zu rendern, benötigen Sie einen AJAX-Handler, der Daten in JSON formatiert, und dann mehr Code, um JSON in HTML zu formatieren. Frameworks können dies erleichtern.
Matthew Rodatus
quelle