2013-05-03 27 views
8

So che questa domanda è vaga, ma cercherò di chiarirmi.Devo usare un framework?

Sto avviando un progetto Java che coinvolge una GUI Swing. Voglio seguire lo schema MVC e potrei servirci dell'aiuto di un framework per organizzare l'architettura del progetto. Stavo pensando di usare Griffon, anche se suppongo che altri potrebbero fare il trucco.

Quindi, è una buona idea di utilizzare un quadro in termini di: efficienza

  • Programmazione: Naturalmente, sarà migliorata ... maggior parte del tempo. Più precisamente, e se il progetto fosse piccolo? O uno grande? Cosa succede se ho già molta familiarità con Java e Swing? Cosa succede se non lo sono? Cosa succede se il progetto deve essere gestito da qualcuno che non sa nulla del framework che ho usato?

  • Valore di apprendimento: semplicemente "imparerò a utilizzare il framework", invece di imparare di più su Java e Swing in un altro ambiente?

  • Valore professionale: le aziende preferirebbero uno sviluppatore che conosce "più" framework (anche se potrebbero non essere quelli che intendono utilizzare) a uno sviluppatore che conosce meglio l'approccio "tradizionale"?

Ho trovato poche informazioni altrove, il che è sorprendente, considerando quanto è grande questa domanda. Potrebbe sembrare banale, ma in realtà me lo chiedo.

risposta

3

Stavo valutando Griffon come una struttura. Ho avuto l'impressione che questo progetto stia lentamente morendo. IMHO Groovy non è più un mainstream (mi chiedo se sia mai stato un mainstream?). Adesso tutti immaginano Scala.

Ora torniamo alla tua domanda:

  • maggior parte dei quadri si aspettano di seguire il percorso di sviluppo di serie . Eventuali modifiche/personalizzazioni introdurranno molto probabilmente soluzioni difficili da gestire (in seguito chiameranno l'architettura). Scegli un framework che ti permetta di fare il 95% delle cose che pensi di fare. E sì, scegli un framework mainstream.
  • Griffon è basato su Groovy, quindi devi padroneggiare prima Groovy. Ok, Groovy è un linguaggio JVM e se sei d'accordo con Java sarà di grande aiuto, ma comunque tutti quei DSL richiederanno del tempo per sistemarti in testa.
  • Se conosci qualche framework mainstream, questa è una risorsa preziosa. Il fatto triste è che le strutture tendono a svanire/morire e devi costantemente cercare nuove cose. Non si può mai smettere di imparare (anche se i principi fondamentali non possono essere modificati e rimanere costante da quadro a quadro)
+0

Grazie per questa risposta pratica. – Aeronth

+2

Ho paura che Scala sia più hype di ogni altra cosa in questi giorni. Comunque, Griffon supporta anche Scala (presto ScalaFX), quindi è mainstream come Scala può essere (secondo i tuoi calcoli). – aalmiray

+0

@aalmiray dal plugin docs: it (scala) verrà compilato prima di tutte le fonti disponibili su griffon-app o src/main, il che significa che non puoi fare riferimento a nessuna di queste fonti dal tuo codice Scala. E sì, non volevo ferire i sentimenti di nessuno;) Ho già un progetto su Grails. – WeMakeSoftware

2

L'implementazione del pattern MVC per un ambiente dovrebbe essere semplice se lo si capisce. Innanzitutto una nota: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

Ora che arriva al tuo ambiente basato su Swing, puoi implementare il tuo codice dividendolo Model-View-Controller. Le viste sono le tue classi Swing in cui stai effettivamente creando l'interfaccia utente. In tali classi, è sufficiente acquisire le azioni dell'utente attraverso diversi listener, ma non dovrebbe implementare alcuna logica aziendale. Il controllore deve fare la logica aziendale e può utilizzare il Modello quando lo si desidera.

Ad esempio, si sta creando una GUI Swing per l'accesso. Crea una classe LoginView in cui creerai il frame, i campi di testo, i pulsanti, ecc. Inoltre, allega gli ascoltatori a diversi controlli come desiderato. Ora ogni volta che un utente invia il login, è necessario chiamare il controller per fare la convalida delle credenziali. Le credenziali possono essere archiviate in un DB, che deve essere caricato e archiviato in Model (DAO). Il controller dovrebbe ricevere l'input dell'utente da Visualizza, correggere le credenziali dal modello e la logica di confronto deve essere implementata in Controller.

Spero che aiuti!

5

Come sappiamo, Grifone si basa su Groovy e Groovy ha un bello stile Java, probabilmente eviterete un sacco di linea di codice, ma sempre dobbiamo considerare alcuni aspetti come la conoscenza e il programma.

  • Conoscenza: la produttività è in relazione con ciò che si sa e come utilizzare ciò che si sa, se ti senti confortble in Java, utilizzare il Java, perché, sembra che il vostro obiettivo è quello di utilizzare MVC e come Juned detto, possiamo farlo anche con Swing.
  • Programma: Se hai tempo per studiare e davvero vuoi imparare un nuovo framework ora, questo è il momento, ma devi seguire il tuo programma, non dimenticare che devi completare questo progetto nel tempo .

Quindi, considera di utilizzare ciò che sai e studia nuove cose in un altro progetto.

Evitare di immergersi al buio senza la torcia.

+0

+1 per "Evita di immergerti al buio senza la torcia". – TheKojuEffect

5

Naturalmente io sono di parte quando si tratta di Griffon però cercherò di essere il più obiettivo possibile:

  • Griffon è un framework MVC/piattaforma per la JVM. È vero che il linguaggio di programmazione scelto è Groovy, tuttavia possono essere utilizzati anche molti altri, vedere questo esempio dalla Guida http://griffon.codehaus.org/guide/latest/guide/tips.html#nonGroovyArtifacts dove mostra come è possibile scrivere un'applicazione Java pura. Altre opzioni sono possibili se installi un plugin specifico http://artifacts.griffon-framework.org/tags/plugin/polyglot
  • La filosofia di Griffon è quella di mantenere aperte le tue scelte. È vero che a volte il framework ti guiderà a seguire un percorso particolare, ma offre un sacco di spazio per le gambe, cioè lo fai ballare sulla tua musica. Ad esempio, la scrittura di Views viene in genere eseguita seguendo il DSL di Groovy SwingBuilder (un sottile livello di astrazione su Swing), ma è possibile scendere al livello Java e scrivere in Java/Swing se lo si desidera; oppure scegli NetBeans Matisse, Abeille Froms Designer o qualsiasi altro strumento Visual che supporti Swing.
  • I plug-in sono la chiave del successo di Griffon. Come potete vedere allo http://artifacts.griffon-framework.org/category/all/plugins ci sono attualmente 211 plugin, e altri stanno arrivando.

Ma alla fine c'è solo un parere che conta: la vostra. Ti consiglierei di passare qualche ora con Griffon, se non vedi il valore aggiunto da allora ... temo che dovremo lavorare di più per migliorarlo.

Cheers

+2

Grazie! Comunque, la mia domanda era in realtà rivolta ai framework in generale - penso che Griffon sarebbe una buona scelta se deciderò di usarne uno. Sono un principiante nella scrittura di GUI, e trovo la creazione di un'app Swing da zero inutilmente dolorosa, considerando che sto solo seguendo gli standard. Comunque voglio scrivere semplicemente Java poiché mi piacerebbe impararlo. Quindi ho pensato che un framework avrebbe fornito almeno l'architettura di partenza, e possibilmente di più. Ecco perchè. – Aeronth