TeamQuest Blog

Biblioteki Java zwiększające produktywność

Biblioteki Java zwiększające produktywność

Marcin Sarna , 13.04.2021 r.

Z czego warto skorzystać żeby nie klepać w kółko tego samego kodu.

Pisanie kodu powielanego po wielokroć zabiera dużo czasu. Java ma dużą społeczność, która stworzyła wiele bibliotek, pomagających w takich sytuacjach zwiększyć produktywność, eliminując potrzebę pisania tego samego kilka razy oraz dostarczając narzędzia do rozwiązywania typowych problemów z Javą. W tym artykule omówimy przykłady takich bibliotek a tutaj poczytasz o najpopularniejszych frameworkach.

Lombok

Masz dość klas, które mają w zasadzie tylko standardowe metody, takie jak gettery, setery, konstruktory, nadpisane metody equal itp.? Cóż, Lombok jest dla Ciebie. Większość IDE może automatycznie generować gettery i setery za pomocą jednego kliknięcia przycisku, ale różnica polega na tym, że IDE generuje te metody w samym pliku .java, a tymczasem Lombok generuje wszystkie metody bezpośrednio do pliku klasy. Zastępuje po prostu treść tych metod odpowiednimi adnotacjami.

Na przykład użycie @Log4j pozwala uniknąć konieczności inicjalizowania zmiennej rejestrującej do logów w pliku klasy a zamiast tego możesz skoncentrować się na swojej logice biznesowej. Kod z użyciem Lomboka jest znacznie łatwiejszy do odczytania.

MapStruct

Czy używasz architektury wielowarstwowej w swoim projekcie Java? Jeśli tak, zdecydowanie powinieneś pomyśleć o użyciu MapStruct. W architekturze wielowarstwowej wszystkie warstwy aplikacji są luźno powiązane, więc będą chwile, kiedy będziesz musiał mapować swój obiekt, który żyje w jednej warstwie, na obiekt innej warstwy.

Typowym przykładem może być sytuacja, w której encje poddane persystencji mają być odwzorowane na DTO w warstwie aplikacji. Mapowanie jednego POJO z innym POJO może wymagać dużej ilości w sumie mało odkrywczego kodu. Jeśli musisz zmapować dwie klasy to prawdopodobnie napiszesz klasę konwersji (mapper), która będzie miała funkcję pozwalającą pobrać jeden obiekt jako dane wejściowe i zwrócić inny obiekt jako dane wyjściowe – i odwrotnie. A Mapper na to:

@Mapper 
public interface CarToCarDTOMapper
{
CarDTO map(Car car);
}

Naprawdę nie będziesz musiał implementować tego interfejsu, MapStruct zrobi to automatycznie za Ciebie. Co więcej, jeśli w przyszłości zdecydujesz się dodać jeszcze 1 nowe pole, powiedzmy kolor samochodu, w klasie encji, możesz dodać to samo pole w DTO i naprawdę nie będziesz musiał dokonywać żadnych zmian w klasie Mapper.

Guava

Guava to zestaw podstawowych bibliotek Java od Google, który obejmuje nowe typy kolekcji (takie jak multimapmultiset), niemutowalne kolekcje, bibliotekę grafów i narzędzia do współbieżności, haszowania i wiele więcej. Jest szeroko stosowany w większości projektów Java w Google a także przez wiele innych firm.

Guava ma narzędzia, które mogą pomóc w rozwiązaniu nie tylko prostych problemów w Javie, ale także bardziej złożonych. Z Guawą łatwo jest przekonwertować mapę na stringa. Rozwiązania większości problemów związanych z buforowaniem, współbieżnością, czy jakimkolwiek innym popularnym zagadnieniem znajdziesz w bibliotece Guawy.

Feign

Jeśli pracujesz jako programista Java, z pewnością napotkałbyś sytuacje, w których musisz skorzystać z jakiegoś REST API. Istnieje wielu klientów HTTP, takich jak OkHttpClient, których można używać ale zwykle wymagają dużej ilości kodu. W RestTemplate jest to bardzo proste, a odpowiedź jest konwertowana na nasz obiekt, którego możemy faktycznie użyć. Ale nadal, jeśli wywołujemy wiele REST API musimy pobrać dany adres URL i wywołać REST API programowo.

A tak to wygląda w Feign:

@FeignClient(name="content-service", url="127.0.0.1")
public interface CarService {
@RequestLine("GET cars/{carNumber}")
String getCarByType(@Param("carType") String carNumber);
}

Sprawdź oferty pracy na TeamQuest

Hibernate

Czy nie lubisz pisania zapytań SQL w swoim kodzie? Czy czasami zapominasz o zamknięciu połączenia do bazy danych po uruchomieniu zapytania? To Hibernate dla Ciebie. Kiedy próbujesz uzyskać dostęp do bazy danych, musisz się napisać: otworzyć połączenie, uruchomić zapytanie, przekonwertować zestaw wyników na encje i zamknąć połączenie, a poza tym musisz także pisać możliwie wydajne zapytania. Jeśli będziesz używać Hibernate, nie będziesz musiał martwić się żadną z powyższych rzeczy.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej