Md Kamaruzzaman
Md KamaruzzamanLead Solution Architect

10 przydatnych repozytoriów na GitHubie dla Java Developerów

Poznaj 10 najbardziej przydatnych repozytoriów dla Java Developerów, które będą Ci towarzyszyć przez całą karierę.
14.06.20226 min
10 przydatnych repozytoriów na GitHubie dla Java Developerów

Java to niekwestionowany król oprogramowania biznesowego i jeden z najpopularniejszych języków programowania, jakie istnieją. Ostatnio Java skończyła 25 lat i myślę, że jeszcze przez długi czas będzie w czołówce wszystkich technologii. 

GitHub to z kolei swoista Biblioteka w Aleksandrii software developmentu - platforma do hostowania kodu ma obecnie ponad 100 milionów repozytoriów. GitHub posiada różne frameworki, biblioteki, tutoriale, książki, czy nawet całe języki programowania. 

Jeśli jesteś Java Developerem i chcesz się trochę podszkolić, to GitHub jest tutaj jak kopalnia złota. A znaleźć dobre repozytorium na GitHubie to szukanie igły w stogu siana. 

Poznasz tutaj 10 świetnych repozytoriów Javy, które dotyczą następujących rzeczy: 

  • Tutoriali
  • Materiałów do nauki
  • Rozwoju umiejętności dotyczących projektowania oprogramowania 
  • Dema aplikacji


Uwaga:
poniższa lista to nie zestawienie popularnych frameworków Javy. Nie jest to także lista użytecznych bibliotek javowych. 

1. Java Design Patterns 


Źródło: GitHub


Wzorce projektowe w oprogramowaniu to ogólne rozwiązania, których można cały czas używać do rozwiązywania powtarzających się problemów przy projektowaniu programów. Dają nam one zasób słownictwa potrzebny do dyskutowania o popularnych problemach. 

Wzorce projektowe mogą poprawić jakość kodu i szybkość kodowania dzięki sprawdzonym rozwiązaniom. Najlepszym sposobem na ich naukę jest zobaczenie, jak właściwie działają. 

Java Design Patterns to repozytorium, które zawiera różne implementacje wzorców projektowych, od najstarszych i najpopularniejszych (Iterator, Singleton) do tych najbardziej nowoczesnych (aggregator mikroserwisów, Serverless). 

Repozytorium to nie tylko pomoże Ci poprawić umiejętności koderskie, ale sprawi, że będziesz lepszym i bardziej produktywnym developerem. 

Jeśli kodujesz w Javie, to Java Design Patterns będzie Ci towarzyszyć od początku kariery, aż do emerytury. 

2. Interviews


Źródło: GitHub 


Rozmowy rekrutacyjne na stanowisko programisty są bardzo wymagające. Wielu nie jest na nie wystarczająco przygotowana i potem zrzuca winę na pecha. Solidne przygotowanie na rozmowę kwalifikacyjną mocno zwiększy prawdopodobieństwo, że otrzymasz swoją wymarzoną pracę. 

Repozytorium Interviews zawiera wszystko, co musisz umieć, aby przygotować się na rozmowę: filmiki z YouTube’a, artykuły, ćwiczenia z kodowania na żywo, struktury danych, algorytmy, książki z pytaniami rekrutacyjnymi, czy filmiki z wykładów. Repozytorium to zawiera również najczęstsze problemy w Javie z LeetCode. 

Interviews to imponujące repo, nie tylko dla Java Developerów. Myślę, że często będziesz odwiedzać tę stronę podczas swojej kariery. 

3. Algorithms


Źródło: GitHub


Jeśli jesteś Inżynierem oprogramowania, to algorytmy są Twoim chlebem powszednim. Używanie odpowiednich algorytmów może znacznie polepszyć działanie programu. Umiejętność wyboru odpowiednich algorytmów dla danego problemu (złożoność procesora, zjadanie pamięci) to wyznacznik dobrego Inżyniera oprogramowania. 

Nic więc dziwnego, że algorytmy są często wykorzystywane w trakcie rozmów kwalifikacyjnych. I nieważne, czy mówimy o gigantach technologicznych, takich jak Google, Microsoft, czy o jakimś startupie - i tu i tu możesz się z tym spotkać.  

Niezależnie od tego, czy jesteś juniorem, midem, czy doświadczonym Java Developerem, to repozytorium to będzie Ci się regularnie przydawać. 

4. Realworld


Źródło: GitHub


Jeśli tworzysz nowoczesne aplikacje fullstackowe w Javie, to prawdopodobnie korzystasz z najnowszego JavaScript SPA na Frontendzie, a Javy używasz na backendzie. 

Realword zawiera implementację aplikacji “Conduit” (klon Mediuma) przy użyciu prawie wszystkich kombinacji Frontendu i Backendu. Twórcy nazywają to “matką wszystkich aplikacji demo”, ponieważ mamy tu do czynienia z prawdziwą aplikacją. 

Biorąc pod uwagę szeroki wachlarz technologii frontendowych i backendowych, które są tam wspierane, Realworld naprawdę ma się czym pochwalić.  

Obecnie są tam wspierane wszystkie możliwe framweorki frontendowe JS (np. React, Angular, Vue, Svelte, AngularJS, Ember.js, Aurelia, Vanilla JS itd.) i wszystkie możliwe frameworki backendowe napisane we wszystkich mainstreamowych językach programowania. Jeśli chodzi o Javę to mamy Quarkus i Vert.x. 

Realworld jest też na GitHubie - repozytorium to będzie Ci potrzebne przez całą Twoją karierę, jeśli jesteś Fullstackiem. 

5. Awesome Java


Źródło: GitHub


Często znajdujemy coś związanego z Javą i tracimy mnóstwo czasu na znalezienie tego w Google. Istnieje jednak repozytorium, które nas w takich sytuacjach ratuje. 

Awesome Java zawiera wszystko, co związane z Javą - nieważne, czy szukasz manipulatora ByteCode, bibliotek Uczenia maszynowego, czy bibliotek pomocniczych - Awesome Java ma wszystkie potrzebne linki. 

Repozytorium to jest na bieżąco aktualizowane i ma obecnie 300 aktywnych członków społeczności. 

6. Baeldung Tutorials


Źródło: GitHub


Jeśli programujesz w Javie, to pewnie wpadłeś już kiedyś na tutoriale od Baeldung. Jest to obecnie numer jeden, jeśli chodzi o tutoriale Javy, Spring i web developmentu online. Baeldung wyróżnia się na tle innych stron tego typu tym, że obejmuje wszystko, od najbardziej podstawowych do najbardziej zaawansowanych tematów w developmencie Java/Spring. 

Oprócz tutoriali, strona ta zawiera również kursy, poradniki i ebooki. Ważne jest również to, że wszystkie przykłady na Baeldung są poparte kodem z GitHuba. 

Repozytorium to zawiera szereg małych tutoriali skupionych na developmencie w Javie i Spring oraz linki do artykułów tutorialowych, gdzie kod jest dokładniej wytłumaczony. Baeldung Tutorials to niezbędnik nie tylko develoerów Springa, ale również czystej Javy. 

7. JHipster


Źródło: GitHub


Jeśli pracujesz w Enterprise Java, to pewnie słyszałeś o JHipster. Jest to platforma do generowania, rozwoju i deploymentu produkcyjnych monolitycznych lub opartych na mikroserwisach aplikacji webowych. 

Jeśli chodzi o frontend, to mamy tutaj 3 frameworki SPA (Angular, React, Vue), a backend reprezentuje Spring Boot. JHipster obsługuje również wszystkie najważniejsze magazyny danych (Oracle, PostgreSQL, MySQL, MS-SQL, MongoDB, Cassandra, ELK, Kafka). 

JHipster oferuje też zaawansowane funkcje dotyczące bezpieczeństwa, takie jak OAuth2 i OpenID Connect. Platforma ta zawiera również sporo rozszerzeń, które pomogą w rozwoju aplikacji biznesowych opartych na Spring Boot i to praktycznie na każdą platformę (w tym chmurę). 

Projekt ten jest na tyle przydatny i dojrzały, że możesz przy jego pomocy rozwijać swój Proof of Concept albo aplikacje produkcyjne. 

8. RxJava Android Samples


Źródło: GitHub

W poprzednich latach programowanie reaktywne zyskuje na popularności, oferując przydatny poziom abstrakcji do radzenia sobie z programowaniem asynchronicznym i opartym na zdarzeniach. RxJava to implementacja ReactiveX, która oferuje programowanie reaktywne za pośrednictwem obiektów typu Observables. 

Nauka programowania reaktywnego w Javie to spore wyzwanie, bo w Javie domyślnie programuje się synchronicznie. Ten projekt GitHubowy zawiera przykłady RxJava z prawdziwych projektów, i pomimo że dotyczą one Androida, to programiści Javy mogą ich śmiało używać też w innym kontekście. 

9. Java8 Tutorial


Źródło: GitHub


Java8 to jedno z bardziej przełomowych i innowacyjnych wydań tego języka, ponieważ wprowadziło do niego programowanie funkcyjne z takimi rzeczami jak Lambda czy potoki, ale zatrzymując swoją słynną kompatybilność wsteczną. 

Niestety nie wszyscy Java Developerzy korzystają teraz z pełni możliwości tego języka - widziałem wielu doświadczonych programistów, którzy nadal tworzą aplikacje po staremu. Jednym z powodów czegoś takiego jest fakt, że przerzucanie się na programowanie funkcyjne z obiektowego to dość duża zmiana, a większość woli pozostać w swojej strefie komfortu. 

Repozytorium to zawiera wiele przydatnych przykładów programowania funkcyjnego (Lambda, potoki, interfejs funkcyjny, równoległy streaming itd.), które zostały napisane w świetny i czytelny sposób. Jeśli programowanie funkcyjne w Javie to dla Ciebie coś nowego, to repozytorium to Ci z pewnością pomoże. 

10. Cracking the Coding Interview in Java


Źródło: GitHub


Nieważne, czy aplikujesz na stanowisko programisty w czołowej firmie, czy w jakimś startupie - będziesz musiał pójść na rozmowę techniczną. “Cracking the Coding Interview” to bardzo znana i doceniana książka, która pomoże Ci przygotować się na takie wyzwanie. 

Pozycja ta obejmuje wiele rodzajów zadań związanych z kodowaniem, włączając w to złożoności algorytmiczne, zagadki matematyczne i logiczne, programowanie dynamiczne, sortowanie i przeszukiwanie, wielowątkowość i wiele więcej. 

Książkę tę wyróżnia również fakt, że wyjaśnia wszystkie przykłady w prosty i elegancki sposób. W tym repozytorium masz wszystkie przykłady w Javie z wydania 6th edition. Nawet jak nie możesz kupić oryginalnej książki, to zapoznanie się z wszystkimi przykładami w repo na pewno przyda Ci się na następnej rozmowie technicznej.


Oryginał tekstu w języku angielskim możesz przeczytać tutaj

<p>Loading...</p>