Czego należy się nauczyć, aby tworzyć aplikacje internetowe Java w Java EE 6? [Zamknięte]

103

Moim celem jest tworzenie aplikacji internetowych!

Skończyłem czytać książki „Headfirst - Java” i „Headfirst - Servlets and JSP”.

Ponieważ ten temat (aplikacje internetowe) jest tak obszerny i skomplikowany, chciałbym zapytać, czego powinienem się dalej nauczyć. Czuję się przeciążony czytaniem haseł typu Java EE, EJB, JSF, JPA, Glassfish ... ale nie poddam się.

Czy ktoś może mi powiedzieć, jak mam kontynuować naukę? Czy powinienem wziąć taką książkę: Rozpoczęcie platformy Java EE 6 z GlassFish 3: od początkującego do profesjonalisty, czy po prostu powinienem zrobić kilka samouczków online?

Dzięki!

creativz
źródło
1
Przeczytałem dwa wątki. Ale znowu: w wątkach mówią tylko „naucz się Tomcata, JBossa, Hibernacji, naucz się tego czy tamtego, itd…” Po prostu rzucają słowami. Ale chcę wiedzieć, której konkretnej książki lub samouczka powinienem się nauczyć. Może nie ma takiego sposobu i muszę się tego nauczyć „nieefektywnie”, sprawdzając każde słowo. Miałem tylko nadzieję, że otrzymam radę, jak postępować.
creativz
1
Zalecałbym rozpoczęcie od serwletów Head First i JSP, pod warunkiem, że masz dobrą znajomość podstawowej Javy. Jeśli nie czujesz się dobrze z językiem Java jako językiem programowania, najpierw musisz zdobyć wiedzę na ten temat, a następnie przejść do tworzenia aplikacji internetowych.
Rachel,
22
Tyle że wszystkie te pytania są nieaktualne, ponieważ Java EE 6 jest niedostępna ...
Pascal Thivent,
4
@Stephen Cóż, tak naprawdę uważam, że istnieje duża luka, szczególnie w części webowej (z Servletem 3.0 lub JSF 2.0 i fasolami zarządzanymi przez CDI).
Pascal Thivent
1
Zabawne, jak wiele z wysoko ocenionych ogólnych pytań, takich jak to, zostało zamkniętych jako „nie konstruktywne”. Powiedziałbym, że są one bardzo konstruktywne, ale niełatwo jest odpowiedzieć w konstruktywny sposób. Pomagają zobaczyć szerszy obraz tego, co się robi lub powinno się robić. Ale miło, że mogą pozostać na SO.
jackthehipster

Odpowiedzi:

174

Nawet jeśli wiem, że będzie to kontrowersyjne, radzę zacząć tylko od Java EE 6. Więc chwyć GlassFish v3 i albo pobierz książkę Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional lub postępuj zgodnie z samouczkiem Java EE 6 . Moim zdaniem książka (którą zacząłem czytać, więc wiem o czym mówię) zawiera więcej wskazówek, które mogą być lepsze, jeśli „wszystko” jest dla Ciebie nowe (obejmuje zarówno platformę Java EE, jak i jej interfejsy API i środowisko do tworzenia i wdrażania aplikacji).

Teraz, jak powiedziałem, już słyszę głosy mówiące takie rzeczy, jak „Java EE jest ciężka, zamiast tego użyj Spring, naucz się Struts lub Wicket lub Stripes dla warstwy prezentacji, naucz się Hibernacji dla trwałości lub nie, ponieważ nie lubię ORM, zamiast tego użyj iBatis lub prostego JDBC (zobaczysz, jest fajnie ze Spring, Spring jest tak fajnie) i użyj Tomcat (a dlaczego nie Jetty) lub JBoss, lub po prostu zapomnij o tym wszystkim i idź na Grails, i bla bla bla … ” .

Ale nie sądzę, że to naprawdę pomaga i bez mentoringu lub wskazówek (i nie znajdziesz nieaktualnego, unikalnego zasobu obejmującego wszystkie kombinacje), musi to brzmieć bardzo zagmatwane dla początkującego.

Tak więc, ponieważ uważam, że Java EE 6 jest dużym ulepszeniem w stosunku do poprzednich wersji Java EE, ponieważ zapewnia naprawdę ładne standardowe API dla wszystkich Twoich potrzeb (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI itp.), bo te API są więcej niż przyzwoite, bo nie ma nic złego w ich nauce, bo to już jest duże zadanie, bo trzeba gdzieś zacząć , skupiłbym się tylko na Java EE 6 i zapomniał o na razie inne frameworki. Mówiąc dokładniej, zacząłbym od profilu internetowego Java EE 6 (a następnie dodałbym rzeczy, jeśli chcesz przejść dalej).

Robiąc to, 1) zaczniesz i nauczysz się zupełnie nowych rzeczy oraz 2) poświęcisz trochę czasu wszystkim innym frameworkom i / lub narzędziom na adaptację i udowodnienie, że wciąż jest na nie potrzeba. A jeśli tak, nadal będzie czas na eksperymentowanie z tymi, którzy przeżyli, i będziesz w stanie znacznie lepiej zrozumieć, dlaczego istnieją.

Pascal Thivent
źródło
3
Dzięki. Jeśli chodzi o książkę, nie przeczytałem jej do końca, ale zdecydowanie polecam ją zarówno początkującym, jak i doświadczonym programistom, którzy chcą uzyskać dobry przegląd Java EE 6. Książka jest dobrze skonstruowana, naprawdę obejmuje wiele interfejsów API (niewiele brakuje), zawiera próbki kodu demonstrujące wszystko, co zostało przedstawione, są naprawdę dydaktyczne i pozwalają wejść tak głęboko, jak chcesz. W przyszłości mogą być bardziej szczegółowe książki, ale ta jest dobra.
Pascal Thivent,
23
+1, ale wiosna jest taka fajna :-)
ChssPly76,
13
Nie interpretuj mnie źle, Stripes, Spring, Hibernate, ... są świetne. Jednak zbyt duży wybór może być mylący, gdy odkrywasz coś nowego i uważam, że Java EE 6 pozwala zacząć bez nich.
Pascal Thivent,
9
Zgadzam się z tobą, bardzo ważne jest, aby nauczyć się stosu JEE, nawet jeśli nie chcesz go używać, w końcu ten stos jest podstawą wszystkich wspaniałych frameworków, które sprawiają, że wszystko jest naprawdę świetne, na przykład Wicket jest zbudowany na szczycie koncepcja kontrolera frontowego, która w świecie Java oznacza serwlety i filtry - jeśli nie wiesz, jak one działają, nie zrozumiesz, co robi Wicket! Chyba że zaakceptujesz „magię”! jako odpowiedź, oczywiście.
Esko,
13
Ponad 4 lata później… czy zmieniłbyś coś w swojej odpowiedzi?
jlars62
28

Moja rada 1 to przestać czytać książki i zacząć wdrażać różne rzeczy. Z mojego doświadczenia wynika, że ​​nauka książek jest kiepskim substytutem wiedzy, którą zdobywasz, wykonując określone czynności.


1 - Kontekst: to rada dla kogoś, kto właśnie skończył czytać dwie książki na ten temat i szuka więcej książek do przeczytania. W praktyce musisz zrównoważyć czytanie i działanie. Zwłaszcza jeśli masz konkretny problem, który próbujesz rozwiązać.

Stephen C.
źródło
29
Ale może zaoszczędzić Ci dni poszukiwań. Mógłbyś również dać ci wystarczającą wiedzę, aby odpowiedzieć na pytanie zamiast zadawać je i ostatecznie mieć tutaj dobrą reputację, nie zgadzasz się?
Muhammad Gelbana
6
Nie, nie zgadzam się. OP przeczytał już dwie książki Java / Java EE. Nadszedł czas, aby zajął się programowaniem. FWIW, większość swojej wiedzy nie zdobyłem czytając książki. Raczej otrzymałem to NAJWAŻNIEJSZE poprzez wdrażanie rzeczy i odwoływanie się do dokumentacji, gdy było to konieczne. Nie uczysz się jeździć na rowerze, czytając książki ... i nie uczysz się w ten sposób umiejętności programowania.
Stephen C
3
Ważne jest, aby zrównoważyć readingi practice.
smwikipedia
9

Java EE 6 jest naprawdę niesamowita. Jedynym problemem jest to, że ma około 2 tygodni, a obecnie jest tylko jeden pojemnik oferujący swoje funkcje - Glassfish.

Nie mam nic przeciwko Glassfish, używam go wszędzie, kilka instancji produkcyjnych, uwielbiam ten produkt i projekt.

To powiedziawszy, szczegóły Java EE 6 nie są tłumaczone z powrotem na Java EE 5. Niektórzy tak, wielu tak, ale profil sieciowy, serwlet 3.0, nowe typy Bean, JPA 2, itd. Tych nie ma.

Tak więc, ucząc się najpierw Java EE 6, po prostu ograniczasz się do jednego kontenera. Nadchodzi więcej, ale jeszcze ich nie ma.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo itp. Działają dobrze ze specyfikacją Java EE 5 (przynajmniej te części specyfikacji, które obsługują, na przykład Tomcat nie ma EJB).

W Javie EE 5 nie przychodzi mi do głowy nic, co nie zostało przeniesione do Java EE 6. W Javie EE 6 niektóre bardzo stare aspekty były opcjonalne, a tych, których po prostu byś się dzisiaj nie nauczył. Java EE 6 sprawiła, że ​​niektóre rzeczy związane z Javą EE 5 były jeszcze łatwiejsze (szczególnie pakowanie, na przykład EJB Lite).

Naucz się Java EE 5 teraz, aby móc faktycznie zastosować to, czego się nauczyłeś w różnych środowiskach, a nie ucząc się Java EE 6 teraz i odkrywając, że możesz nie być w stanie wykorzystać większości tego, czego się uczysz.

Żadna książka nie nauczy Cię tego, co powinieneś wiedzieć. Na przykład serwlety są dobrą podstawą, ale w przypadku wszystkiego, co jest większe niż kilka stron lub punktów końcowych, będziesz chciał użyć jednego z wielu frameworków innych firm lub JSF, a żadna książka nie obejmuje rdzenia, a następnie frameworka na górze tego.

Samouczek Java EE 5 jest dobry w zbijaniu podstaw, moja główna skarga jest taka, że ​​nie pokazują ci kodu źródłowego. Oczekują raczej, że po prostu pobierzesz i uruchomisz. Nie jest to omawiane w samouczku. Uważam, że książki Head First są całkiem dobre.

W przypadku programowania internetowego surowe serwlety są wystarczająco ważne, aby zrozumieć cykl żądanie / odpowiedź, ale nie potrzebujesz głębokiego zrozumienia, aby przejść do platformy innej firmy.

Jestem wielkim fanem Stripes dla frameworka Action (w porównaniu z frameworkiem komponentowym), a jedna dostępna książka Stripes jest doskonała (co sprawia, że ​​wybór jest łatwy).

Nie mogę zasugerować książki o frameworku Component i właściwie nie poleciłbym jej od razu. Struktury komponentów naprawdę zakopują podstawowe struktury żądań / odpowiedzi HTTP. Zakopują je z jakiegoś powodu i zyskują na wartości poprzez zakopywanie ich, ale uważam, że aby być skutecznym, musisz mieć solidne zrozumienie tych pojęć na wczesnym etapie. Dlatego nie proponuję najpierw nauki frameworka Component.

Struktura JAX-RS REST, zawarta w Java EE 6, ale łatwa do zainstalowania w Java EE 5 lub dowolnym kontenerze serwletów, jest doskonała. Zapewne tak powinien wyglądać Servlet 3.0. Ale nie znam żadnych książek na ten temat.

Will Hartung
źródło
2
Pytanie brzmi, jaki jest stan serwerów aplikacji, gdy jesteś gotowy do produkcji. Jeśli dany projekt zajmie 6 miesięcy od teraz, Oracle i JBoss najprawdopodobniej mają serwery zgodne z JEE6, a Resin najprawdopodobniej ma serwer JEE6 Web Profile.
Thorbjørn Ravn Andersen
Cóż, JBoss spodziewany jest w grudniu. Wyrocznia leży nisko. Firma Resin zamilkła w sprawie wdrożenia swojego profilu internetowego. Geronimo wybiera profil sieciowy w wersji 3.0 (beta). Glassfish jest już w wersji 3.0.1, co jest naprawdę fajne.
Thorbjørn Ravn Andersen
5

W przypadku Tomcat przeczytaj instrukcję w witrynie internetowej. To jest bardzo dobre. W szczególności kilka pierwszych rozdziałów dotyczących organizacji i wdrażania aplikacji internetowych oraz rozdziałów dotyczących interfejsu API serwletów i stron JSP.

Jak na wiosnę książka Manninga Spring in Action jest bardzo dobra. Podobnie jest z Hibernate (książka Manninga), ale myślę, że Hibernate jest w większości poza zakresem aplikacji internetowych. Ale twoja decyzja.

Furtka - również książka obsady. Ale tak naprawdę, po prostu napisz swój front-endowy kod w Javascript. To będzie mniej bolesne, IMO.

danben
źródło
3

Nie będę komentował innych technologii, ale jeśli chcesz się nauczyć Hibernacji, weź „Hibernate Made Easy” Camerona McKenzie (www.hiberbook.com). To jest warte każdego grosza. Możesz dokończyć czytanie tej książki za 2 dni (dosłownie). to jest jak powieść, a na końcu masz do czynienia z Hibernate jak półprofesjonalista.

motiver
źródło
3

Jpassion zapewnia dobre filmy i materiały do ​​nauki Java EE 6 i innych rzeczy.

Powinieneś również zobaczyć przykłady zastosowań:

  1. Petstore . Wymaga Maven, zalecane Glassfish. Napisane przez Antonio Goncalvesa, który napisał wspomnianą książkę .
  2. JBoss Ticketmonster . Wymaga Maven i Jboss Forge . Wdróż w Jboss.
jacktrades
źródło
2

Jeśli chcesz tylko tworzyć aplikacje internetowe w Javie, sprawdź Play Framework . Jest podobny do „Ruby on Rails”

Apeirogon Prime
źródło