Nasze Biblioteki

Generator TypeScript

Efektywne tworzenie frontendów dzięki Generatorowi TypeScript

Problem

W większości systemów internetowych kod po stronie klienta i serwera musi być ze sobą zgodny – modele i żądania HTTP na froncie powinny odzwierciedlać punkty końcowe backendu. Z powodu oddzielenia rozwoju klienta i serwera proces ten często prowadzi do powielania wysiłków i zwiększa ryzyko błędów. Utrzymanie synchronizacji między obiema stronami jest czasochłonne i podnosi koszty rozwoju oraz utrzymania.

Rozwiązanie

Aby rozwiązać ten problem, opracowaliśmy Generator TypeScript. To narzędzie automatycznie generuje modele i żądania HTTP po stronie klienta na podstawie kodu backendowego, co zapewnia spójność i skraca czas tworzenia oprogramowania. Tak to działa:

  • Automatyczna generacja: Po utworzeniu modelu i punktu końcowego na serwerze, nasza biblioteka generuje odpowiedni kod dla frontendu. Wszelkie późniejsze zmiany w backendzie są automatycznie odzwierciedlane na froncie.
  • Obsługa TypeScript: Generowane modele zachowują wszystkie możliwości TypeScript, w tym informacje o typach i opcjonalne pola.
  • Integracja z usługami: Narzędzie generuje usługi, które komunikują się z każdym punktem końcowym API serwera, upraszczając integrację z frontendem.
  • Konfigurowalny kod: Deweloperzy mogą konfigurować serializację typów i mapowanie, aby zapewnić kompatybilność między bibliotekami frontendowymi i backendowymi.

Zalety

  • Zredukowany kod frontendowy: Zmniejsza objętość kodu na froncie o około 15%, co oszczędza czas programistów i redukuje liczbę błędów.
  • Spójne modele: Zapewnia zgodność między modelami po stronie klienta i serwera, co skraca czas debugowania i testowania.
  • Zwiększona efektywność: Upraszcza proces integracji, umożliwiając programistom skupienie się na kluczowych funkcjonalnościach zamiast na kodzie szablonowym.

Funkcje

  • Interfejsy TypeScript: Generowane na podstawie modeli Java.
  • Usługi TypeScript: Tworzone dla kontrolerów REST w Javie.
  • Obsługa adnotacji: Wspiera adnotacje Jackson.
  • Kompatybilność ze Spring MVC: Działa bezproblemowo ze Spring MVC.
  • Niestandardowe mapowanie typów: Umożliwia własne konwersje typów.
  • Modularna strategia: Obsługuje strategię pakiet-do-modułu.
  • Generowanie importów: Automatycznie generuje niezbędne importy.
  • Obsługa frameworków: Kompatybilny z Angular i React.

Generator TypeScript został pomyślnie wdrożony w wielu projektach, prowadząc do znaczącej redukcji objętości kodu oraz czasu potrzebnego na rozwój aplikacji.

JSON Scopes

Zwiększenie wydajności aplikacji dzięki bibliotece JSON Scopes

Problem

Encje aplikacji często mają dwukierunkowe powiązania, co prowadzi do cyklicznych zależności, utrudniających serializację JSON. Typowym rozwiązaniem tego problemu jest stosowanie obiektów transferu danych (DTO). Jednak utrzymywanie oddzielnego modelu DTO dla każdej encji biznesowej jest czasochłonne i zwiększa koszty rozwoju, testowania i wsparcia, ze względu na dużą liczbę DTO.

Rozwiązanie

Nasza biblioteka JSON Scopes oferuje bardziej efektywne podejście, pozwalając programistom konfigurować serializację danych bezpośrednio za pomocą adnotacji Jackson, eliminując tym samym konieczność stosowania DTO. Tak to działa:

  • Indywidualna serializacja: Możliwość dokładnego określenia, które dane mają być serializowane w kontrolerach, co ogranicza zbędne informacje.
  • Obsługa cyklicznych zależności: Serializator przetwarza cykliczne zależności, serializując obiekt tylko raz i stosując proxy w innych miejscach. Podczas deserializacji na kliencie proxy są zastępowane oryginalnymi obiektami, co zachowuje strukturę grafu danych.
  • Zmniejszenie rozmiaru ładunku: Dzięki przekazywaniu danych w formacie drzewa biblioteka redukuje ogólny rozmiar modelu oraz zapytań.

Zalety

  • Eliminuje DTO: Usuwa konieczność tworzenia i utrzymywania osobnych modeli DTO, upraszczając kod.
  • Redukuje duplikację kodu: Minimalizuje redundantny kod zarówno po stronie backendu, jak i frontendu.
  • Optymalizuje przesył danych: Zmniejsza rozmiar zapytań i zwiększa wydajność aplikacji.
  • Upraszcza konserwację: Redukuje czas i koszty związane z utrzymaniem kodu poprzez konsolidację logiki serializacji danych.

Funkcje

  • Funkcjonalność podobna do GraphQL: Podobna koncepcja do GraphQL, umożliwiająca elastyczne zapytania do danych.
  • Serializacja encji: Serializuje encje bezpośrednio, eliminując potrzebę użycia DTO.
  • Kompatybilność: Współpracuje bezproblemowo z Hibernate i Spring Framework.
  • Sprawdzone rozwiązanie: Z powodzeniem wdrożone w wielu projektach, potwierdzając swoją wartość i skuteczność.

Dzięki wykorzystaniu biblioteki JSON Scopes programiści mogą optymalizować modele aplikacji, zmniejszać rozmiar zapytań i zwiększać ogólną wydajność, co czyni ją potężnym narzędziem dla nowoczesnych aplikacji internetowych.