Cara mulai belajar J2EE, terutama JPA [ditutup]

11

Saya mencoba untuk mulai mempelajari J2EEbagian dari Java. Tapi saya tidak tahu harus mulai dari mana. Saya familier dengan Core Javadan terutama, saya ingin belajar JPAdan dasar-dasar Hibernatedan Spring Framework. Alasan utama untuk ini adalah saya mengerjakan proyek yang menggunakan semua hal ini. Dan sebagian besar kode sedang dikembangkan oleh beberapa orang senior dan saya harus membuat beberapa modifikasi di dalamnya. Jadi pada dasarnya saya perlu memahami kode mereka.

Dapatkah seseorang memberi saya semacam peta jalan, seperti hal-hal yang perlu saya ketahui sebelumnya dan dalam urutan apa saya harus pergi? Adakah bahan referensi, seperti tautan, buku?

Bhushan
sumber
1
Apakah para senior ini punya waktu untuk memperkenalkan Anda dengan apa yang telah mereka lakukan sejauh ini?
@ Thorbjørn Ravn Andersen: Jika saya bertanya, dia menjelaskan kepada saya. Tapi masalahnya adalah kode ini cukup besar (~ 10.000 baris). Jadi jika saya harus melakukan sesuatu, saya harus melalui banyak file sumber dan banyak baris kode, yang saya kira tidak dapat meminta mereka untuk menjelaskan saya sepenuhnya. Pada dasarnya saya tidak terbiasa dengan JPA dan Spring Framework, dan secara umum J2EE. Jadi saya mencari beberapa hal yang akan membantu saya memahami bagaimana semuanya bekerja dan dasar-dasarnya, sehingga saya setidaknya tidak menanyakan beberapa keraguan bodoh.
Bhushan

Jawaban:

7

Setiap kali saya ingin belajar kerangka / bahasa baru, saya biasanya menyiapkan proyek kecil yang menggunakannya. Untuk kerangka kerja web, saya memiliki webapp umum yang saya tulis menggunakannya. Ini sederhana dan tidak melakukan banyak hal, tetapi memiliki cukup fitur yang saya butuhkan untuk mengambil keuntungan dari bagian-bagian kerangka kerja yang lebih umum (database, pekerjaan latar belakang, mvc atau apa pun yang sejenisnya). Bahkan, belum lama ini saya mengambil tugas belajar Spring / MVC + Hibernate. Saya tidak tahu semuanya, tentu saja, tetapi itu memberi saya cukup latar belakang bahwa, ketika saya tidak tahu sesuatu, saya tahu pertanyaan apa yang harus diajukan dan bagaimana cara meminta mereka untuk mendapatkan informasi lebih lanjut.

Untuk kerangka kerja web, saya biasanya mulai dengan contoh sederhana "hello world" yang disediakan untuk sebagian besar kerangka kerja. Jika memiliki contoh "buku tamu" (yaitu, untuk menunjukkan penggunaan basis data), saya menindaklanjutinya. Dari sana, saya baru saja mulai menambahkan fungsionalitas yang saya inginkan dalam aplikasi pembelajaran saya, dimulai dengan yang paling sederhana. Gagasannya adalah saya bisa mencari tahu cara mengajukan pertanyaan yang tepat untuk hal-hal sederhana. Setelah saya melakukan beberapa hal sederhana, saya kemudian dapat melihat hal-hal yang lebih kompleks dan, dengan informasi yang telah saya pelajari, semoga saya dapat merumuskan pertanyaan yang tepat untuk ditanyakan.

Baru-baru ini saya mulai meletakkan kode untuk proyek-proyek pembelajaran semacam itu di sourceforge , jika Anda tertarik.

Sunting: Komentar Donal membuat kami ingin menambahkan ... Saya tidak memasukkan tautan sebagai contoh untuk Anda pelajari. Sebaliknya, hanya sebagai contoh saya meletakkan kode saya di sana. Jika Anda ingin benar-benar belajar, Anda harus menulis kode sendiri, tidak hanya membaca milik orang lain (setidaknya menurut saya)

RHSeeger
sumber
+1: Saya melakukan hal yang sama kecuali bahwa saya hampir tidak pernah membagikan hasil dengan alasan bahwa saya perlu belajar dengan melakukan dan tidak hanya menyalin , dan saya berasumsi bahwa orang lain adalah sama. (OTOH, kadang-kadang salah satu eksperimen saya lolos ke alam liar dan berevolusi menjadi produk nyata.)
Donal Fellows
Jujur, saya mulai berbagi karena tiga alasan: 1) Sehingga kode saya akan tinggal di suatu tempat selain repositori svn lokal yang saya miliki, 2) Jadi, ketika orang meminta contoh kode saya dalam teknologi tertentu, saya dapat menghubungkannya dengan kode itu (sebelumnya saya tidak punya kode seperti itu untuk menunjukkan kepada mereka), 3) Ketika orang-orang bertanya kepada saya tentang bagaimana melakukan sesuatu dan saya sudah melakukannya, saya dapat menunjukkannya dengan lebih mudah
RHSeeger
+1. Itu ide yang sangat bagus. Tetapi ini tidak sepenuhnya menjawab pertanyaan saya. Bahkan untuk melakukan ini, saya harus memulai suatu tempat, tetapi saya tidak tahu di mana. Memindai topik apa pun secara acak tidak membantu saya.
Bhushan
1
Menambahkan deskripsi singkat tentang cara saya belajar tentang kerangka kerja web secara khusus; jalan yang saya ambil. Sayangnya, itu yang terbaik yang bisa saya berikan untuk saat ini. Mudah-mudahan, jika itu tidak cukup, orang lain dapat memberikan jawaban yang lebih cocok dengan situasi Anda.
RHSeeger
2

Saya berada dalam situasi yang sangat mirip belum lama ini. Inilah kira-kira apa yang retrospektif, saya menemukan pendekatan yang paling berguna untuk cepat mempelajari dasar-dasar teknologi baru:

Pendekatan umum:

  1. Cari tahu masalah apa yang dipecahkannya. Baca berbagai sumber daya seperti beranda proyek, artikel wikipedia.
  2. Temukan proyek kecil yang mengandung masalah tersebut . Misalnya dalam kasus Anda, aplikasi web kecil yang mengelola koleksi DVD Anda dengan kemungkinan untuk meminjamkannya kepada teman-teman.
  3. Mulailah berpikir tentang mekanisme apa yang Anda harapkan disediakan oleh teknologi . Misalnya untuk solusi ORM, mekanisme untuk menentukan apakah suatu relasi 1:natau n:n.
  4. Cari mekanisme ini dalam teknologi Anda : Misalnya di JPA, temukan @OneToManyanotasi. Seringkali, ini adalah tempat Anda bekerja sendiri melalui Panduan Memulai atau kode pengembang senior.
  5. Laksanakan proyek mini Anda menggunakan mekanisme ini . Saat melakukannya, Anda akan menemukan keterbatasan dan mungkin beberapa fitur lainnya. Misalnya di JPA, yang N + 1 masalah menyeleksi atau fitur yang memungkinkan Anda untuk secara otomatis drop & (re) membuat tabel untuk kelas Java Anda.
  6. (Jika Anda mampu membayar waktu): Cobalah untuk memahami bagaimana Anda akan menerapkan mekanisme . Melakukan hal itu dapat membantu Anda memahami mengapa ada batasan tertentu dan bagaimana Anda bisa mengatasinya.

Satu catatan tentang Panduan Memulai: Jangan membacanya sebelum langkah 4. Jika Anda masih melakukannya, ini akan menggigit Anda jika Anda mempelajari kerangka kerja yang sangat kuat seperti Spring dengan semua fitur mewahnya. Seperti biasa dalam hidup, semakin kuat alat Anda, semakin mudah Anda dapat mengacaukannya jika Anda tidak benar-benar memahaminya.

blubb
sumber
-1

Saya merekomendasikan Head First Servlets dan JSP . Ini adalah sumber yang bagus untuk belajar tentang Enterprise Java.

Buku ini ditulis untuk pengembang yang tertarik lulus ujian Sun Certified Web Component Developer (SCWCD). Sejak itu Sun telah diakuisisi oleh Oracle dan ujian ini telah diganti. Informasi lebih lanjut dapat ditemukan di sini .

Britt Wescott
sumber
Bukankah JSP sudah usang? Mereka sangat tidak berguna untuk aplikasi "Web 2.0" yang banyak menggunakan AJAX.
kevin cline
-1

Dokumentasi Hibernate online cukup bagus. Anda bisa mulai dari sana.

kevin cline
sumber