Wie fange ich an, J2EE zu lernen, insbesondere JPA [geschlossen]

11

Ich versuche, den J2EETeil von zu lernen Java. Aber ich weiß nicht, wo ich anfangen soll. Ich bin vertrauter mit Core Javaund hauptsächlich möchte ich lernen JPAund Grundlagen von Hibernateund Spring Framework. Der Hauptgrund dafür ist, dass ich an einem Projekt arbeite, das all diese Dinge nutzt. Und der größte Teil des Codes wird von einigen älteren Leuten entwickelt, und ich muss einige Änderungen daran vornehmen. Im Grunde muss ich ihren Code verstehen.

Kann mir jemand eine Art Roadmap geben, wie zum Beispiel, welche Dinge ich vorher wissen muss und in welcher Reihenfolge ich gehen soll? Referenzmaterial wie Links, Bücher?

Bhushan
quelle
1
Haben diese Senioren Zeit, Ihnen vorzustellen, was sie bisher getan haben?
@ Thorbjørn Ravn Andersen: Wenn ich Zweifel habe, erklärt er mir das. Aber die Sache ist, dass der Code mäßig groß ist (~ 10000 Zeilen). Wenn ich also etwas tun muss, muss ich viele Quelldateien und viele Codezeilen durchgehen, die ich wohl nicht bitten kann, mich vollständig zu erklären. Grundsätzlich bin ich mit JPA und Spring Framework und im Allgemeinen mit J2EE nicht vertraut. Also habe ich nach ein paar Sachen gesucht, die mir helfen zu verstehen, wie das Ganze funktioniert und welche Grundlagen es gibt, damit ich zumindest keine dummen Zweifel stelle.
Bhushan

Antworten:

7

Wann immer ich ein neues Framework / eine neue Sprache lernen möchte, erstelle ich normalerweise ein kleines Projekt, das es verwendet. Für ein Webframework habe ich eine gemeinsame Webanwendung, die ich damit schreibe. Es ist einfach und macht nicht viel, aber es hat genug Funktionen, die ich brauche, um die allgemeineren Teile des Frameworks (Datenbank, Hintergrundjobs, MVC oder ähnliches) zu nutzen. Tatsächlich habe ich vor nicht allzu langer Zeit die Aufgabe übernommen, Spring / MVC + Hibernate zu lernen. Ich weiß sicherlich nicht alles, aber es gab mir genug Hintergrundwissen, dass ich, wenn ich etwas nicht weiß, weiß, welche Fragen ich stellen muss und wie ich sie bitten soll, um weitere Informationen zu erhalten.

Bei Web-Frameworks beginne ich normalerweise mit dem einfachen Beispiel "Hallo Welt", das für die meisten Frameworks bereitgestellt wird. Wenn es ein "Gästebuch" -Beispiel gibt (dh um die Datenbanknutzung zu zeigen), folge ich dem. Von dort aus füge ich einfach die gewünschte Funktionalität in meine Lernanwendung ein, beginnend mit der einfachsten. Die Idee ist, dass ich herausfinden kann, wie ich die richtigen Fragen für die einfachen Dinge stellen kann. Nachdem ich einige einfache Dinge getan habe, kann ich mir die komplexeren Dinge ansehen und mit den Informationen, die ich bereits gelernt habe, hoffentlich die richtigen Fragen formulieren, um sie zu stellen.

Ich habe kürzlich damit begonnen, den Code für solche Lernprojekte auf sourceforge zu stellen , wenn Sie interessiert sind.

Bearbeiten: Donals Kommentar hat dazu geführt, dass wir hinzufügen möchten ... Ich habe den Link nicht als Beispiel eingefügt, von dem Sie lernen können. Eher nur als Beispiel dafür, wie ich meinen Code da draußen platziere. Wenn Sie wirklich lernen möchten, müssen Sie den Code selbst schreiben und nicht nur den eines anderen lesen (zumindest meiner Meinung nach).

RHSeeger
quelle
+1: Ich mache fast das Gleiche, außer dass ich die Ergebnisse praktisch nie mit der Begründung teile, dass ich lernen muss, indem ich mache und nicht nur kopiere , und ich gehe davon aus, dass andere Menschen gleich sind. (OTOH, gelegentlich entkommt eines meiner Experimente in die Wildnis und entwickelt sich zu einem echten Produkt.)
Donal Fellows
Ehrlich gesagt habe ich aus drei Gründen mit dem Teilen begonnen: 1) Damit mein Code irgendwo neben dem lokalen SVN-Repository liegt, das ich habe. 2) Wenn Leute nach Beispielen für meinen Code in einer bestimmten Technologie fragen, kann ich sie damit verknüpfen (vorher hatte ich keinen solchen Code, um sie zu zeigen), 3) Wenn Leute mir Fragen stellen, wie man etwas macht und ich es getan habe, kann ich sie einfacher zeigen
RHSeeger
+1. Das ist eine wirklich schöne Idee. Dies beantwortet meine Frage jedoch nicht vollständig. Selbst dafür muss ich irgendwo anfangen, aber ich weiß nicht wo. Das zufällige Scannen eines Themas hilft mir nicht.
Bhushan
1
Es wurde eine kurze Beschreibung hinzugefügt, wie ich speziell auf Web-Frameworks lerne. den Weg, den ich gehe. Leider ist das das Beste, was ich jetzt geben kann. Wenn es nicht ausreicht, kann hoffentlich jemand anderes eine Antwort geben, die besser zu Ihrer Situation passt.
RHSeeger
2

Ich war vor nicht allzu langer Zeit in einer sehr ähnlichen Situation. Im Nachhinein habe ich ungefähr den nützlichsten Ansatz gefunden, um schnell die Grundlagen einer neuen Technologie zu erlernen:

Allgemeiner Ansatz:

  1. Finden Sie heraus, welches Problem es löst. Lesen Sie verschiedene Ressourcen wie die Homepage des Projekts, den Wikipedia-Artikel.
  2. Suchen Sie ein kleines Projekt, das dieses Problem enthält . Zum Beispiel in Ihrem Fall eine kleine Webanwendung, die Ihre DVD-Sammlung verwaltet und die Möglichkeit bietet, sie an Freunde auszuleihen.
  3. Überlegen Sie sich, welche Mechanismen die Technologie voraussichtlich bieten wird . Zum Beispiel für eine ORM-Lösung ein Mechanismus, um anzugeben, ob eine Beziehung 1:noder ist n:n.
  4. Suchen Sie in Ihrer Technologie nach diesen Mechanismen : Suchen Sie beispielsweise in JPA die @OneToManyAnmerkung. Hier arbeiten Sie häufig selbst an einem Leitfaden für die ersten Schritte oder am Code des leitenden Entwicklers.
  5. Implementieren Sie Ihr Miniprojekt mit diesen Mechanismen . Dabei werden Sie die Einschränkungen und wahrscheinlich einige andere Funktionen entdecken. In JPA wählt beispielsweise N + 1 ein Problem oder eine Funktion aus, mit der Sie Tabellen für Ihre Java-Klassen automatisch löschen und (neu) erstellen können .
  6. (Wenn Sie sich die Zeit leisten können): Versuchen Sie zu verstehen, wie Sie die Mechanismen implementieren würden . Auf diese Weise können Sie besser verstehen, warum bestimmte Einschränkungen bestehen und wie Sie diese umgehen können.

Ein Hinweis zu den Anleitungen für die ersten Schritte: Lesen Sie sie nicht vor Schritt 4. Wenn Sie dies dennoch tun, werden Sie beißen, wenn Sie sehr leistungsfähige Frameworks wie Spring mit all seinen ausgefallenen Funktionen lernen. Wie immer im Leben, je leistungsfähiger Ihr Werkzeug ist, desto einfacher können Sie Fehler machen, wenn Sie es nicht wirklich verstehen.

blubb
quelle
-1

Ich empfehle Head First Servlets und JSP . Es ist eine großartige Ressource, um mehr über Enterprise Java zu erfahren.

Dieses Buch wurde für Entwickler geschrieben, die die Prüfung zum Sun Certified Web Component Developer (SCWCD) ​​bestehen möchten. Sun wurde inzwischen von Oracle übernommen und diese Prüfung wurde ersetzt. Weitere Informationen finden Sie hier .

Britt Wescott
quelle
Sind JSPs noch nicht veraltet? Sie sind für "Web 2.0" -Anwendungen, die AJAX stark nutzen, ziemlich nutzlos.
Kevin Cline
-1

Die Online-Dokumentation zum Ruhezustand ist recht gut. Sie könnten dort anfangen.

Kevin Cline
quelle