Internationalization (i18n)
- Einserseits bereits in Angular integriert →
Siehe hier
- Anderseits auch sehr gute Zusatzbibliotheken wie
ngx-translate
- Entscheidung nach persönlichen Vorlieben ;-)
Redux
- «Predictable state container for JS Apps»
- Ganzer Applikations-State in einem gemeinsamen Store
- Somit sehr einfach zu speichern (local storage) und sehr gut zum debuggen.
- Kein «Durchreichen» von Daten
- Gute Angular Implementation: ngrx
Wie gliedere ich meine App?
Naming
- Gutes Pattern: Nenne Dinge danach, was sie tun!
- Z.B.:
- visitor.component.ts
- visitor.service.ts
- visitor.model.ts
Wie gliedere ich meine App?
Ordnerstruktor
- Keine klaren Vorgaben wie bei Java (Packages)
- Deshalb gilt: Einfach beginnen!
- Erst komplexere Strukturen resp. Module aufbauen, wenn man sie wirklich braucht →
YAGNI-Prinzip
Wie gliedere ich meine App?
Ort der Tests
- Auch da: Keine klaren Vorgaben wie bei Java (main / test)
- Es hat sich aber bewährt, die Tests dirket bei der Klasse anzulegen.
- Trenne nicht, was zusammen gehört.
- Macht es einfacher, Komponenten wiederzuverwenden
Wie gliedere ich meine App?
Styling
- Globale Stylings sollten im styles.(s)css im /src Verzeichnis hinterlegt werden.
- Stlings die nur eine Komponente betreffen (z.B. Button) werden in der jeweiligen Komponente
abgelegt → Wiederverwendung!
JIT vs AOT
Just-in-Time vs Ahead-of-Time Compilation
- JIT für lokale Entwicklung (ng serve, ng compile)
- AOT für Produktions-Build (ng serve --aot, ng compile --aot)
- Kleiner, da Angular Compiler nicht mitgeliefert werden muss
- Kürzeres Bootstrapping, da Code direkt ausgeführt werden kann
- Mehr in der Angular Doku
Feedback
Bitte gib Dein Feedback zum Kurs hier ab. Danke! :)