Apa yang harus dipelajari untuk membuat aplikasi web Java di Java EE 6? [Tutup]

103

Tujuan saya adalah membuat aplikasi web!

Saya selesai membaca Buku "Headfirst - Java" dan "Headfirst - Servlets and JSP".

Karena topik (aplikasi web) ini sangat besar dan rumit, saya ingin bertanya apa yang harus saya pelajari selanjutnya. Saya merasa terlalu lelah ketika membaca semboyan seperti Java EE, EJB, JSF, JPA, Glassfish ... tapi saya tidak akan menyerah.

Adakah yang bisa memberi tahu saya bagaimana saya harus melanjutkan pembelajaran? Haruskah saya mengambil buku seperti ini: Memulai Java EE 6 Platform dengan GlassFish 3: Dari Pemula ke Profesional atau haruskah saya membuat beberapa tutorial Online?

Terima kasih!

creativz
sumber
1
Saya telah membaca dua utas. Tapi sekali lagi: Di ​​utas mereka hanya mengatakan "pelajari Tomcat, JBoss, Hibernate, pelajari ini atau itu, dll ..." Hanya melempar dengan kata-kata. Tapi saya ingin tahu buku atau tutorial tertentu yang harus saya pelajari. Mungkin tidak ada cara seperti itu dan saya harus mempelajarinya "secara tidak efisien" dengan mencari setiap kata. Saya hanya berharap mendapatkan nasihat bagaimana melanjutkan.
creativz
1
Saya akan merekomendasikan Anda untuk memulai dengan Head First Servlets dan JSP asalkan Anda memiliki pengetahuan yang baik tentang inti Java. Jika Anda tidak nyaman dengan Java sebagai Bahasa Pemrograman daripada pertama-tama Anda perlu mendapatkan pengetahuan tentang itu dan kemudian melanjutkan ke Pengembangan Aplikasi Web.
Rachel
22
Kecuali bahwa semua pertanyaan ini sudah usang karena Java EE 6 keluar ...
Pascal Thivent
4
@ Stephen Yah, saya sebenarnya berpikir bahwa ada celah besar , terutama pada komponen web (dengan Servlet 3.0 atau JSF 2.0 dan kacang yang dikelola CDI).
Pascal Thivent
1
Lucu, betapa banyak pertanyaan umum dengan suara terbanyak seperti ini yang ditutup sebagai "tidak konstruktif". Menurut saya, mereka sangat konstruktif, tetapi tidak mudah menjawab dengan cara yang konstruktif. Mereka memang membantu untuk melihat gambaran yang lebih besar tentang apa yang sedang atau harus dilakukan seseorang. Tapi bagus bahwa mereka diizinkan untuk tetap di SO.
jackthehipster

Jawaban:

174

Bahkan jika saya tahu ini akan menjadi kontroversial, saran saya adalah mulai dengan Java EE 6 saja. Jadi, ambil GlassFish v3 dan dapatkan buku Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional atau ikuti tutorial Java EE 6 . Menurut pendapat saya, buku (yang saya mulai baca jadi saya tahu apa yang saya bicarakan) memberikan lebih banyak panduan yang mungkin lebih disukai jika "semuanya" baru untuk Anda (mencakup platform Java EE dan API-nya dan lingkungan untuk membangun, menyebarkan aplikasi Anda).

Sekarang, seperti yang saya katakan, saya sudah bisa mendengar suara yang mengatakan hal-hal seperti "Java EE itu berat, gunakan Spring sebagai gantinya, pelajari Struts atau Wicket atau Stripes untuk lapisan presentasi, pelajari Hibernate untuk ketekunan, atau bukan karena saya tidak suka ORM, gunakan iBatis atau JDBC langsung sebagai gantinya (Anda akan lihat, keren dengan Spring, Spring sangat keren), dan gunakan Tomcat (dan mengapa tidak Jetty), atau JBoss, atau lupakan semua ini dan pilih Grails, dan bla bla bla ... " .

Tetapi menurut saya ini tidak benar-benar membantu Anda dan, tanpa bimbingan atau panduan (dan Anda tidak akan menemukan sumber daya unik yang tidak ketinggalan zaman yang mencakup semua kombinasi), ini pasti terdengar sangat membingungkan bagi seorang pemula.

Jadi, karena menurut saya Java EE 6 adalah peningkatan besar dari versi Java EE sebelumnya, karena menyediakan API standar yang sangat bagus untuk semua kebutuhan Anda (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 lite, Bean Validation 1.0, CDI , dll), karena semua API ini lebih dari layak, karena tidak ada yang salah dalam mempelajarinya, karena ini sudah menjadi tugas besar, karena Anda harus memulai dari suatu tempat , saya akan fokus pada Java EE 6 saja dan melupakan kerangka kerja lain untuk saat ini. Lebih tepatnya, saya akan mulai dengan Profil Web Java EE 6 (dan kemudian menambahkan beberapa hal jika Anda ingin melangkah lebih jauh).

Dengan melakukan ini, 1) Anda akan memulai dan mempelajari hal-hal baru dan 2) Anda akan memberikan waktu kepada semua kerangka kerja dan / atau alat lain untuk beradaptasi dan membuktikan bahwa masih diperlukan. Dan jika ada, masih ada waktu untuk bereksperimen dengan para penyintas dan Anda akan dapat memahami lebih baik mengapa mereka ada.

Pascal Thivent
sumber
3
Terima kasih. Mengenai buku ini, saya belum membacanya sepenuhnya tetapi saya pasti akan merekomendasikannya untuk pengembang pemula dan yang sudah bereksperimen yang ingin mendapatkan gambaran umum yang baik tentang Java EE 6. Buku ini dibuat dengan baik, benar-benar mencakup banyak API (tidak banyak hilang), memiliki contoh kode yang mendemonstrasikan semua yang disajikan, mereka benar-benar didaktik dan memungkinkan untuk masuk sedalam yang Anda inginkan. Mungkin ada buku yang lebih fokus di masa depan, tetapi ini adalah buku yang bagus.
Pascal Thivent
23
+1, tapi Spring sangat keren :-)
ChssPly76
13
Jangan salah mengartikan saya, Stripes, Spring, Hibernate, ... bagus. Tetapi terlalu banyak pilihan bisa membingungkan ketika menemukan sesuatu yang baru dan saya yakin Java EE 6 memungkinkan Anda untuk memulai tanpa mereka.
Pascal Thivent
9
Saya setuju dengan Anda, sangat penting untuk mempelajari tumpukan JEE bahkan jika Anda tidak akan menggunakannya, lagipula tumpukan itu adalah dasar untuk semua kerangka kerja luar biasa yang membuat semuanya benar-benar hebat, misalnya Wicket dibangun di atas konsep Pengontrol Depan yang dalam dunia Java berarti Servlet dan Filter - jika Anda tidak tahu cara kerjanya, Anda juga tidak akan benar-benar memahami apa yang dilakukan Wicket! Kecuali jika Anda menerima "sihir!" sebagai jawaban, tentu saja.
Esko
13
4 plus tahun kemudian .... apakah Anda akan mengubah sesuatu tentang jawaban Anda?
jlars62
28

Saran saya 1 adalah berhenti membaca buku dan mulai menerapkan sesuatu. Menurut pengalaman saya, belajar buku itu buruk sebagai pengganti pengetahuan yang Anda dapatkan dengan benar-benar melakukan sesuatu.


1 - Konteks: ini adalah nasihat untuk seseorang yang baru saja selesai membaca dua buku tentang topik tersebut, dan sedang mencari lebih banyak buku untuk dibaca. Dalam praktiknya, Anda perlu menyeimbangkan membaca dan melakukan. Terutama jika Anda memiliki masalah tertentu yang ingin Anda selesaikan.

Stephen C
sumber
29
Tapi itu bisa menghemat hari pencarian. Bisa juga memberi Anda pengetahuan yang cukup untuk menjawab pertanyaan daripada bertanya kepada mereka dan akhirnya memiliki reputasi tinggi di sini, bukankah Anda setuju?
Muhammad Gelbana
6
Tidak, saya tidak setuju. OP telah membaca dua buku Java / Java EE. Sudah waktunya dia melakukan beberapa program. FWIW, ilmunya tidak banyak didapat dari membaca buku. Alih-alih, saya mendapatkannya SEBELUMNYA dengan menerapkan berbagai hal, dan merujuk ke dokumentasi saat diperlukan. Anda tidak belajar mengendarai sepeda dengan membaca buku ... dan Anda juga tidak belajar keterampilan pemrograman dengan cara itu.
Stephen C
3
Penting untuk menyeimbangkan readingdan practice.
smwikipedia
9

Java EE 6 benar-benar luar biasa. Satu-satunya masalah adalah usianya sekitar 2 minggu, dan saat ini hanya ada 1 wadah yang menawarkan fiturnya - Glassfish.

Saya tidak menentang Glassfish, saya menggunakannya di semua tempat, beberapa contoh produksi, saya suka produk dan proyeknya.

Meskipun demikian, detail Java EE 6 tidak diterjemahkan kembali ke Java EE 5. Beberapa melakukannya, banyak yang melakukannya, tetapi Profil Web, Servlet 3.0, jenis Bean baru, JPA 2, dll. Itu tidak ada.

Jadi, dengan mempelajari Java EE 6 terlebih dahulu, Anda cukup membatasi diri Anda pada satu wadah. Lebih banyak lagi yang akan datang, tapi mereka belum datang.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, dll. Semuanya bekerja dengan baik dengan spesifikasi Java EE 5 (setidaknya bagian dari spesifikasi yang mereka dukung, Tomcat tidak memiliki EJB misalnya).

Saya tidak dapat memikirkan apa pun di Java EE 5 yang tidak dibawa ke Java EE 6. Java EE 6 membuat beberapa aspek yang sangat lama opsional, dan yang tidak akan Anda pelajari hari ini. Java EE 6 membuat beberapa hal Java EE 5 menjadi lebih mudah (khususnya pengemasan, EJB Lite misalnya).

Pelajari Java EE 5 sekarang sehingga Anda benar-benar dapat menerapkan apa yang Anda pelajari di berbagai lingkungan, daripada mempelajari Java EE 6 sekarang dan menemukan Anda mungkin tidak dapat menggunakan banyak dari apa yang Anda pelajari.

Tidak ada satu buku pun yang akan mengajari Anda apa yang perlu Anda ketahui. Servlet, misalnya, adalah fondasi yang bagus, tetapi untuk apa pun yang lebih besar dari beberapa halaman atau titik akhir, Anda akan ingin menggunakan salah satu dari banyak kerangka kerja pihak ketiga, atau JSF, dan tidak ada buku yang membahas inti dan kemudian kerangka kerja di atasnya dari itu.

Tutorial Java EE 5 bagus untuk menurunkan fondasinya, keluhan utama saya adalah mereka tidak menunjukkan kode sumbernya kepada Anda. Sebaliknya mereka mengharapkan Anda untuk mengunduh dan menjalankannya. Itu tidak dibahas dalam tutorial. Saya telah menemukan buku Head First cukup bagus.

Untuk pemrograman web, Servlet mentah cukup penting hanya untuk memahami siklus permintaan / respons, tetapi Anda tidak memerlukan pemahaman yang mendalam untuk melakukan lompatan ke kerangka pihak ketiga.

Saya penggemar berat kerangka kerja Stripes for a Action (vs kerangka kerja komponen), dan satu buku Stripes yang tersedia sangat bagus (menjadikannya pilihan yang mudah).

Saya tidak bisa menyarankan buku kerangka kerja Komponen, dan saya sebenarnya tidak akan langsung merekomendasikannya. Kerangka komponen benar-benar mengubur permintaan inti HTTP / struktur respons. Mereka menguburnya karena suatu alasan, dan mendapatkan nilai dengan menguburnya, tetapi saya yakin agar efektif, Anda harus memiliki pemahaman yang kuat tentang konsep ini sejak dini. Itu sebabnya saya tidak menyarankan mempelajari kerangka kerja Komponen terlebih dahulu.

Kerangka kerja JAX-RS REST, termasuk dalam Java EE 6, tetapi siap dipasang di Java EE 5 atau wadah servlet apa pun, sangat baik. Bisa dibilang itulah yang seharusnya dilakukan Servlet 3.0. Tapi saya tidak tahu buku apa pun untuk itu.

Will Hartung
sumber
2
Pertanyaannya adalah bagaimana keadaan server aplikasi ketika Anda siap untuk produksi. Jika proyek tertentu membutuhkan waktu 6 bulan dari sekarang, Oracle dan JBoss kemungkinan besar memiliki server yang sesuai dengan JEE6, dan Resin kemungkinan besar memiliki server Profil Web JEE6.
Thorbjørn Ravn Andersen
Nah, JBoss akan jatuh tempo pada bulan Desember. Oracle berbohong. Resin diam tentang implementasi profil web mereka. Geronimo pergi untuk Profil Web dengan 3.0 (beta). Glassfish keluar di 3.0.1 yang sangat bagus.
Thorbjørn Ravn Andersen
5

Untuk Tomcat, baca manual di situs web. Ini sangat bagus. Khususnya, beberapa bab pertama tentang organisasi dan penerapan aplikasi web, dan bab-bab tentang Servlets API dan JSP.

Untuk Spring, buku Manning Spring in Action sangat bagus. Demikian pula untuk Hibernate (buku Manning), tetapi menurut saya Hibernate sebagian besar berada di luar cakupan aplikasi web. Tapi panggilanmu.

Gawang - Buku Manning juga. Tapi sungguh, cukup tulis kode front-end Anda dalam Javascript. Sakitnya akan berkurang, IMO.

danben
sumber
3

Saya tidak akan berkomentar tentang teknologi lain tetapi jika Anda ingin belajar Hibernate, dapatkan "Hibernate Made Easy" oleh Cameron McKenzie (www.hiberbook.com). Layak setiap sen. Anda dapat menyelesaikan membaca buku itu dalam 2 hari (secara harfiah). Ini seperti sebuah novel dan pada akhirnya Anda menemukan diri Anda berurusan dengan Hibernate seperti Semi-Pro.

penggerak
sumber
3

Jpassion menyediakan video dan materi yang bagus untuk mempelajari Java EE 6 dan hal lainnya.

Anda juga harus melihat contoh aplikasi:

  1. Petstore . Membutuhkan Maven, disarankan Glassfish. Ditulis oleh Antonio Goncalves yang menulis buku tersebut .
  2. JBoss Ticketmonster . Membutuhkan Maven & Jboss Forge . Terapkan di Jboss.
jacktrades
sumber
2

Jika Anda hanya ingin membuat aplikasi web di Java, lihat Play Framework . Ini mirip dengan "Ruby on Rails"

Apeirogon Prime
sumber