michilee: Java Framework (struts, jsf, spring) für größere Projekte nutzen

Hallo Forum,

ich habe mir die Tage JSF als Framework angeschaut.
(http://www.mi.fh-wiesbaden.de/~barth/webanw/vorl/WebAnwPB9.pdf)

Es hört sich definitiv interessant an und man könnte sicherlich einiges an Arbeit ersparen, falls man sich ein Framework mal verinnerlich hat.

Anstatt "normale" HTML-Tags verwendet man dann interne Tags wie:
<h:panelGrid columns="2"> für eine Tabelle, <h:form> für ein Formular (Und natürlich viele mehr)

Ich frage mich aber nun, da mir natürlich die Praxis mit einem Framework total fehlt, ob man bei größeren Projekten (Bsp. Community, Forum, ...) mit einem Framework gut fährt?

1. Ich frage mich, wie ich zum Beispiel das Gesamtlayout (Header,...) einbinde. (Bisher hatte ich immer in meinen JSP-Dateien ein include und Zentral einen Header.

2. Wenn ich Tabellen, Listen, Menüs, Formularfelder einfüge, frage ich mich, wie ich das designtechnische integriere, was zum Beispiel class oder id's für einzelne HTML-Tags angeht (bzgl. CSS)

3. Vorallem müsste ich mir über die Logik Gedanken, ob und wie ich Arbeit sparen kann, was die Geschäftslogik betrifft. Bsp. das Auslesen der Gästebucheinträge von Gästebuchmitglidern/Besuchern würde so ähnlich aussehen wie das Auslesen von Bug-Einträgen von Mitgliedern/Besuchern. Wobei, die dann auch nicht ganz gleich aussehen, da bei Bug-Einträgen bestimmte Buttons bzw. Links für Operator vorhanden sind und die Tabellen in der DB natürlich anders.
Deshalb frage ich mich, wie man da überhaupt Geschfätslogik miteinander verknüpfen kann und ob ein Framework hierbei Arbeit erleichtert.

Ich lese weiter, vielleicht erhalte ich noch eine Erleuchtung :-)

Grüße

  1. Hi!

    Ich frage mich aber nun, da mir natürlich die Praxis mit einem Framework total fehlt, ob man bei größeren Projekten (Bsp. Community, Forum, ...) mit einem Framework gut fährt?

    Das kommt darauf an. Es ist wie mit einem Haus. Du kannst in ein fertiges einziehen, bei dem alle Infrastruktur bereits vorhanden ist und dort versuchen, deiner eigentlich geplanten Tätigkeit nachzugehen. Am Anfang wirst du eine Menge Dinge (Sicherung fürs Kellerlicht, Absperrhahn für Wasser, Elektrozähler) nicht finden, wenn die Dokumentation schlecht ist oder sie sich dir nicht intuitiv erschließen. Mit der Zeit gewöhnst du dich vielleicht dran. Es kann dir jedoch auch passieren, dass du feststellst, dass das Haus doch nicht oder nicht mehr deinen Bedürfnissen entspricht.

    Du kannst aber auch auf der grünen Wiese dir selbst ein Haus nach deinen eigenen Vorstellungen errichten. Du wirst dann jeden Winkel genau kennen und kannst Reparaturen und Anbauten selbst vornehmen. Aber auch hier kann es passieren, dass du feststellst, dass das Haus doch nicht oder nicht mehr deinen Bedürfnissen entspricht.

    Wie auch immer, in jedem Fall vergeht Zeit, die du zum Selbstbau oder zum Suchen des passenden Hauses und Erkunden aufbringen musst. Und was der beste Weg ist, kann dir vorher keiner sagen.

    1. Ich frage mich, wie ich zum Beispiel das Gesamtlayout (Header,...) einbinde. (Bisher hatte ich immer in meinen JSP-Dateien ein include und Zentral einen Header.

    Das kommt auf die Philosophie und auch auf die Möglichkeiten des Frameworks an.

    1. Wenn ich Tabellen, Listen, Menüs, Formularfelder einfüge, frage ich mich, wie ich das designtechnische integriere, was zum Beispiel class oder id's für einzelne HTML-Tags angeht (bzgl. CSS)

    Das scheint mir ein HTML-Problem zu sein und hat nichts oder nicht viel mit dem Framework zu tun. Am Ende muss eine fertige Seite beim Browser ankommen. Du kannst auch andersrum an die Geschichte rangehen und zunächst eine statische Seite erstellen, die in den Browsern wie gewünscht funktioniert und dich dann heransetzen und sie durch Programmcode erzeugen zu lassen.

    1. Vorallem müsste ich mir über die Logik Gedanken, ob und wie ich Arbeit sparen kann, was die Geschäftslogik betrifft. Bsp. das Auslesen der Gästebucheinträge von Gästebuchmitglidern/Besuchern würde so ähnlich aussehen wie das Auslesen von Bug-Einträgen von Mitgliedern/Besuchern. Wobei, die dann auch nicht ganz gleich aussehen, da bei Bug-Einträgen bestimmte Buttons bzw. Links für Operator vorhanden sind und die Tabellen in der DB natürlich anders.

    Das ist ein allgemeines Problem beim Programmieren: Finde Gemeinsamkeiten in den einzelnen Aufgabenstellungen, versuche dann eine generische Lösung zu erstellen, die mit unterschiedlichen Parametern die gewünschten Ergebnisse erzielt. In der OOP kann man das auch durch (abstrakte) Basisklassen hinbekommen, die um von weiteren Klassen mit spezieller Funktionalität beerbt werden können.

    Es gibt da den theoretischen Weg und den praktischen. Der theoretische setzt einen Software-Architekten voraus, der das ganze Gebilde plant und die Strukturen festlegt. Der praktische fängt mit dem Erstellen von Funktionalität an und stellt fest, dass man sie nochmal mit leichten Änderungen an anderer Stelle braucht und refaktoriert den vorhandenen Code. Am besten ist der goldene Mittelweg: sich zunächst mit der gedanklichen Struktur verplanen und dann praktisch solch ein Chaos erzeugt zu haben, dass man effektiver- und effizienterweise noch mal neu anfängt, als dass man das Gebilde durch einen Anbau in seiner Stabilität grundlegend beeinträchtigt.

    Lo!

    1. Hallo dedlfix,

      »»... Es ist wie mit einem Haus. ...

      schöner Vergleich. Ich möchte nur noch ergänzen, dass viele, die eigentlich nur eine Gartenlaube mit Anbau für den Rasenmäher brauchen, sich statt dessen drei Mietskasernen mit Dachterrasse und Tiefgarage besorgen.

      Gruß, Jürgen

      1. danke euch beiden für die ausführliche erklärung.

        eine andere frage wäre auch, wie mehrere leute am besten an einem projekt arbeiten, was das programmieen betrifft. man kann zwar in der projektplanung sagen, dass man diese und diese methoden oder objekte braucht, aber das ganze irgendwie dann noch verknüpfen/verbinden von den ganzen arbeiten, bzw. aufeinander abstimmen, ist sicherlich auch nicht leicht.

        Grüße

        1. Hi!

          eine andere frage wäre auch, wie mehrere leute am besten an einem projekt arbeiten, was das programmieen betrifft.

          Am besten nachvollziehbar und so, dass man es wieder rückgängig machen kann: Versionsverwaltungssystem aufsetzen.

          man kann zwar in der projektplanung sagen, dass man diese und diese methoden oder objekte braucht, aber das ganze irgendwie dann noch verknüpfen/verbinden von den ganzen arbeiten, bzw. aufeinander abstimmen, ist sicherlich auch nicht leicht.

          Das kann sein, muss aber nicht. Vielleicht brauchst du einen Projektmanager, vielleicht verstehen sich alle Beteiligten auch ohne Hutmann.

          Lo!

          1. hi,

            eine andere frage wäre auch, wie mehrere leute am besten an einem projekt arbeiten, was das programmieen betrifft.

            Am besten nachvollziehbar und so, dass man es wieder rückgängig machen kann: Versionsverwaltungssystem aufsetzen.

            das stimmt, da muss ich mir überlegen, wie man das dann anstellt, wenn da mehrere leute dran sind und etwas immer geändert wird. man muss sich da wohl sehr ausgiebig absprechen.

            Das kann sein, muss aber nicht. Vielleicht brauchst du einen Projektmanager, vielleicht verstehen sich alle Beteiligten auch ohne Hutmann.

            ich schau mal, wie es läuft. ein praktikum in einer software firma wäre wohl auch nicht schlecht.

            grüße

            1. Hi!

              Versionsverwaltungssystem aufsetzen.
              das stimmt, da muss ich mir überlegen, wie man das dann anstellt, wenn da mehrere leute dran sind und etwas immer geändert wird. man muss sich da wohl sehr ausgiebig absprechen.

              Man muss nur diszipliniert damit arbeiten: auschecken, damit arbeiten, einchecken der Änderungen. Es gibt zwar Konfliktlösungsmöglichkeiten in den Versionsverwaltungen, aber wenn man sich abspricht, wer für welche Teile zuständig ist und nicht ständig gleichzeitig an den selben Ecken arbeitet, sollte das weniger Probleme bereiten.

              Lo!

              1. hi,
                boa, antwortest richtig schnell.

                Man muss nur diszipliniert damit arbeiten: auschecken, damit arbeiten, einchecken der Änderungen. Es gibt zwar Konfliktlösungsmöglichkeiten in den Versionsverwaltungen, aber wenn man sich abspricht, wer für welche Teile zuständig ist und nicht ständig gleichzeitig an den selben Ecken arbeitet, sollte das weniger Probleme bereiten.

                ja, das ist mal ein tipp.
                wenn jemand an einer stelle die arbeit übernimmt, sollte man für andere den bereich sperren bis er fertig ist. eventuell eine liste, was genau erledigt wird mit einer etwas detaillierteren to-do liste. so langsam nimmt das ganze etwas ordnung in meinem schädel *gg

                grüße

                1. Hi!

                  wenn jemand an einer stelle die arbeit übernimmt, sollte man für andere den bereich sperren bis er fertig ist.

                  Ich kenne nicht alle Versionsverwaltungssysteme, aber es gibt mindestens eins, bei dem man auch Sperren setzen kann. Besser ist es aber, wenn man sich in einem überschaubaren Team untereinander abstimmt, so dass jeder weiß, wer gerade woran arbeitet. Wenn allerdings das Projekt weltweit offen steht und eine einigermaßen hohe Zahl an unbekannten Beitragenden hat, dann muss man sich vielleich tüberlegen Manager für bestimmte Zuständigkeitsbereiche einzuführen, so dass das Projekt wegen des Viele-Köche-verderben-den-Brei-Problems Schaden nimmt.

                  Lo!

                  1. nabend,

                    Ich kenne nicht alle Versionsverwaltungssysteme, aber es gibt mindestens eins, bei dem man auch Sperren setzen kann. Besser ist es aber, wenn man sich in einem überschaubaren Team untereinander abstimmt, so dass jeder weiß, wer gerade woran arbeitet. Wenn allerdings das Projekt weltweit offen steht und eine einigermaßen hohe Zahl an unbekannten Beitragenden hat, dann muss man sich vielleich tüberlegen Manager für bestimmte Zuständigkeitsbereiche einzuführen, so dass das Projekt wegen des Viele-Köche-verderben-den-Brei-Problems Schaden nimmt.

                    ja das stimmt, da hast du recht. ich bedanke mich dann nochmals für deine hilfestellung und die mühe, die du extra für mich gemacht hast, um alles schön zu erklären und tipps zu geben. danke und schöne nacht noch :-)

                    grüßchen