Sollte ich ein Framework verwenden?

8

Ich weiß, dass diese Frage vage ist, aber ich werde versuchen, mich klar zu machen.

Ich starte ein Java-Projekt mit einer Swing-GUI. Ich möchte dem MVC-Muster folgen und könnte einige Hilfe von einem Framework verwenden, um die Architektur des Projekts zu organisieren. Ich dachte darüber nach, Griffon zu benutzen, obwohl ich denke, dass andere es tun könnten.

Also, ist es eine gute Idee, einen Rahmen zu verwenden in Bezug auf:

  • Effizienz der Programmierung: Natürlich wird es verbessert ... die meiste Zeit . Genauer gesagt, was ist, wenn das Projekt ein kleines Projekt ist? Oder ein großer? Was, wenn ich Java und Swing schon sehr gut kenne? Was wenn ich nicht bin? Was ist, wenn das Projekt von jemandem gepflegt werden muss, der nichts über den von mir verwendeten Rahmen weiß?

  • Lernwert: Will ich nur "lernen, wie man das Framework verwendet", anstatt mehr über Java und Swing in einer anderen Umgebung zu lernen?

  • Professioneller Wert: Würden Unternehmen einem Entwickler, der den "traditionellen" Ansatz besser kennt, einen Entwickler vorziehen, der "mehr" Frameworks kennt (auch wenn sie nicht die zu verwendenden sind)?

Ich habe an anderer Stelle wenig Information gefunden, was überraschend ist, wenn man bedenkt, wie groß diese Frage ist. Es mag trivial erscheinen, aber ich wundere mich darüber.

    
Aeronth 03.05.2013, 09:50
quelle

4 Antworten

3

Ich habe Griffon als Rahmen bewertet. Ich habe den Eindruck, dass dieses Projekt langsam stirbt. IMHO Groovy ist kein Mainstream mehr (ich frage mich, ob es jemals ein Mainstream war?). Jetzt sind alle Scala.

Nun zurück zu Ihrer Frage:

  • Die meisten Frameworks erwarten, dass Sie dem Standard Entwicklungspfad folgen. Jegliche Änderungen / Anpassungen werden höchstwahrscheinlich schwierig zu wartende Lösungen einführen (sie werden danach Architektur nennen). Wählen Sie ein Framework, mit dem Sie 95% der Dinge tun können, die Sie planen. Und ja, wählen Sie einen Mainstream-Rahmen.
  • Griffon basiert auf Groovy, also musst du zuerst Groovy meistern. Ok, Groovy ist eine JVM-Sprache und wenn Sie mit Java in Ordnung sind, wird es sehr hilfreich sein, aber all diese DSLs werden noch einige Zeit benötigen, um sich in Ihrem Kopf festzusetzen.
  • Wenn Sie einen Mainstream-Rahmen kennen, ist dies ein wertvolles Gut. Die traurige Tatsache ist, dass Frameworks dazu neigen, zu verblassen / zu sterben und man ständig nach neuen Buzz Dings suchen muss. Sie hören nie auf zu lernen (obwohl Schlüsselprinzipien nicht geändert werden können und von Framework zu Framework konstant bleiben)
WeMakeSoftware 03.05.2013, 10:07
quelle
5

Wie wir wissen, basiert Griffon auf Groovy und Groovy hat einen schönen Java-Stil , wahrscheinlich werden Sie viele Codezeilen vermeiden, aber wir müssen immer einige Aspekte wie Wissen und Zeitplan berücksichtigen.

  • Wissen : Ihre Produktivität hängt davon ab, was Sie wissen und wie Sie das verwenden, was Sie wissen. Wenn Sie sich in Java wohl fühlen, dann verwenden Sie Java, denn Ihr Ziel ist, MVC zu verwenden und wie Juned sagte Wir können das auch mit Swing machen.
  • Zeitplan : Wenn Sie Zeit zum Lernen haben und jetzt wirklich ein neues Framework lernen möchten, ist dies an der Zeit, aber Sie müssen Ihren Zeitplan einhalten, vergessen Sie nicht, dass Sie dieses Projekt beenden müssen die Zeit.

Überlegen Sie sich also, was Sie wissen, und studieren Sie neue Dinge in einem anderen Projekt.

  

Vermeide es, im Dunkeln ohne deine Taschenlampe zu tauchen.

    
Jonatas Emidio 03.05.2013 11:12
quelle
5

Natürlich bin ich voreingenommen, wenn es um Griffon geht, aber ich werde versuchen, so objektiv wie möglich zu sein:

  • Griffon ist ein MVC Framework / Plattform für die JVM. Es stimmt, dass die Programmiersprache der Wahl Groovy ist, aber viele andere können auch verwendet werden, siehe dieses Beispiel aus dem Guide Ссылка wo es zeigt, wie eine reine Java-Anwendung geschrieben werden kann. Andere Optionen sind möglich, wenn Sie ein bestimmtes Plugin Ссылка installieren
  • Griffons Philosophie ist es, Ihre Entscheidungen offen zu halten. Es ist wahr, dass manchmal der Rahmen Sie steuern wird, bestimmten Weg zu folgen, aber es bietet viel Beinfreiheit, das heißt, Sie lassen es zu Ihrer eigenen Melodie tanzen. Zum Beispiel wird das Erstellen von Ansichten in der Regel nach dem Groovy SwingBuilder DSL (einer subtilen Abstraktionsschicht auf Swing) durchgeführt, aber Sie können auf die Java-Ebene zugreifen und in Java / Swing schreiben, wenn Sie möchten; oder wählen Sie NetBeans Matisse, Abeille From Designer oder ein anderes visuelles Tool, das Swing unterstützt.
  • Plugins sind der Schlüssel zum Erfolg von Griffon. Wie Sie in Ссылка sehen können, gibt es derzeit 211 Plugins, und weitere kommen hinzu.

Aber am Ende gibt es nur eine Meinung, die zählt: Ihre. Ich würde dir empfehlen, ein paar Stunden mit Griffon zu verbringen, wenn du bis dahin den Mehrwert nicht siehst ... Ich fürchte, wir müssen härter arbeiten, um es besser zu machen.

Prost

    
aalmiray 03.05.2013 13:33
quelle
2

Die Implementierung des MVC-Musters für eine Umgebung sollte einfach sein, wenn Sie es verstehen. Zuerst eine Notiz: Ссылка

Nun kommen Sie in Ihre Umgebung, die Swing-basiert ist. Sie können Ihren Code implementieren, indem Sie den Modell-View-Controller dividieren. Ansichten sind Ihre Swing-Klassen, in denen Sie tatsächlich die Benutzeroberfläche erstellen. In solchen Klassen sollten Sie die Benutzeraktionen einfach über verschiedene Listener erfassen, aber keine Geschäftslogik implementieren. Der Controller sollte die Geschäftslogik ausführen und bei Bedarf Modell verwenden.

Sie erstellen beispielsweise eine Swing-GUI für die Anmeldung. Erstellen Sie eine LoginView-Klasse, in der Sie den Rahmen, Textfelder, Schaltflächen usw. erstellen. Außerdem können Sie die Listener nach Wunsch an verschiedene Steuerelemente anhängen. Wann immer ein Benutzer die Anmeldung sendet, sollten Sie den Controller anrufen, um die Berechtigungsüberprüfung durchzuführen. Anmeldeinformationen können in einem DB gespeichert werden, der in Model (DAOs) geladen und gespeichert werden sollte. Der Controller sollte die Benutzereingabe von View abrufen, die Anmeldeinformationen von Model korrigieren und die Vergleichslogik sollte in Controller implementiert werden.

Ich hoffe, es hilft!

    
Juned Ahsan 03.05.2013 10:00
quelle