Weiterführende Themen

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! :)