2010-10-11 15 views
23

Ich bin ein Java-Entwickler, nicht gewürzt, aber ich kenne die meisten Konzepte einigermaßen gut.Warum sollte ich Struts lernen und verwenden?

Ich habe vor kurzem eine Website mit Tomcat/JSP (~ 30 dynamische Seiten) erstellt. Ich machte dem Neuling den Fehler, große Teile der Kernlogik in die JSP zu integrieren, indem ich die Rationalisierung verwendete, dass es "nur ein einfaches Projekt" sei.

Ich lernte den harten Weg. Also baue ich die App jetzt in der Google App Engine mit Servlets neu auf und plane, Velocity zu verwenden, um sie mithilfe eines Model-View-Controller-Entwurfsmusters zu implementieren.

Ich sehe auch Struts, aber habe das Framework nicht zuvor verwendet.

Kann mich jemand überzeugen, warum ich Struts in dieses Projekt einbauen sollte? Wird es mich wirklich für ein mittelgroßes Projekt von ein oder zwei Leuten kaufen?

Es gibt klare Kosten in einer zusätzlichen Lernkurve mit Strebe, werden die Vorteile die Kosten überwiegen? Oder reicht die Verwendung von Velocity aus, um die Logik zu trennen? Meinungen?

+3

Struts ist schrecklich. Wenn Sie sich selbst einen Gefallen tun möchten, verwenden Sie Wicket (komponentenbasiert) oder Spring MVC (aktionsbasiert). Beide sind großartige und intuitive Frameworks. –

+6

Struts2 ist sehr verschieden von Struts, und ziemlich ähnlich wie Spring MVC oder Stripes (aktionsbasiert) – leonbloy

+7

Struts 1 ist wirklich veraltet. Struts 2 ist in keiner Weise schrecklich. –

Antwort

23

Ich würde längerfristig als dieses Projekt aussehen. Wie du gesehen hast, geht es beim ersten Mal, wenn du irgendeine Technologie verwendest, hauptsächlich darum, Fehler zu machen und von ihnen zu lernen. Daher wird dieses erste Projekt wahrscheinlich kein leuchtendes Beispiel für die Verwendung von Struts sein, wenn Sie fertig sind.

Die Verwendung von Struts (und Tiles von dem, was Sie angaben, war ein Hauptanliegen: JSP copy and paste) wird jedoch eine ausgezeichnete Vertiefung in "richtige" MVC, dh es zwingt Sie, Dinge auf eine besonders strukturierte Art und Weise zu tun was ich sehr geschätzt habe, war ein großer Struts-Fan.

. Diesbezüglich gibt es andere Optionen, z.B. Frühling enthält Frühling MVC plus viel viel mehr. Wenn Sie in die Überwindung einer Lernkurve investieren, sollten Sie überlegen, welche Rahmenbedingungen Ihnen mittelfristig am meisten nützen werden: Auf welche Rahmenbedingungen achten beispielsweise die Arbeitgeber in Ihrer Region? Zu diesem Zeitpunkt würde ich mit Spring gehen, wo ich das Gefühl verspüre, aber Struts ist sehr gut darin, was es tut.

+1

Sehr schöne und beschreibende Antwort. +1 dafür. Und ich hoffe, als du Struts erwähnt hast, hast du eigentlich Struts 2 gemeint. –

+1

Danke. Es ist ungefähr 5 Jahre her, dass ich Struts benutzt habe, aber ich habe gute Erinnerungen! – Brian

11

Wenn Sie ein Framework lernen, würde ich Spring MVC über Struts empfehlen. Die Lernkurve ist nicht zu steil und es gibt viele Spring Ressourcen im Internet verfügbar.

Sobald Sie Spring an Ort und Stelle haben, werden Sie feststellen, dass Ihre Anwendung viel einfacher zu warten und zu unterstützen ist. Sie können auch Verbesserungen, wie Sicherheit, viel einfacher hinzufügen.

+0

Ja, das bevorzuge ich auch. –

3

Warum sollten Sie Struts lernen? Meine Antwort lautet: Weil Arbeitgeber oft Kenntnisse darüber benötigen, insbesondere für die Pflege älterer Projekte. Ich habe keine genauen Messungen gemacht, aber ich denke, dass in meiner Region JSF und Struts am häufigsten für die Entwicklung von Webanwendungen verwendet werden.

Struts ist ein recht altes Webframework, und es ist ziemlich tollpatschig, moderne AJAX-GUIs damit zu schreiben, daher wurden bessere Frameworks erstellt. JSF ist für mich ein bisschen weniger ungeschickt, hat aber auch einige Probleme. Meine Lieblings-Web-Frameworks sind Vaadin und GWT, aber ich schlage nichts für Sie vor - Sie sollten die Entscheidung selbst treffen.

4

Lernen, die Logik zu trennen, ist ausgezeichnet. Sie können dies tun, ohne Velocity, Struts oder irgendein anderes Framework zu verwenden, und Sie werden wahrscheinlich mehr darüber erfahren, was es für diese Trennung braucht, wenn Sie es zuerst mit minimaler Hilfe versuchen.

Es lohnt sich auch, einen Rahmen (in der Tat mehrere Rahmen) zu lernen, aber ich würde Struts nicht als ersten Rahmen wählen, es sei denn, es ist der von Ihrem Arbeitgeber oder einem potenziellen Arbeitgeber verwendete. Wenn Ihr Arbeitgeber Struts verwendet, hoffe ich, dass es Struts 2 ist, da Struts 1 alt wird.

Das Framework, mit dem ich am liebsten arbeite, ist Wicket, aber es ist eine radikale Veränderung von dem, was Sie gerade sehen. SpringMVC ist definitiv einen Blick wert.

Wenn Ihr Arbeitgeber bereits Web-Entwicklung in Java mithilfe eines Frameworks durchführt, versuchen Sie, das tatsächlich verwendete Framework zu erlernen, und bitten Sie Ihre Mitarbeiter um Hilfe beim Lernen.

8

Erstens: Lassen Sie sich nicht durch den Namen verwirren: Struts2 und Struts sind sehr unterschiedliche Frameworks.

Zweitens: Wechsel von JSP zu Velocity kann eine gute oder schlechte Entscheidung sein, aber das ist nicht der Punkt. Der Punkt ist, von Model1 (ziemlich alte Nomenklatur, aber immer noch nützlich) zu wechseln. Das heißt, Ihre Ansichtsebene von Ihrer Logikebene zu entkoppeln. (Sie können JSP oder Velocity für Ihre Ansichtsebene verwenden). Um zu entscheiden, ob Ihre Ansichtsebene nur ein Teil Ihrer Architektur ist, müssen Sie noch entscheiden, wer die Anforderung verarbeitet und die Daten erzeugt, die an die Ansicht gesendet werden. Die einfachste Option ist die Verwendung von einfachen Servlets, aber auch hier ist es besser, ein Framework zu verwenden. Dafür gibt es in Java ein lot of frameworks. Die "handlungsbasierten" sind eine Untergruppe von ihnen, vielleicht die am einfachsten zu lernenden. Unter ihnen ist Struts; Heute sind die meist verwendeten für neue Projekte (in keiner bestimmten Reihenfolge) Struts2, Spring MVC und Stripes - sie sind sehr ähnlich.

Verwandte Themen