Unsere Bibliotheken

TypeScript-Generator

Effiziente Frontend-Entwicklung mit TypeScript Generator

Problem

In den meisten webbasierten Systemen müssen der Client-seitige und der Server-seitige Code einander entsprechen, wobei die Modelle und HTTP-Anfragen auf der Client-Seite die Server-seitigen Endpunkte widerspiegeln müssen. Aufgrund der Trennung von Client- und Server-Entwicklung führt dieser Prozess typischerweise zu redundanten Bemühungen und erhöht die Wahrscheinlichkeit von Fehlern. Die Synchronisierung beider Seiten aufrechtzuerhalten, ist mühsam und führt zu höheren Entwicklungs- und Wartungskosten.

Lösung

Um dieses Problem zu lösen, haben wir einen TypeScript Generator entwickelt. Dieses Tool generiert automatisch Client-seitige Modelle und HTTP-Anfragen basierend auf dem Server-seitigen Code, was Konsistenz gewährleistet und die Entwicklungszeit verkürzt. So funktioniert es:

  • Automatische Generierung: Sobald ein Modell und ein Endpunkt auf dem Server erstellt wurden, erzeugt unsere Bibliothek den entsprechenden Frontend-Code. Alle nachfolgenden Änderungen im Backend werden durch automatische Updates im Frontend widergespiegelt.
  • TypeScript-Fähigkeiten: Die generierten Modelle behalten alle TypeScript-Fähigkeiten bei, einschließlich Typinformationen und Felder Optionalität.
  • Service-Integration: Das Tool erstellt Services, die mit jedem Server-API-Endpunkt kommunizieren, was die Integration im Frontend vereinfacht.
  • Konfigurierbarer Code: Entwickler können die Typ-Serialisierung und -Zuordnung konfigurieren, um die Kompatibilität zwischen Frontend- und Backend-Bibliotheken sicherzustellen.

Vorteile

  • Reduzierter Frontend-Code: Verringert das Volumen des Frontend-Codes um etwa 15%, spart Entwicklungszeit und reduziert Fehler.
  • Konsistente Modelle: Gewährleistet Konsistenz zwischen Client- und Server-Modellen, was die Debugging- und Testzeit verkürzt.
  • Erhöhte Effizienz: Vereinfacht den Integrationsprozess, sodass Entwickler sich auf die Kernfunktionalität anstatt auf Boilerplate-Code konzentrieren können.

Funktionen

  • TypeScript-Interfaces: Generiert basierend auf Java-Modellen.
  • TypeScript-Services: Erstellt für Java REST-Controller.
  • Unterstützung von Anmerkungen: Unterstützt Jackson-Anmerkungen.
  • Kompatibilität mit Spring MVC: Funktioniert nahtlos mit Spring MVC.
  • Benutzerdefinierte Typ-Zuordnung: Ermöglicht benutzerdefinierte Typ-Konvertierungen.
  • Modulare Strategie: Unterstützt Paket-zu-Modul-Strategie.
  • Import-Generierung: Generiert automatisch die notwendigen Importe.
  • Framework-Unterstützung: Kompatibel mit Angular und React.

Der TypeScript Generator wurde in zahlreichen Projekten erfolgreich eingesetzt und zeigte signifikante Reduzierungen im Code-Volumen und in der Entwicklungszeit.

JSON Scopes

Steigerung der Anwendungs-Effizienz mit der JSON Scopes Library

Problem

Anwendungsentitäten haben oft bidirektionale Assoziationen, die zu zyklischen Abhängigkeiten führen, was die JSON-Serialisierung problematisch macht. Typischerweise verwenden Entwickler Data Transfer Objects (DTOs), um dieses Problem zu lösen. Die Pflege eines separaten DTO-Modells für jedes Geschäftsmodell ist jedoch arbeitsintensiv und erhöht die Entwicklungs-, Test- und Supportzeiten aufgrund der Vielzahl an DTOs.

Lösung

Unsere JSON Scopes Library bietet einen effizienteren Ansatz, indem Entwickler die Datenserialisierung direkt mit Jackson-Anmerkungen konfigurieren können, wodurch die Notwendigkeit von DTOs entfällt. So funktioniert es:

  • Individuelle Serialisierung: Definieren Sie genau, welche Daten in Controllern serialisiert werden sollen, sodass nur die notwendigen Daten enthalten sind.
  • Umgang mit zyklischen Abhängigkeiten: Der Serializer verarbeitet zyklische Abhängigkeiten, indem er ein Objekt einmal serialisiert und an anderen Stellen Proxys platziert. Während der Deserialisierung auf der Client-Seite werden die Proxys durch Verweise auf die Originalobjekte ersetzt, wodurch eine Graphstruktur beibehalten wird.
  • Reduzierte Payload-Größe: Durch die Übertragung von Daten in einem Baumformat reduziert die Bibliothek die Gesamtgröße des Modells und der Anforderungspayloads.

Vorteile

  • Eliminiert DTOs: Entfernt die Notwendigkeit zur Pflege separater DTO-Modelle und vereinfacht den Code.
  • Reduziert Code-Duplizierung: Minimiert redundanten Code sowohl im Backend als auch im Frontend.
  • Optimiert die Datenübertragung: Verringert die Größe der Anforderungspayloads und verbessert die Anwendungsleistung.
  • Vereinfacht die Wartung: Reduziert Entwicklungs- und Wartungsaufwand durch Konsolidierung der Entitäts- und Datenserialisierungslogik.

Funktionen

  • GraphQL-ähnliche Funktionalität: Konzeptuell ähnlich wie GraphQL, bietet flexible Datenabfrage.
  • Entitätsserialisierung: Serialisiert direkt Entitäten ohne DTOs.
  • Kompatibilität: Funktioniert nahtlos mit Hibernate und Spring Frameworks.
  • Bewährte Lösung: Erfolgreich in mehreren Projekten implementiert, demonstriert seinen Wert und seine Effektivität.

Durch die Nutzung der JSON Scopes Library können Entwickler Anwendungsmodelle optimieren, Payload-Größen reduzieren und die Gesamteffizienz steigern, was sie zu einem leistungsstarken Werkzeug für moderne Webentwicklung macht.