Domanda

Mi guardavo intorno per vedere se esiste un equivalente a django / RoR in Java.

Ho trovato:

Qualcuno ha mai provato quei framework o ne conosci altri? Sono più veloci di django / RoR?

È stato utile?

Soluzione

Ho scoperto Grails circa un anno fa e non ho guardato indietro. Prende molte idee da Ruby on Rails (originariamente si chiamava Groovy on Rails) e ha un ricco ecosistema di plugin / estensioni. Grails e il linguaggio Grails sottostante (superset di Java) rendono piacevole la programmazione: puoi davvero concentrarti sull'essenziale. Anche la sua funzionalità GORM (uno strato sopra l'ibernazione) è molto potente e, oltre al sistema di plug-in, è uno dei due motivi principali per verificarlo (puoi usarlo anche nelle tue app java).

Con la versione 1.2 che sta per uscire, penso che sia ricco di funzionalità e abbastanza maturo da essere qualcosa che qualsiasi sviluppatore dovrebbe avere nella propria cintura degli strumenti.

Per quanto riguarda le prestazioni, è decisamente inferiore a quello di Java puro, ma hai tutto da spring / hibernate / J2EE a tua disposizione per l'ottimizzazione e puoi sempre passare a java puro per alcuni pezzi di codice critici. Ci sono stati alcuni esperimenti recenti con il permesso di eseguire parte del codice Groovy usando la risoluzione del metodo statico, che, insieme al supporto invokedynamic, dovrebbe fornire enormi miglioramenti delle prestazioni.

Altri da verificare in Java sono Spring Roo e AribaWeb.

Aggiornamento basato su ulteriori qualifiche

  

Scalabilità, produttività,   Documentazione e risorse decenti   Consumo

  • Scalabilità: ottieni lo stack Java / Spring / Hibernate provato, anche se non posso dire che Grails fornisca molto se stesso.
  • Produttività: questa è la ragione principale per usare Grails. Hai un sovraccarico prestazionale, ma Grails è quello che usi quando il tempo di sviluppo / produttività è più importante.
  • Documentazione: i documenti di Grails sono fantastici e ci sono almeno tre buoni libri scritti solo su Grails. La comunità è fiorente e molto utile.
  • Consumo di risorse: questo è l'unico compromesso. Grails (parzialmente a causa dello stack java sottostante) richiede molte risorse. Se stavo costruendo qualcosa come Google, Grails non sarebbe la scelta. Tuttavia, in qualsiasi app web di qualsiasi raffinatezza, faresti bene per una soluzione di memorizzazione nella cache, quindi lo stesso vale qui.

Altri suggerimenti

Stripes sembra essere abbastanza leggero e abbraccia la convenzione sulla configurazione.

Avendo usato puntoni, wicket, rotaie e amp; Tapestry, ti consiglio di esaminare Tapestry 5 .

Supporta

  • nella ricarica della classe contenitore (quindi non è necessario riavviare la tua webapp ogni volta che apporti una modifica)
  • tempo di sviluppo rapido & amp; aumento della produttività: utilizza un modello basato su componenti, con cablaggio dichiarativo
  • configurazione minima, che è comunque principalmente in codice, convenzione su config - ecc.
  • Nessuna classe base da estendere
  • Un linguaggio di espressioni da utilizzare nei file modello
  • buon supporto ajax
  • eccellente supporto per il debug, sia lato client che lato server
  • buona integrazione dell'accesso ai dati
  • una comunità attiva
  • scritto da zero con performance in mente. per esempio. pooling di pagine (per ridurre al minimo l'utilizzo delle risorse), compressione di pagine, eliminazione di spazi bianchi, tutto il codice dinamico viene compilato come nativo.
  • buon supporto per bean e form - semplifica le attività comuni. Un drid ordinabile con backup del database può essere codificato con una sola riga di codice modello e un backend del server skeleton minimo.

L'unico aspetto negativo è la documentazione, che è buona, ma un po 'concisa, anche se i gruppi di utenti / mailing list sono molto attivi e la maggior parte delle domande hanno una buona risposta & amp; avidamente.

(Inoltre, assicurati di guardare solo T5 - e non T4,3,2,1 ..... poiché questi sono molto diversi dalla versione corrente)

Altre informazioni sul perché qui .

Valuta di provare Lift Framework . È davvero fantastico.

Ogni volta che stai pensando a uno stack di applicazioni (lingua, framework, ecc ...) devi anche considerare cosa stai cercando di risolvere e per quale tipo di abilità di programmazione hai a tua disposizione. Ho scoperto che i programmatori Java più esperti sono stati molto produttivi con lo stack Groovy e Grails rispetto a più programmatori junior.

Si indicano le seguenti aree di interesse:

  • Scalabilità: in termini di cosa esattamente? (visualizzazioni di pagina / secondo, # transazioni / secondo, ecc ...) In generale, Groovy & amp; Grails si ridimensionerà quando si tratta di renderizzare le pagine, tuttavia, come per qualsiasi stack di applicazioni che utilizza ORM (nel caso di Grails hai GORM) c'è un sovraccarico da considerare.
  • Produttività: uno dei vantaggi principali qui: prototipazione rapida, sviluppo rapido è un gioco da ragazzi con Groovy & amp; Grails, anche se aiuta ad avere persone nello staff che si sono sviluppate in Java o Ruby per capire cosa sta realmente facendo il framework Grails "sotto il cofano". Ci sono tonnellate di plug-in per l'interfaccia utente che aiutano a creare pagine simili al Web 2.0 molto velocemente.
  • Documentazione: esiste un numero crescente di libri di riferimento sulla qualità scritti per Groovy & amp; Grails. Entrambi stanno maturando molto bene negli ultimi 2 anni. Le cose non sono certamente molto ben documentate rispetto a gran parte del funzionamento interno del framework Grails quando si verificano errori / problemi (gran parte dell'output dal framework è oscuro o nella migliore delle ipotesi inesistente quando si verifica un errore). Se sei disposto a rimboccarti le maniche ed essere pieno di risorse nel camminare attraverso i meccanismi interni, allora non rimarrai deluso da questo stack. Ancora una volta, i programmatori esperti lo troveranno come una seconda natura, mentre a volte più giovani possono alzare le mani frustrati.
  • Consumo di risorse: c'è un sovraccarico, tuttavia con la maggior parte dell'hardware trovato oggi (locale o in un cloud) non mi preoccuperei troppo del consumo di risorse fisiche per una determinata istanza dell'applicazione.

Spero che questo aiuti.

Non conosco Play Framework, ma per rispondere alla seconda domanda, stiamo realizzando alcuni progetti con Webtoolkit di Google. Potrebbe valere la pena dare un'occhiata.
Buona fortuna!

Che ne dici di JRoR

Non l'ho provato da solo, ma i miei college si divertono a usare stripes

C'è un libro e tutto il resto.

Spring Roo afferma di essere una soluzione.

Ho fatto un progetto con grails e l'ho trovato molto velocemente per alcuni compiti, ma fa molti "magici" dietro le quinte che rende difficile il debug.

Inoltre mi sono ritrovato a leggere più volte la documentazione perché non la sentivo naturale. Un semplice esempio è il controller in cui le azioni sono definite come campi (è naturale per me pensare a un'azione come a un metodo ...). Posso dire qualcosa su GORM in cui è necessario conoscere alcune parole speciali che quando vengono inserite in campi statici fa un po 'di magia come creare un campo transitorio ... Nessuna annotazione, nessuna compilazione automatica ... solo il manuale.

Per quanto riguarda il gioco! L'ho trovato incredibilmente semplice e veloce per lo sviluppo, facile da imparare e da ricordare. La comunità sembra più piccola di quella del Graal ma è più attiva e più veloce a rispondere. L'unico svantaggio è che non si basa sull'API del servlet, quindi alcuni filtri di terze parti o altre cose sono difficili da integrare ma non impossibili. È importante notare che è possibile distribuire un'applicazione Play in qualsiasi server Web tradizionale comprimendolo come una guerra.

Secondo me Grails è fantastico ma devi avere molta esperienza con esso per essere produttivo, altrimenti perderai molto tempo con i manuali. Quindi, se questo non è il tuo caso, dovrei raccomandare Play! Specialmente se non hai familiarità con Groovy

Non conosco Play Framework, ma Spring MVC o Struts insieme Hibernate offrirà funzionalità simili.

Sono disponibili molte altre opzioni. Fondamentalmente hai bisogno di un framework MVC (Spring MVC, Struts, Wicket) e uno strumento ORM (Hibernate, iBatis). Ovviamente dovresti integrare tu stesso i componenti necessari, ma questo è già stato fatto molte volte e sarai in grado di trovare molte informazioni.

Non sono sicuro che Spring MVC e Hibernate offrano la stessa facilità d'uso fornita da Ruby on Rails (in realtà, sono sicuro che sia molto più complicato ...). Play Framework è molto più simile a Ruby on Rails, penso, tuttavia non l'ho fatto da solo e ho solo guardato lo screencast e letto un po 'di documentazione su di esso, quindi se vuoi avere un'esperienza simile allo sviluppo usando RoR, penso che tu possa meglio provare qualcosa come Play anziché Spring MVC con Hibernate. Il vantaggio di quest'ultimo è che è molto potente ed è in grado di adattarsi ad un modello di dati esistente ad esempio (da quello che so su RoR, che non è molto banale in RoR). Un altro framework che potresti considerare è Groovy on Grails. Sebbene non usi Java (usa Groovy), è molto simile a RoR. Usa Spring e Hibernate sotto il cofano (se ho ragione) e il vantaggio di Groovy è che non hai la rigida tipizzazione statica di Java. Ruby on Rails e Django beneficiano fortemente della natura dinamica del linguaggio in cui è implementato, una caratteristica che Java manca a causa della sua tipizzazione statica.

Modifica: ah, hai menzionato Grails già nella tua domanda ...

se grails è un'opzione (che in realtà non è un java ma un framework groovy) allora il Lift anche il framework sarebbe un'opzione.

Un'altra opzione è RIFE , che cerca di avere la configurazione minima di RoR pur essendo ancora in Java. Nel tuo elenco, solo Play Framework ha quella funzione, gli altri sono su JVM, ma non sono Java (se questo è importante per te).

Che dire di VRaptor ? - utilizza Spring come contenitore DI e un motore Controller / View simile a Rails Action-Pack.

AribaWeb supporta anche Groovy. Scopri le altre nostre funzionalità su http://aribaweb.org/ e scopri il nostro approccio a rendere produttivo lo sviluppo web.

Utilizziamo ampiamente il framework Stripes e funziona davvero alla grande. È davvero leggero e ti indirizza verso un design pulito delle tue applicazioni. Fondamentalmente ti nasconde solo le parti noiose dello sviluppo, quindi puoi concentrarti su cose divertenti (Uno di questi esempi è il proprietà indicizzate ).

Sto usando http://www.ninjaframework.org/ per i micro-servizi e è molto vicino alla maggior parte dei paradigmi mvc, se hai usato rotaie, asp.net mvc o nancyfx, sei a posto. È molto vicino a quella filosofia ed è davvero fantastico e facile da testare. Unico inconveniente: non c'è molta documentazione, ma segue da vicino il modello mvc. Non utilizza nulla di proprietario nel framework, quindi è una soluzione pura basata su Java. Quindi questo compensa la mancanza di documentazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top