Geschrieben von Karsten Sitterberg am 27. Dezember 2019
Angular CLI bietet eine komfortable Abstraktion über diverse Werkzeuge, um ein Angular Projekt zu erstellen und zu bauen.
Typischerweise kommt dabei Webpack zum Einsatz.
Im Kontext von großen, oft dem Vorbild Google folgend als Monorepo strukturierten Anwendungen, entsteht der Bedarf an einem sprachübergreifenden Build-Werkzeug.
Ein solches Werkzeug ist das von Google entwickelte und als OpenSource bereitgestellte Bazel.
Wir beschäftigen uns in diesem Beitrag damit, was Bazel im Kontext von Angular CLI bedeutet.
Geschrieben von Karsten Sitterberg am 27. Dezember 2019
Seit geraumer Zeit wird für Angular der Ivy-Renderer entwickelt, der kleinere Bundles bei verbesserter Geschwindigkeit verspricht.
Mit Angular 9 wird der Ivy-Renderer der neue Default-Renderer und für den produktiven Einsatz empfohlen.
Wir beschäftigen uns in diesem Beitrag damit, was Ivy in Angular 9 für die Entwicklung bedeutet.
Bestimmte Fragestellungen begegnen uns dabei immer wieder, da in der Regel eine bestehende Systemlandschaft existiert, und nun Angular Anwendungen in diese integriert werden sollen.
Progressive Web Applications als Plattform der Zukunft war das Thema des Vortrages von Karsten Sitterberg auf der W-JAX 2019 in München.
Bei dem Vortrag wurden die verschiedenen Möglichkeiten, die sich durch aktuelle HTML5 APIs wie Web-App Manifest, Service-Worker und Web-Push ergeben anhand praktischer Beispiele demonstriert.
Neben den einzelnen APIs wurde am Beispiel einer Angular Anwendung demonstriert, wie die Unterstützung auf den aktuellen mobilen und Desktop Plattformen umgesetzt ist.
Bei Angular ist die Umsetzung von offline-fähigen Anwendungen dabei sehr gut bereits durch das Framework unterstützt, so dass ein Entwickler relativ einfach eine PWA umsetzen kann.
Im Backend hat sich der Architekturstil "Microservices" für viele Anwendungsbereiche durchgesetzt.
Dabei stellt sich relativ schnell die Frage: Wie geht man mit dem Thema Frontend um?
In dem Vortrag "Frontend Architektur für Microservices" gab Thomas Kruse auf der W-JAX 2019 in München einen Überblick zu verschiedenen Herangehensweisen.
Der Vortrag zeigt die speziellen Herausforderungen, die sich aus einer guten Benutzbarkeit von Frontends für Microservices ergeben.
Durch aktuelle Entwicklungen im Bereich von WebComponents und modularer SPA Frameworks ergeben sich zusätzliche Architekturoptionen, die in dem Vortrag bewertet wurden.
Die Testpyramide ist sicherlich jedem vertraut.
Welche Unterschiede es neben einer theoretischen Einordnung gibt, zeigt Karsten Sitterberg in seinem Artikl "Tests an die Front".
In dem Beitrag im PHP Magazin liegt der Fokus auf Test von Webanwendungen.
Neben klassischen Architekturen mit serverseitig gerenderten Webeiten werden JavaScript Clients als Single Page Applications betrachtet.
Bei dem Meetup Digital Innovation Ruhr behandelte Thomas Kruse in seinem Vortrag "Frontend Architektur für Microservices" verschiedene Architektur Optionen, um mit den Herausforderungen des Frontends bei einer Microservice Architektur umzugehen.
Für den Vortrag wurden die Erfahrungen aus verschiedenen Projekten in einem zeitlichen und technologischen Kontext eingeordnet und liefern damit Entscheidungshilfen für Architekten, die sich mit dem Thema Frontend im Microservice Kontext befassen.
Ein besonderes Augenmerk wurde dabei auf den Systemschnitt aus der Perspektive des Frontends und des Nutzers gelegt, der in der Regel eine integrierte Oberfläche ohne Brüche im Prozess erwartet.
Dank aktueller Entwicklungen eignen sich inzwischen Webcomponents für bestimmte Aufgabenstellungen und wurden mit einem Beispiel auf Basis von Angular Elements praktisch demonstriert.
Eine Webanwendung läuft - und das ist gerade der große Benefit - nicht ausschließlich in einem Webbrowser auf einem Desktop Gerät.
Mit zunehmend anspruchsvolleren Anwendungen müssen diese Rahmenbedingungen von Plattform und Displayformat bei Tests mit berücksichtigt werden.
Für Anwender zähle nämlich schon lange nicht mehr rein funktionale Gesichtspunkte, sondern auch nichtfunktionale Anforderungen wie Geschwindigkeit und eine gute Bedienbarkeit spielen eine Rolle.
In dem vierten Teil seiner Artikelserie rund um Testing von Web Anwendungen betrachtet Karsten Sitterberg nun spezielle Szenarien:
Dabei werden Fragen beantwortet, die sich um das Testen von HTML5 Anwendungen, Web-Anwendungen auf mobilen Endgräten beantwortet.
Zudem wird erklärt, wie mit Devices in der Cloud getestet werden kann, wie sich eine Anwendung auf einer speziellen Plattform und dem zugehörigen Display-Format verhält.
Geschrieben von Thomas Kruse am 25. September 2019
In der Softwareentwicklung sollte es selbstverständlich sein, das Verhalten einer Anwendung stets basierend auf der fachlichen Spezifikation zu implementieren. Um sicherzustellen zu können, dass die fachlichen Vorganben eingehalten werden, werden Integrations- und auch Ende-zu-Ende-Tests (E2E-Tests) geschrieben.
Aufgrund ihrer jeweiligen Komplexität befinden sich die E2E-Tests in der Testpyramide über den Integrationstests, diese befinden sich über den Unit-Tests.
Somit sollten sowohl Integrations- als auch E2E-Tests einen geringeren Anteil am geschriebenen Testcode haben als Unit-Tests.
Im dritten Teil seiner Artikelserie hat Karsten Sitterberg beschrieben, mit welchem Vorgehen und welchen Tools bei der Erstellung eben solcher E2E- und Intergations-Tests vorgegangen werden kann.
Bei Web Anwendungen stellt sich die Frage nach einer guten Testbarkeit und auch nach einer guten Vorgehensweise bei Web Tests.
Als grundlegende Metrik, um Aufwand und Menge der Tests abzuschätzen, hat sich die Testpyramide eingebürgert.
Auf der untersten Ebene befinden sich die Unit-Tests, die sich durch eine eher geringe Komplexität auszeichnen, dafür jedoch den Großteil der Tests ausmachen.
Wie das Vorgehen bei der Erstellung von Unit-Tests aussehen kann, und welche Libraries und Frameworks bei Unit Tests für Webanwendungen helfen können, hat Karsten Sitterberg im zweiten Teil seiner Artikelserie zum Testen von Browser Anwendungen beschrieben.