Java - co dalej?

0

Witam, jestem w trakcie nauki Javy i mam problem z podjęciem decyzji o tym czego się uczyć. Ale od początku...przerobiłem książki z SE: Java. Podstawy. (Cay S. Horstmann,Gary Cornell), a obecnie kończę Thinking in Java, do tego kilka drobnych projektów.

Docelowo chciałbym pójść w EE. Przed rozpoczęciem nauki EE planowałem przerobić jeszcze Java. Techniki Zaawansowane (Cay S. Horstmann,Gary Cornell).

Zacząłem się zastanawiać czy po przerobieniu TiJ zacząć, tak jak wspomniałem wyżej Techniki Zaawansowane czy od razu przejść do nauki EE. Czy możecie mi podpowiedzieć, która z tych opcji będzie najlepsza?

Przy okazji chciałbym zapytać od czego zacząć EE? Oczywiście podczas nauki planuję też poznawać najpopularniejsze frameworki np. Spring, Hibernate. A może lepiej zacząć od razu od nauki Spring'a?

0

Ani Spring ani Hibernate nie mają nic wspólnego z Javą EE! Hibernate to jeszcze z biedą można uznać ze cośtam ma, bo można go użyć jako dostawcy implementacji dla JPA, niemniej jednak z punktu widzenia programisty i tak korzystasz z interfejsów JPA i mógłbyś nawet nie wiedzieć czy pod spodem działa Hibernate czy jakaś inna implementacja.
Spring to jest KONKURENCJA dla Javy EE, a nie jej część.

0

O widzisz! Dzięki za oświecenie :) To w takim razie czy lepiej jest się uczyć Springa czy EE? Z moich obserwacji (oferty pracy) wynika, że jest większe zapotrzebowanie na Spring'a.

0

W rzeczywistości często potrzeba i jednego i drugiego. To niby jest konkurencja, ale składająca sie z wielu komponentów i jedne są lepsze tutaj, inne tam :)
JPA jest niewątpliwym liderem jeśli chodzi o warstwę dostępu do danych w Javie i Spring nie stara się specjalnie z tym konkurować, tylko raczej dodać zabawki które ułatwiają korzystanie. Podobnie jest z takimi rzeczami jak np. JAX-WS czy JMS.
Ta główna "konkurencyjna" część to np. CDI vs. Spring DI oraz EJB vs. Spring Remoting.

Spring z wielu powodów jest dość popularny -> jednym z takich powodów jest niezależność od serwera aplikacji. JEE wymaga działania na serwerze aplikacji i mocno uzależnia od jednego dostawcy technologii (np. korzystasz z WebSphere to masz zabawki od IBM, korzystasz z WebLogica to masz zabawki od Oracle etc). Spring działa na gołym kontenerze serwletów i możemy sami sobie dość łatwo wybrać co tam chcemy mieć. Z drugiej strony spora szansa że serwer aplikacyjny jest tuningowany tak żeby wszystkie jego komponenty dobrze współdziałały, więc coś za coś.

Plusem springa jest też szybkość rozwoju. Java EE niestety musi przechodzić przez bolesny proces zatwierdzania standardu przez wiele niezależnych podmiotów. Spring nie ma takich problemów - implementują co uważają za słuszne.

0

Dzięki za odpowiedź. W takim razie czy dobrym rozwiązaniem będzie nauka Springa i SE równolegle? Tzn. nauka Springa i douczanie się SE w zależności od potrzeb?

0

Pozwolę sobie odświeżyć temat. Czy przed rozpoczęciem nauki Springa muszę znać najpierw JSP, JavaBeans, czy wystarczy mi "znajomość" SE?

0

Zależy co ze Springiem chcesz robić. Spring ma milion modułów, Tobie zapewne chodzi o Web - więc chcąc nie chcąc musisz przerobić DI aby płynnie się nim posługiwać. Przy nauce DI wiedza o JavaBeans wejdzie sama, więc potem przy zastosowaniu z EL nie powinieneś mieć problemu. JSP jako takiego nie będziesz używać (skryptlety to antywzorzec) - co najwyżej pliki będą miały takie rozszerzenie a i to niekoniecznie. Jak ogarniesz DI to możesz powoli wkraczać w Web i MVC.

1 użytkowników online, w tym zalogowanych: 0, gości: 1