Bibliotheken blue veery GmbH
TypeScript Generator
Effiziente Frontend-Entwicklung mit dem TypeScript Generator
Problem
In den meisten Websystemen müssen Client- und Servercode konsistent sein – Modelle und HTTP-Anfragen im Frontend sollten mit den Backend-Endpunkten übereinstimmen. Durch die Trennung von Frontend- und Backend-Entwicklung führt dieser Prozess häufig zu doppelter Arbeit und einem erhöhten Fehlerrisiko. Die Synchronisierung beider Seiten ist zeitaufwendig und erhöht die Entwicklungs- sowie Wartungskosten.
Lösung
Um dieses Problem zu lösen, haben wir den TypeScript Generator entwickelt. Dieses Tool generiert automatisch clientseitige Modelle und HTTP-Anfragen auf Basis des Backend-Codes, sorgt für Konsistenz und reduziert die Entwicklungszeit. So funktioniert es:
– Automatische Generierung: Sobald ein Modell und ein Endpunkt auf dem Server erstellt werden, generiert unsere Bibliothek den entsprechenden Frontend-Code. Spätere Änderungen im Backend werden automatisch im Frontend übernommen.
– TypeScript-Unterstützung: Generierte Modelle behalten alle TypeScript-Funktionen, einschließlich Typinformationen und optionaler Felder.
– Service-Integration: Das Tool generiert Services, die mit beliebigen Server-API-Endpunkten kommunizieren und die Frontend-Integration vereinfachen.
– Konfigurierbarer Code: Entwickler können die Typserialisierung und das Mapping konfigurieren, um die Kompatibilität zwischen Frontend- und Backend-Bibliotheken sicherzustellen.
Vorteile
– Reduzierter Frontend-Code: Verringert den Umfang des Frontend-Codes um etwa 15 %, spart Entwicklungszeit und reduziert Fehler.
– Konsistente Modelle: Stellt die Übereinstimmung zwischen Client- und Servermodellen sicher und reduziert den Aufwand für Debugging und Tests.
– Höhere Effizienz: Vereinfacht den Integrationsprozess, sodass sich Entwickler stärker auf Kernfunktionen statt auf Boilerplate-Code konzentrieren können.
Funktionen
– TypeScript-Interfaces: Generiert aus Java-Modellen.
– TypeScript-Services: Erstellt für REST-Controller in Java.
– Annotation-Unterstützung: Unterstützt Jackson-Annotationen.
– Spring MVC-Kompatibilität: Funktioniert nahtlos mit Spring MVC.
– Benutzerdefiniertes Typ-Mapping: Ermöglicht individuelle Typkonvertierungen.
– Modulare Strategie: Unterstützt eine Package-zu-Modul-Strategie.
– Import-Generierung: Erstellt automatisch erforderliche Imports.
– Framework-Unterstützung: Kompatibel mit Angular und React.
Der TypeScript Generator wurde bereits erfolgreich in mehreren Projekten eingesetzt und führte zu einer deutlichen Reduzierung des Codeumfangs sowie zu einer spürbaren Verkürzung der Entwicklungszeit.
JSON-Bereiche
Steigerung der Anwendungsleistung mit der JSON Scopes Bibliothek
Problem
Anwendungsentitäten besitzen häufig bidirektionale Beziehungen, die zu zyklischen Abhängigkeiten führen und die JSON-Serialisierung erschweren. Eine gängige Lösung ist die Verwendung von Data Transfer Objects (DTOs). Das Erstellen und Pflegen separater DTO-Modelle für jede Geschäftsentität ist jedoch zeitaufwendig und erhöht aufgrund der großen Anzahl an DTOs den Entwicklungs-, Test- und Wartungsaufwand.
Lösung
Unsere JSON Scopes Bibliothek bietet einen effizienteren Ansatz, indem sie Entwicklern ermöglicht, die Datenserialisierung direkt mithilfe von Jackson-Annotationen zu konfigurieren und so den Einsatz von DTOs überflüssig zu machen. So funktioniert es:
– Individuelle Serialisierung: Ermöglicht eine präzise Kontrolle darüber, welche Daten in Controllern serialisiert werden, wodurch unnötige Informationen reduziert werden.
– Umgang mit zyklischen Abhängigkeiten: Der Serializer verarbeitet zyklische Abhängigkeiten, indem ein Objekt nur einmal serialisiert und an anderen Stellen durch Proxys ersetzt wird. Bei der Deserialisierung auf Client-Seite werden diese Proxys wieder durch die ursprünglichen Objekte ersetzt, sodass die Struktur des Datengraphen erhalten bleibt.
– Reduzierung der Datenmenge: Durch die Übertragung der Daten in Baumstruktur wird die Gesamtgröße von Modellen und Abfragen verringert.
Vorteile
– Eliminierung von DTOs: Es entfällt die Notwendigkeit, separate DTO-Modelle zu erstellen und zu pflegen, was den Code vereinfacht.
– Weniger Code-Duplikation: Reduziert redundanten Code sowohl im Backend als auch im Frontend.
– Optimierter Datentransfer: Verringert die Größe von Abfragen und steigert die Leistung der Anwendung.
– Vereinfachte Wartung: Reduziert Zeit- und Kostenaufwand für die Wartung, da die Serialisierungslogik zentralisiert wird.
Funktionen
– GraphQL-ähnliche Funktionalität: Ähnlich wie bei GraphQL werden flexible Datenabfragen ermöglicht.
– Entitäten-Serialisierung: Entitäten können direkt serialisiert werden, ohne DTOs zu verwenden.
– Kompatibilität: Funktioniert nahtlos mit Hibernate und dem Spring Framework.
– Bewährte Lösung: Wurde erfolgreich in zahlreichen Projekten eingesetzt und hat ihren Nutzen und ihre Effektivität unter Beweis gestellt.
Durch den Einsatz der JSON Scopes Bibliothek können Entwickler Anwendungsmodelle optimieren, die Größe von Abfragen reduzieren und die Gesamtleistung steigern – ein leistungsstarkes Werkzeug für moderne Webanwendungen.
