Ich versuche, die Landschaft verschiedener Ansätze und Best Practices rund um die Entwicklung von komplexem clientseitigem JavaScript zu verstehen.
Ich bin mir nicht sicher, wie ich diese Anwendungsklasse bezeichnen soll, vielleicht AJAX oder RIA (aber keine Plugins wie Flash / Silverlight). Ich beziehe mich auf Web-Apps mit folgenden Merkmalen:
- Emulieren Sie Rich / Native Desktop UX in JavaScript
- Enthalten das meiste Verhalten in clientseitigem JS, wobei der Server als Daten-API (JSON / Html-Templates) verwendet wird.
Dies steht im Gegensatz zur Verwendung des Webservers für das UI-Rendering, bei dem der gesamte HTML-Code in einem Seitenaktualisierungsmodell generiert wird.
Einige Beispiele sind:
- Google Text & Tabellen / Google Mail
- Mindmeister
- Pivotal Tracker
Wenn wir in HTML5 voranschreiten, kann ich feststellen, dass dieser Stil der RIA-Entwicklung mit starkem JavaScript für den Wettbewerb immer häufiger und notwendiger wird.
FRAGE: Wie lauten also die gemeinsamen Ansätze für das Management derart schwerer JS-Entwicklungen?
Client-seitiger Code ist mit zunehmenden Funktionen einer App äußerst kompliziert. Es gibt Probleme bei der Skalierung eines Entwicklungsaufwands für mehrere Teams mit unformatiertem JS (ich höre es und kann es gut glauben).
Google hat sich dem Problem angenommen, indem es GWT erstellt, das von einer höheren Programmiersprache (Java) zu JS kompiliert wird, und sich dabei auf die vorhandene Entwicklungsinfrastruktur der höheren Programmiersprache (Eclipse, stark typisierte Tools, Refactoring-Tools) sowie auf die Abstraktion der Browserkompatibilität stützt andere Probleme vom Entwickler entfernt.
Es gibt andere Tools wie Script # for C #, die ähnliche Aktionen ausführen. All dies versetzt JS mehr in die Rolle einer IL (Intermediate Language). dh "Du schreibst nie mehr wirklich in dieser einfachen Sprache."
Dieses "Kompilieren nach JS" ist jedoch nicht der einzige Ansatz. Es ist nicht ersichtlich, dass GWT der vorherrschende Ansatz ist ... oder tatsächlich wird.
Was machen die Leute mit Rich-Client-JavaScript? Einige Orientierungsfragen:
- Stellen die meisten Geschäfte JS manuell her (auf Basis von Bibliotheken wie jQuery et al)?
- Oder gibt es viele verschiedene Ansätze, bei denen sich keine eindeutigen Best Practices herauskristallisieren?
- Vermeiden die meisten Shops die Entwicklung von RIA-Skalen zugunsten des einfacheren Server-Side / Page-Redraw-Modells für Entwickler? Wenn ja, wird dies dauern?
- Ist das Kompilieren zu JS vielleicht ein aufkommender Zukunftstrend? Oder ist das einfach falsch?
- Wie managen sie die Komplexität und das Refactoring von Client JS?
- Modularisierung und Verteilung der Arbeit auf Teams?
- Anwendung, Durchsetzung und Testen von clientseitigen Mustern wie MVC / MVP usw.
Was sind die aufkommenden Trends in unserer Zukunft mit viel JavaScript und HTML5?
Vielen Dank!