Dawno, dawno temu, w ramach cyklu Przybornik Javowca planowałem publikować artykuły na temat różnego rodzaju sprawdzonych bibliotek, frameworków i innych narzędzi, które pomagają programiście Java w codziennej niedoli. W sumie opublikowałem dwa wpisy, a huczne plany się rozmyły. Niemniej jednak cały czas, gdzieś głęboko w notatkach miałem zapisane kilka bibliotek, o których istnieniu i przydatności chciałem się podzielić. Ale pisanie odrębnych artykułów na temat każdej z nich jakoś nie zachęcał mnie do ruszenia tematu. Postanowiłem podejść do sprawy inaczej. Zdecydowałem się wykorzystać cykl Piątki z plusem i zrobić krótkie podsumowanie moich notatek w jednym artykule. I oto jest 🙂

Cykl artykułów "Piątki z plusem"

Ten wpis jest częścią cyklu, w ramach którego dzielę się swoimi ulubionymi "rzeczami codziennego użytku". Wszystkie do tej pory opublikowane artykuły znajdziesz poniżej:

  1. wtyczki do WordPressa
  2. zupełnie nieprogramistyczne kanały na YouTubie
  3. zestawy LEGO z efektem WOW!
  4. biblioteki przydatne w projektach Java
  5. intrygujące filmy dokumentalne
  6. ...

Postanowiłem wrzucić tylko te biblioteki, z którymi regularnie mam styczność w moich projektach i które często pojawiają się w nich niezależnie od typu aplikacji, czy oprogramowywanej domeny.

Lombok

O Lomboku (pełna nazwa to chyba „Project Lombok”) był odrębny artykuł. Mimo tego, powtórzę się jeszcze raz, bo zazwyczaj jest to jedna z pierwszych bibliotek, którą dołączam do projektu napisanego w czystej Javie. Dla przypomnienia: służy do zredukowania ilości nadmiernego, powtarzającego się kodu, typu gettery, settery, buildery, czy konstruktory.

Flyway

Flyway, podobnie jak Lombok, był już przeze mnie przedstawiany. Więc w ramach krótkiego przypomnienia, powiem tylko, że biblioteka służy do wersjonowania i trzymania w ryzach schematów relacyjnych baz danych, w połączeniu z produkcyjnym kodem projektu. Dzięki niemu problemy pominiętej kolumny podczas aktualizacji środowiska przeszły do lamusa.

Cykl artykułów "Przybornik Javowca"

Ten wpis jest częścią cyklu, w ramach którego opisuję moje doświadczenia i spostrzeżenia na temat różnego rodzaju sprawdzonych bibliotek, frameworków i innych narzędzi, które pomagają programiście Java w codziennej niedoli :)

Artykuły z tej serii łączą się wyłącznie tematyką i nie są ze sobą mocno związane, a więc spokojnie możesz je czytać wybiórczo. Wszystkie opublikowane do tej pory wpisu znajdziesz poniżej:

  1. Lombok – the boilerplate killer
  2. Flyway – dbaj o swoje relacje
  3. biblioteki przydatne w projektach Java

Apache Commons

Apache Commons to nie jedna, ale cały zbiór bibliotek stawiających sobie za cel opakowanie i utrzymywanie często powtarzających się fragmentów funkcjonalności. Pełna lista bibliotek dostępna jest na stronie projektu. Znajdziemy tu choćby bibliotekę dostarczającą dodatkowe metody do standardowych elementów języka Java, do pracy z kolekcjami, czy przy powtarzających się operacjach wejścia/wyjścia.

Guava

Konkurencja/alternatywa/uzupełnienie dla Apache Commons.

opencsv

Chociaż Apache Commons mają swoją bibliotekę do pracy z plikami CSV, to mi zazwyczaj bliżej jest do biblioteki opencsv.

ShedLock

Jeżeli tylko w naszej aplikacji mamy jakieś cyklicznie wykonywane, zaplanowane zadania i mamy więcej niż jedną instancję aplikacji, to często musimy zadbać o to, żeby wykonywały się one tylko na jednej instancji. ShedLock może nam w tym pomóc, wykorzystując wybraną bazę danych jako miejsce przechowywania locka.

Spock

Subiektywnie, według mnie (choć nie tylko), jest to najlepszy framework do testów jaki przytrafił się projektom Javowym. Ale uwaga, została ona napisana w… języku Groovy. Testy są o wiele czytelniejsze niż w konkurencyjnych projektach napisanych w Javie, ale próg wejścia jest nieco wyższy, bo bez podstawowej znajomości języka Groovy, czy zasad działania Spocka, możemy się sporo nagłówkować dlaczego dany test działa lub nie działa 🙂

GreenMail

Mały, przyjemny w obsłudze zestaw narzędzi do testowania wysyłki maili.

Testcontainers

I na koniec, cały czas zostając przy testowaniu, mamy bibliotekę Testcontainers, która w łatwy sposób dostarcza instancje najpopularniejszych (nie tylko) baz danych opakowanych w kontenery Dockera.

Coś jeszcze?

To tyle ode mnie. Być może coś jeszcze bym znalazł, ale część bibliotek uzależnionych jest od specyfiki projektu, a w tym artkule chciałem zawrzeć te najbardziej „uniwersalne”. Co myślisz o powyższej liście? Czy czegoś na niej brakuje? Jaka jest Twoja ulubiona biblioteka wykorzystywana w projektach Java? Komentarze poniżej są do Twojej dyspozycji 🙂

Picture Credits