JavaRush /Blog Java /Random-PL /Jawa. Plan działania

Jawa. Plan działania

Opublikowano w grupie Random-PL
Jawa.  Plan działania - 1

Treść:

  1. Sekcja Zero - Rdzeń Java
  2. Narzędzia
  3. API JDK
  4. Co nowego w Javie 8
  5. SQL, bazy danych, JDBC
  6. Ramy
  7. Biblioteki i frameworki do testowania
  8. Biblioteki serwisowe
  9. Klienci API
  10. Wzorce projektowe
  11. Dodatkowa wiedza
Co powinien wiedzieć potencjalny Java Junior, aby dostać pierwszą pracę lub chociaż aplikować na stanowisko Trainee w dobrej firmie? Jakie narzędzia pomogą programiście Java wejść na wyższy poziom? Które technologie studiować, a które zostawić na później? Na te pytania nie ma standardowej odpowiedzi, tak jak nie ma jednego planu działania, który pasowałby absolutnie każdemu. Niektóre firmy dążą do rozwoju, stale wprowadzając nowe technologie i testując możliwości nowych wersji języka, inne zaś uparcie trzymają się starych. Istnieją również opcje „środkowe” i być może jest ich więcej. Jednakże przygotowaliśmy plan działania dla początkującego programisty Java. Chcąc maksymalnie uprościć sprawę, wskazaliśmy tylko te technologie i tematy, które są niezbędne dla zdecydowanej większości „javistów”. Należy pamiętać, że nie wszystko trzeba szczegółowo przestudiować (niektóre z powyższych można opanować jedynie pracując w zespole), ale ogólne zrozumienie nie zaszkodzi.

0. Sekcja Zero - Rdzeń Java

Sekcję zerową umieściliśmy w artykule na wszelki wypadek, gdyby trafiła tu osoba, która dopiero planuje naukę Javy i nie wie od czego zacząć. Java Core to coś, co nawet początkujący powinien znać bardzo dobrze. To znaczy znać podstawowe rzeczy, rozumieć, co język oferuje do rozwiązania konkretnego problemu, a w prostych przypadkach móc zastosować tę wiedzę. Możesz poćwiczyć Java Core na JavaRush, a jeśli jeszcze tego nie zrobiłeś, zapraszamy na kurs ! Cóż, wszystkim innym przypomnijmy o głównych kamieniach milowych Java Core:
  • Podstawowe konstrukcje Java, operatory i typy danych
  • OOP i jego implementacja w Javie
  • Wyjątki
  • Kolekcje Javy
  • Genetyki
  • Wielowątkowość

1. Narzędzia

IDE lub zintegrowane środowisko programistyczne

Głównym narzędziem współczesnego programisty jest IDE. Jest ich dziś na rynku mnóstwo, ale w profesjonalnym programowaniu w Javie są zazwyczaj tylko dwie nazwy. Jest to darmowy Eclipse , zbudowany na wtyczkach , który utrzymuje się na rynku od wielu lat z rzędu, oraz IntelliJ IDEA , który w ostatnich latach aktywnie wypiera Eclipse, i to pomimo tego, że wymagana jest subskrypcja wersji Ultimate profesjonaliści kosztują. Przypomnijmy, że w kursie JavaRush korzystamy z darmowej edycji Community IntelliJ IDEA, która ma pewne ograniczenia funkcjonalne w stosunku do Ultimate. Wyrażenie „Znam IDE” oznacza, że ​​znasz podstawowe możliwości środowiska programistycznego, wiesz, jak kompilować, uruchamiać, debugować i testować pliki oraz refaktoryzować kod. Opanowanie skrótów klawiszowych będzie dobrą pomocą w przyspieszeniu pracy. Nie bądź leniwy, poświęć kilka godzin na poznanie funkcji IDE, o których nie miałeś pojęcia i zacznij z nich korzystać w praktyce. I nie zaniedbuj debugowania, to bardzo przydatna umiejętność. Wszystkie te działania pomogą znacznie poprawić szybkość i jakość Twojej pracy.

Narzędzia do automatycznego montażu

Obecnie w projektach Java najczęściej wykorzystuje się narzędzia takie jak Maven i Gradle. Nie jest konieczne ich dokładne studiowanie, ale przydatne będzie zrozumienie, czym się od siebie różnią, na czym opierają, jakie są zadania (w Gradle) i fazy z celami w Mavenie. Wystarczy poczytać o systemach i wdrożyć na nich kilka małych projektów. Jest to dość proste do wykonania, a szczegóły zrozumiesz w rzeczywistych warunkach pracy.

Systemy kontroli wersji i usługi hostingowe online

System kontroli wersji pomaga programistom pracować w zespole nad wspólnym projektem bez „łamania” go, synchronizować różne fragmenty kodu utworzone przez różne osoby, wycofywać nieudane aktualizacje i dodawać nowe. Najczęściej spotykane są dwa systemy kontroli wersji. Jeden z nich jest rozproszony i nazywa się Git, drugi jest scentralizowany, zwany SVN (aka Subversion). Dziś Git jest de facto standardem. Praca z tym systemem jest wygodniejsza i łatwiejsza, jest obsługiwana przez wszystkie IDE (a także SVN). Pracę z Gitem można wypróbować szybko i łatwo, na szczęście w Internecie jest mnóstwo informacji na ten temat. Na przykład interaktywny podręcznik GitHowTo, dostępny w języku rosyjskim (przegląda się bardzo szybko). Dla początkującego programisty bardzo ważne jest opanowanie usług hostingowych online dla systemów kontroli wersji. Najczęściej opierają się na Gicie i nazywane są platformami Git (choć niektóre z nich mogą współpracować z różnymi systemami kontroli wersji). Najpopularniejszym z nich jest GitHub. BitBucket i GitLab są również dość powszechne. Systemy te pomagają przechowywać i odzyskiwać kod, a także robić to, co potrafi Git, tylko nie za pomocą wiersza poleceń, ale poprzez interfejs. GitHub umożliwia także sprawdzenie kodu i zaproponowanie rozwiązań problemów bezpośrednio na stronie. Możesz tam również znaleźć cudzy projekt open source i spróbować zaproponować własne rozwiązania, aby go ulepszyć. Zasadniczo GitHub jest rodzajem sieci społecznościowej dla programistów. Jeśli więc jeszcze tego nie zrobiłeś, pamiętaj o utworzeniu konta na GitHubie i hostowaniu tam swoich projektów. Przeczytaj także o GitLabie i BitBuckecie, a jeśli masz czas, możesz je wypróbować, mają darmowe wersje. Nawiasem mówiąc, wszystkie te platformy są w pełni zintegrowane z nowoczesnymi IDE. Jawa.  Plan działania - 2

2. API JDK

W tej sekcji omówiono te interfejsy API JDK, które nowoczesny programista Java musi znać z całą pewnością. Nie zaszkodzi programiście zajrzeć od czasu do czasu do kodu źródłowego tych bibliotek, nawigować po nich i zrozumieć, kiedy należy ich użyć i dlaczego. Efekt uboczny: jeśli dobrze znasz te interfejsy API, prawdopodobnie znacznie łatwiej będzie Ci przejść rozmowę kwalifikacyjną.

Struktura kolekcji Java

Java Collection Framework jest jednym z najważniejszych interfejsów API języka Java i każdy programista powinien go znać. Reprezentuje hierarchię interfejsów i implementacji standardowych struktur danych w Javie, takich jak lista, lista połączona, zestaw, stos, kolejka, tablica mieszająca i wiele innych. Programista musi dobrze znać klasy ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet i inne oraz znać ich właściwości. W szczególności musisz zrozumieć czas i koszty pamięci konkretnej kolekcji dla standardowych operacji (indeksowanie, wyszukiwanie, wstawianie, usuwanie) i na tej podstawie poprawnie zastosować je w swoich projektach. Kolekcje w Javie są zaimplementowane bardzo dobrze, jednak jeśli zajdzie taka potrzeba, programista może zaoferować własną implementację. Programista dobrze zorientowany w kolekcjach może rozszerzyć lub przedefiniować logikę w już napisanych klasach lub wdrożyć wszystko od zera.

Interfejs API współbieżności Java

Java została pierwotnie zaprojektowana do obsługi programowania równoległego, a od wersji 5.0 język ten zawiera interfejsy API wysokiego poziomu dla wątków równoległych. Zatem kompetentny programista Java musi po prostu dobrze rozumieć wielowątkowość i znać główne interfejsy API z pakietów java.util.concurrent.* . Musisz przynajmniej wiedzieć i jasno rozumieć, czym są wątki, możliwości działania, blokowanie obiektów i synchronizacja. Pamiętaj, aby zrozumieć pojęcia impasu, blokady na żywo, warunków wyścigu i tego, co z tym wszystkim zrobić. Aby poczuć się pewnie, naucz się synchronizatorów z java.util.concurrent.*, takich jak Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture i tak dalej. A także interfejsy Callable i Future.

Interfejs API wejścia/wyjścia Java

Początkujący programiści często ignorują dogłębną analizę wejść /wyjść Java i nieblokujących wejść/wyjść Java . Ale na próżno: te interfejsy API Java ułatwiają pracę z wątkami i są regularnie używane w rzeczywistych aplikacjach. Zwłaszcza klasy takie jak File, InputStream, OutputStream, Reader i Writer z pakietu java.io, który jest rdzeniem API Java IO. Java Non-blocking I/O (java.nio) to zbiór interfejsów programowania aplikacji zaprojektowanych w celu implementacji operacji we/wy o wysokiej wydajności. Należą do nich w szczególności między innymi ByteBuffer, FileChannel i Selector. Zadaj sobie trud zrozumienia tych interfejsów API, nie pożałujesz.

Klasa urządzenia Obiekt

Kiedy zrozumiesz superklasę Object, w pewnym sensie staniesz się „native speakerem języka Java”, znacznie lepiej świadomym struktury OOP i wielu procesów. Klasa java.lang.Object znajduje się na samym szczycie hierarchii klas. Oprócz lepszego zrozumienia, co się dzieje, znajomość metod zajęć znacznie ułatwi prowadzenie rozmów kwalifikacyjnych — osoby przeprowadzające rozmowy kwalifikacyjne po prostu uwielbiają testować kandydatów za pomocą klasy Obiekt i jej obiektów.

3. Nowe funkcje w Javie 8

Pomimo tego, że od premiery Javy 8 minęło już trochę czasu, a pojawiły się już inne numerowane aktualizacje, to właśnie ósma wersja stała się ikoniczna. Wprowadził ważne innowacje, które upraszczają i w pewnym sensie zmieniają podejście do programowania w Javie. Musisz zrozumieć, jak używać wyrażeń lambda, a także interfejsu Stream API w Javie 8 oraz nowych interfejsów API daty i godziny.

4. SQL, bazy danych, JDBC

Niewielu programistów Java nie spotyka się w swojej pracy z zapytaniami SQL i bazami danych. Dlatego ważne jest, aby zrozumieć, czym są SQL i relacyjne bazy danych, jak działają i umieć pisać proste zapytania łączące dwie tabele. Do szkolenia możesz spróbować pracy z jednym z systemów DBMS, na przykład PostgreSQL lub MySQL . Miło byłoby również zdobyć podstawową wiedzę na temat nierelacyjnych baz danych, podejść noSQL i powierzchowną znajomość zorientowanego na dokumenty DBMS MongoDB . Do pracy z bazami danych w czystej Javie można wykorzystać standard JDBC wraz z API o tej samej nazwie. Jest zaimplementowany jako pakiet java.sql, który jest zawarty w JDK. Dziś jest on rzadko używany w czystej postaci, ale często można go znaleźć w starszych aplikacjach pomocniczych, a bardziej nowoczesne i ogólnie akceptowane narzędzia często opierają się na tym standardzie.

5. Ramy

Wśród wymagań stawianych dziś Juniorowi Java Developerowi coraz częściej można znaleźć „znajomość Springa, Hibernate, Spring Boot”. Samodzielne nauczenie się tych technologii jest zadaniem bardzo trudnym, ale jednak możliwym, zwłaszcza na poziomie powierzchownym. Głębsze zrozumienie przyjdzie w trakcie pracy. Więc.

Ramy wiosenne

Prawie każda aplikacja zbudowana obecnie w Javie korzysta z Spring Framework. Ta potężna platforma zapewnia określony układ współrzędnych, szkielet, na którym zbudowana jest aplikacja. Aplikacja Spring jest znacznie łatwiejsza do testowania i utrzymywania. A wszystko dzięki zastrzykowi zależności.

Hibernować

Kolejnym najważniejszym frameworkiem dla programistów Java jest Hibernate. Implementuje specyfikację JPA (Java Persistence API), która rozwiązuje problemy mapowania obiektowo-relacyjnego (ORM). Większość aplikacji Java współdziała z bazami danych, a jeśli mówimy o relacyjnych bazach danych, praca z nimi bez Hibernacji jest niewygodna. Framework ten zapewnia programistom szereg ważnych funkcji, w szczególności gotowe do użycia buforowanie i transakcje, co z kolei pozwala im skupić wysiłki na tworzeniu logiki aplikacji i uwalnia programistę od wielu zadań niskiego poziomu podczas pracy z relacyjnymi bazami danych . To znacznie poprawia produktywność programistów.

Wiosenny MVC

Framework ten zapewnia tworzenie aplikacji według wzorca Model – Widok – Kontroler, wykorzystując luźno powiązane, gotowe komponenty. Przestudiuj ten wzorzec (wzorce projektowe omówiono poniżej) i logikę Spring MVC. W praktyce stosuje się go dość często.

Wiosenne buty

Przy odpowiednich umiejętnościach Spring ułatwia tworzenie aplikacji Java. Z kolei Spring Boot ułatwia tworzenie aplikacji Java w oparciu o Spring. Spring Boot umożliwia łatwe tworzenie pełnoprawnych aplikacji Enterprise Spring, które można uruchomić przy minimalnym wysiłku: automatyczna konfiguracja eliminuje większość kłopotów związanych z konfiguracją aplikacji Spring.

6. Biblioteki i frameworki do testowania

Niektórzy przyszli programiści są pewni, że testowanie kodu nie jest w ogóle ich sprawą, ale wyjątkowych osób, zwanych testerami. W praktyce nie do końca tak jest. Testowanie, zwłaszcza testy jednostkowe (najczęściej nazywane testami jednostkowymi), to bardzo ważna umiejętność każdego programisty. Co więcej, nowicjusze, którzy dopiero rozpoczęli swoje obowiązki, często mają za zadanie pokrycie czyjegoś kodu testami jednostkowymi. Dlatego zdecydowanie zalecamy poznanie biblioteki JUnit i wyrobienie nawyku pisania testów jednostkowych dla swojego kodu. Sprawdź także framework Mockito, którego można używać z JUnit do tworzenia próbnych klas zależności.

7. Biblioteki usług

Java ma ogromną liczbę bibliotek usług, które pomagają rozwiązać prawie każdy problem stojący przed programistą. Nie da się przestudiować ich wszystkich i nie ma to szczególnego sensu. Ale poruszanie się po nich to świetny pomysł. Tutaj wyróżnimy tylko kilka z tych, które są bardzo często stosowane w praktyce.

Biblioteki do logowania

Przede wszystkim możemy wspomnieć o log4j i Slf4j . Biblioteki te mają na celu ukrycie implementacji rutynowych operacji rejestrowania, które mają miejsce podczas działania aplikacji Java.

Biblioteki dla JSON

JSON, format przesyłania informacji od klienta do serwera, jest obecnie najczęściej używanym formatem. Istnieje kilka dobrych bibliotek współpracujących z JSON, z których najpopularniejsze to Jackson i google-gson .

Google Guawa

Guava to projekt z podstawowymi bibliotekami Java opracowanymi przez Google. Tutaj znajdziesz nowe typy kolekcji (multimap, multiset i inne), kolekcje niezmienne, wykresy, kolekcje funkcjonalne, narzędzia do równoległości, wejścia/wyjścia, mieszanie, przetwarzanie ciągów i wiele więcej.

Apache Commons

Commons to ogromny projekt zawierający wiele przydatnych narzędzi Java do różnych celów. Zatem biblioteki Apache Commons stanowią podstawę Tomcat, Hibernate i wielu innych dużych projektów. W Apache Commons znajduje się wiele bibliotek. Wspomnijmy Commons IO, które upraszcza operacje I/O, Commons CSV do pracy z plikami CSV, Commons Math do pracy ze złożonymi operacjami i obliczeniami matematycznymi i statystycznymi, Commons CLI do analizy argumentów wiersza poleceń.

8. Klienci API

REST to styl nazewnictwa punktów końcowych umożliwiający dostęp do zasobów w sieci w formacie czytelnym dla człowieka. Dla współczesnego programisty Java lepiej jest rozumieć ideologię REST i znać także Spring RestTemplate , bardzo przydatną bibliotekę do tworzenia klienta REST.

9. Wzorce projektowe

Jeśli początkujący programista zna wzorce projektowe, czyli zasady dobrych manier w programowaniu w Javie, a nawet potrafi je zastosować w praktyce, od razu zwiększy swoją wartość na rynku pracy. Początkujący często nie doceniają wzorców, ponieważ rzadko tworzą skomplikowane aplikacje podczas nauki. Jeśli jednak wzorce nie zostaną zastosowane w poważnych projektach, utrzymanie i adaptacja kodu staje się niezwykle trudnym zadaniem. Nie bądź więc leniwy, przestudiuj wzorce i zastosuj je w swoich osobistych projektach. Twój przyszły pracodawca będzie Ci za to bardzo wdzięczny.

10. Dodatkowa wiedza

Algorytmy i struktury danych

„Algorytmy i struktury danych” to nazwa całego przedmiotu prowadzonego na uczelniach technicznych. Ukazuje teoretyczne podstawy konstruowania różnych struktur danych. A na zajęciach praktycznych uczą się z nimi pracować - umieszczania i wyszukiwania danych, wyszukiwania i sortowania ich. W rzeczywistości „algorytmy” w tym wyrażeniu oznaczają dokładne sortowanie i wyszukiwanie. Na przestrzeni lat informatycy opracowali wiele algorytmów. Część z nich ma charakter edukacyjny, gdyż mimo względnej łatwości wdrożenia nie są zbyt skuteczne w działaniu. Na przykład działają wolno, co może być zauważalne w przypadku dużych pul danych. Lub zużywają dużo pamięci. Inne algorytmy okazały się bardzo skuteczne. Do tego stopnia, że ​​znalazły się one w oficjalnych bibliotekach większości języków programowania. W związku z tym dziś nie jest konieczne samodzielne opracowywanie takich algorytmów. Wystarczy wiedzieć, gdzie się znajdują. A jednak większość doświadczonych programistów zaleca początkującym przejście przez „szkołę algorytmów” – samodzielne wdrażanie ich podczas nauki. To rozwija myślenie programisty. Pomaga to również w rozmowach kwalifikacyjnych; naprawdę lubią zadawać problemy z sortowaniem i wyszukiwaniem.

Serwlety

Serwlet to sposób obsługi żądania użytkownika. Dziś nie są one stosowane wszędzie i nie zawsze, ale warto się o nich zorientować.

HTML i CSS

Każdy powinien znać podstawy układu. Zdobycie tej wiedzy jest dość łatwe, a jeśli jeszcze tego nie zrobiłeś, poświęć tej lekcji kilka dni. Jednocześnie odpoczniesz od bardziej skomplikowanych tematów.

XML-a

Rozszerzalny język znaczników był wszechobecny w programowaniu w języku Java. Jest stopniowo zastępowany przez JSON, ale XML jest nadal używany. Nie jest trudny do nauczenia, więc możesz poświęcić temu językowi trochę uwagi.

JavaScript

Z badań programistów wynika, że ​​nawet ci, którzy z front-end developmentem nie mają nic wspólnego, od czasu do czasu pisali skrypty w JavaScript. Znajomość podstaw tego języka można uznać za zasadę dobrych manier, zatem nie zwlekaj, poczytaj o tym i stwórz kilkanaście, dwa skrypty. To nie będzie zbędne.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION