Biblioteki blue veery GmbH
Generator TypeScriptu
Efektywny rozwój frontendowy z wykorzystaniem TypeScript Generator
Problem
W większości systemów webowych kod po stronie klienta i serwera musi być ze sobą spójny – modele oraz zapytania HTTP na frontendzie powinny odpowiadać endpointom backendowym. Ze względu na rozdzielenie prac frontendowych i backendowych proces ten często prowadzi do powielania pracy oraz zwiększonego ryzyka błędów. Utrzymanie synchronizacji między obiema warstwami jest czasochłonne i podnosi koszty rozwoju oraz utrzymania systemu.
Rozwiązanie
Aby rozwiązać ten problem, stworzyliśmy narzędzie TypeScript Generator. Automatycznie generuje ono modele po stronie klienta oraz zapytania HTTP na podstawie kodu backendowego, zapewniając spójność i skracając czas developmentu. Oto jak działa:
– Automatyczne generowanie: Po utworzeniu modelu i endpointu na serwerze nasza biblioteka generuje odpowiadający im kod frontendowy. Wszelkie późniejsze zmiany w backendzie są automatycznie odzwierciedlane na frontendzie.
– Wsparcie dla TypeScript: Wygenerowane modele zachowują wszystkie funkcje TypeScript, w tym informacje o typach oraz pola opcjonalne.
– Integracja z usługami: Narzędzie generuje serwisy komunikujące się z dowolnym endpointem API po stronie serwera, upraszczając integrację frontendową.
– Konfigurowalny kod: Programiści mogą konfigurować serializację typów i mapowanie danych, aby zapewnić kompatybilność między bibliotekami frontendowymi i backendowymi.
Korzyści
– Redukcja kodu frontendowego: Zmniejsza objętość kodu frontendowego o około 15%, oszczędzając czas programistów i ograniczając liczbę błędów.
– Spójne modele: Zapewnia zgodność modeli klienta i serwera, skracając czas debugowania i testowania.
– Zwiększona efektywność: Upraszcza proces integracji, pozwalając programistom skupić się na kluczowych funkcjonalnościach zamiast na kodzie powtarzalnym (boilerplate).
Funkcjonalności
– Interfejsy TypeScript: Generowane na podstawie modeli Java.
– Serwisy TypeScript: Tworzone dla kontrolerów REST w Javie.
– Obsługa adnotacji: Wspiera adnotacje Jackson.
– Kompatybilność ze Spring MVC: Działa bezproblemowo z frameworkiem Spring MVC.
– Własne mapowanie typów: Umożliwia niestandardowe konwersje typów.
– Strategia modułowa: Obsługuje strategię package-to-module.
– Generowanie importów: Automatycznie tworzy wymagane importy.
– Wsparcie frameworków: Kompatybilne z Angular i React.
TypeScript Generator został z powodzeniem wdrożony w wielu projektach, co przełożyło się na znaczną redukcję rozmiaru kodu oraz skrócenie czasu realizacji projektów.
Zakresy JSON
Zwiększanie wydajności aplikacji dzięki bibliotece JSON Scopes
Problem
Encje aplikacji często posiadają dwukierunkowe relacje, co prowadzi do cyklicznych zależności utrudniających serializację JSON. Powszechnym rozwiązaniem jest stosowanie obiektów Data Transfer Object (DTO). Jednak utrzymywanie oddzielnych modeli DTO dla każdej encji biznesowej jest czasochłonne i zwiększa koszty rozwoju, testowania oraz utrzymania ze względu na ich dużą liczbę.
Rozwiązanie
Nasza biblioteka JSON Scopes oferuje bardziej efektywne podejście, umożliwiając programistom konfigurację serializacji danych bezpośrednio przy użyciu adnotacji Jackson, eliminując potrzebę tworzenia DTO. Oto jak to działa:
– Indywidualna serializacja: Umożliwia precyzyjną kontrolę nad tym, jakie dane są serializowane w kontrolerach, ograniczając przekazywanie zbędnych informacji.
– Obsługa zależności cyklicznych: Serializer przetwarza zależności cykliczne, serializując obiekt tylko raz, a w pozostałych miejscach używając proxy. Podczas deserializacji po stronie klienta proxy są zastępowane oryginalnymi obiektami, co pozwala zachować strukturę grafu danych.
– Redukcja wielkości danych: Dzięki przesyłaniu danych w formacie drzewa biblioteka zmniejsza rozmiar modeli i zapytań.
Korzyści
– Eliminacja DTO: Usuwa konieczność tworzenia i utrzymywania oddzielnych modeli DTO, upraszczając kod.
– Ograniczenie duplikacji kodu: Minimalizuje powielanie kodu zarówno po stronie backendu, jak i frontendu.
– Optymalizacja transferu danych: Zmniejsza rozmiar zapytań i zwiększa wydajność aplikacji.
– Łatwiejsze utrzymanie: Skraca czas i obniża koszty utrzymania dzięki scentralizowaniu logiki serializacji.
Funkcje
– Funkcjonalność podobna do GraphQL: Umożliwia elastyczne zapytania o dane, podobnie jak GraphQL.
– Serializacja encji: Pozwala na bezpośrednią serializację encji bez użycia DTO.
– Kompatybilność: Działa bezproblemowo z Hibernate i Spring Framework.
– Sprawdzone rozwiązanie: Z powodzeniem wdrożone w wielu projektach, co potwierdza jego wartość i skuteczność.
Dzięki wykorzystaniu biblioteki JSON Scopes programiści mogą optymalizować modele aplikacji, zmniejszać rozmiar zapytań i zwiększać ogólną wydajność, czyniąc ją potężnym narzędziem dla nowoczesnych aplikacji webowych.
