Große JavaScript-Anwendungen sicher verwalten
Kommentare

In seinem jüngsten Blog-Post beschreibt Philip Harrison, seines Zeichens JavaScript-Entwickler bei der britischen Payment-App-Schmiede GoCardless, warum man sich bei der Achitektur für Angular.js entschied

In seinem jüngsten Blog-Post beschreibt Philip Harrison, seines Zeichens JavaScript-Entwickler bei der britischen Payment-App-Schmiede GoCardless, warum man sich bei der Achitektur für Angular.js entschied und wie man mittelfristig Rails aus ihr entfernen will, um 90 Prozent Ladezeit zu sparen.

Doch zunächst muss man erklären, was für eine Art von App der Dienstleister entwickeln will. Ziel der derzeitigen Entwicklerarbeiten ist, den Service in einer einzigen Single Page Application anzubieten, anstatt wie bierher eine klassische Website mit etlichen dynamischen Einzelseiten auszuliefern. Dies führt zu tausenden Zeilen clientseitiger Business-Logik, die in der Entwicklung Unit-getestet werden müssen. Und da dies mit der herkömmlichen Herangehensweise (jQuery-Selektoren + Rails) kaum möglich war, entschied man sich für den Gang zu Angular.js.

Das Framework hat Grundlagen zum Schreiben von testierbarem Code bereits vorgesehen, was die Qualität der Frontend-Entwicklung schlagartig erhöhen konnte. Harrison geht dabei sehr ins Detail und beschreibt, wie Angular trotz seines asynchronen Aufbaus übersichtliche Testmöglichkeiten bietet.

Im Folgenden gibt er Tipps, wie man Projektdateien ordnen kann, sodass sie auch in großen Strukturen noch übersichtlich bleiben. Auch Module und Abhängigkeiten sind irgendwann schwer zu überblicken, weshalb er dazu rät, immer nur ein Modul pro Datei zu haben. So sieht man in Tests sofort, welche Module oder Komponenten geladen sind. Harrisons Geheimtipp für die Automatisierung von Unit Tests ist Karma. Integration Tests macht sein Team mit Protractor.

Rails ist bisher bei GoCardless für das Anliefern von Assets zuständig. Künftig liefert es lediglich die Index.html und kümmert sich um die Authorisierung der User. Die restlichen Seitenaufrufe geschehen mit Hilfe des JS-Taskrunners Grunt. In der ungecacheten Dev-Umgebung reduzierte man so die Ladezeit von 15 auf 1,5 Sekunden.

Langfristig wolle GoCardless seine Fortschritte der Angular-basierten App als Module anbieten, die sich dann jeder über den JavaScript Dependency Manager Bower installieren kann. Dafür sollen sie auf GitHub zur Verfügung gestellt werden. Wenn die Briten von ihrer bisherigen Gangart nicht abweichen, werden sie die Bibliotheken unter MIT-Lizenz verbreiten.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -