Domanda

Ho fatto molto sviluppo di java web usando jsps e servlet e ho trovato questo approccio semplice e flessibile. Tuttavia, alcune delle basi coinvolte, come la gestione delle connessioni al database, sono piuttosto noiose e ci vuole un bel po 'di lavoro solo per far decollare una nuova app Web.

Sto quindi considerando di utilizzare un framework per la prima volta, ma la mia impressione dei framework è che sono principalmente utilizzati per applicazioni J2EE di grandi dimensioni e implicano molte configurazioni complesse. Quello che sto cercando è qualcosa di semplice che (dopo la curva di apprendimento iniziale) mi consentirà di iniziare a utilizzare una nuova app Web il più rapidamente possibile.

Quindi la mia domanda è: ha senso usare un framework per una semplice app Web Java?

Nota che non sto chiedendo quale framework usare (se in effetti è raccomandato un framework), poiché è già stato chiesto qui .

È stato utile?

Soluzione

Ha molto senso. Il mio team ha trascorso la parte migliore di cinque anni con il nostro stack open source e non importa e abbiamo un "seed" progetto (funziona come appfuse) che utilizziamo per creare tutte le nuove app Web. Anche i due semplici cercapersone dal punto di vista della manutenzione dell'app, assomigliano a tutte le altre app, solo più piccole.

In breve, al momento non otterrai alcun ritorno sull'investimento, ma man mano che il progetto si evolve e lo mantieni.

Altri suggerimenti

Se non usi un framework web, di solito finisci per scriverne uno - male.

Sì, utilizzerei un framework Web per i seguenti motivi:

  1. Maggiori capacità e controlli di navigazione. Anche se potresti non averne bisogno, sono lì per te se dovessi richiederli in qualsiasi momento
  2. Come altri hanno indicato, le app crescono nel tempo e in futuro sentirai la necessità del framework. Quando è necessario aggiungere ulteriori pagine e navigazione
  3. Funzionalità che consentono di collegarsi ad altri framework come framework di accesso di sicurezza e DB. La primavera è un ottimo esempio nel mondo Java. Non devi mai usare Spring ma si collega così bene con Struts, Spring MVC, Hibernate, Acegi ecc. Finisce per salvarti la seccatura di fare tutto l'impianto idraulico da solo.
  4. Supporto !!! I buoni framework hanno quasi sempre una community vibrante per supportarli e porre e rispondere a domande.

Inizialmente può sembrare una seccatura, ma sicuramente ti farà risparmiare molto tempo in futuro

Direi che in realtà conta molto quale framework scegliere. Qualcosa come Spring MVC è abbastanza discreto nel tuo codice e ti consente di eseguire le cose esistenti così com'è. Altri framework hanno idee molto più specifiche su come dovresti fare le cose.

Sì, ha senso. Le app possono crescere e cambiare e potrebbero richiedere qualcosa che un framework può fornire facilmente in futuro.

Ad esempio sul mio posto di lavoro abbiamo una semplice app jsp / servlet. Deve essere riscritto proprio per quello che ho spiegato sopra. Se qualcuno si fosse preso il tempo per ottenere la configurazione del framework, oggi saremmo in forma migliore.

Sì, ha senso. Comunque implicito nella tua domanda è che la struttura sbagliata (per te) può essere più dolorosa di quanto valga - ed è vero. C'è un mondo di differenza tra qualche pesante framework J2EE e qualcosa di leggero e allegro come i graal.

Qual è l'alternativa? Rotolare il tuo? Incorporare tutta la navigazione e la logica nei JSP?

Sono d'accordo con coloro che affermano che ne vale la pena un framework web. Ce ne sono letteralmente centinaia ora (ad esempio, Struts, JSF, Spring, Wicket, ecc.). Scegli quello più adatto a te.

Esistono due tipi di applicazioni:

1) il tipo che butti via e non usi mai più, e quindi non dovresti preoccuparti di modularità, manutenibilità e chiarezza.

2) il tipo reale.

A volte può sembrare che la tua app non debba mai crescere, ridimensionare o servire un set di funzionalità / utenti più ampio di quello che stai pianificando attualmente .... Ti assicuro che la percezione è sempre sbagliata.

I framework, in particolare cose come Struts for MVC in Java, Spring for MVC e Dependency Injection, Hibernate for Object-Relational Modeling sono tutti strumenti estremamente preziosi che portano a modularità, manutenibilità e chiarezza nel codice. Quindi, per rispondere alla tua domanda originale .... Sì, con enfasi.

No, a meno che:

  1. non hai alcuna esperienza Java nella tua squadra
  2. stai facendo solo un prototipo deve essere pronto in ore
  3. non ti fidi dei tuoi sviluppatori abbastanza per far loro scrivere il tuo applicazione
  4. non hai intenzione di lasciare il tuo gli sviluppatori imparano e migliorano

Il pericolo nell'uso dei framework include ma non è limitato a:

  1. otterrai tutti i difetti del framework da solo
  2. non sarai in grado di fare stime realistiche fino a te     conoscere perfettamente il framework
  3. il tuo team non imparerà come programmare a     web server
  4. troverai che la tua squadra sta passando di più     e più tempo su google invece che     risolvere i problemi scrivendo il codice.

L'unica cosa peggiore che scegliere un framework open source sia avere un team R & amp; separato nell'azienda che dovrebbe creare il "grande quadro completo completo".

  

ma la mia impressione dei framework è che sono usati principalmente per applicazioni J2EE di grandi dimensioni e implicano molte configurazioni complesse

Non necessariamente vero. I buoni framework sono progettati per scalare bene in modo da portarti da piccole app a app molto grandi. Oggi molti framework si stanno muovendo verso la configurazione zero, quindi li troverai più facili e facili da usare.

Hai ragione sul fatto che ci vuole uno sforzo iniziale per apprendere il framework stesso, ma che l'investimento si ripaga da sé nella prima applicazione che crei. E meta framework come AppFuse rende ancora più facile iniziare dal momento che preconfigura il quadri per te.

I framework hanno senso per la maggior parte delle applicazioni. Potrebbe essere necessario crearne uno tuo o adottare un altro framework. La domanda più importante è la granularità delle strutture dei dati. Ciò che intendo con questo è che devi semplicemente inserire i dati o devi analizzare, compilare ed eseguire il codice dinamico?

Se pensi a un frame che funziona come un indicatore e a sinistra c'è un frame già pronto tutto open source o chiuso e a destra è tutto un framework personalizzato, allora imponi il tuo codice sopra quel frame dove il livello di complessità aumenta a destra. Quanto più a destra si va, tanto più sarà una trappola con il frame work (IMO).

Tuttavia, puoi anche migrare lentamente dal framework esistente a quello personalizzato.

C'è anche la domanda sulla tua attività. Se lavori per un'azienda che non considera il software come la sua competenza principale come una banca o un ospedale, allora devi fare in modo che la parte di un frame di lavoro che vuoi costruire.

In conclusione un quadro di qualche tipo sarà sempre utile.

L'uso di un framework può aggiungere un certo sovraccarico allo sviluppo delle tue app web a causa della curva di apprendimento. Tuttavia, a seconda del framework scelto, potresti essere in grado di realizzare i seguenti vantaggi:

  1. Scalabilità
  2. Maintainability
  3. Cancella divisione del modello (ad esempio MVC)
  4. Componenti pronti all'uso (SessionManagement, autenticazione, ecc.)
  5. Plugin di terze parti
  6. Modularità ereditata dal framework
  7. Molti altri.

Inoltre, la curva di apprendimento è un fattore variabile. Alcuni framework possono essere più facili da imparare rispetto ad altri a seconda delle tue capacità.

Ha sicuramente senso esaminare un framework anche se per nessun altro motivo che ti darà una nuova area di conoscenza. Se hai il tempo di investire nell'apprendimento di un framework, potresti trovare in tempo che è più facile e veloce usarlo per i nuovi progetti, non importa quanto siano semplici.

Inoltre, se potessi votare per il posto di SamBeran, lo farei. Iniziare con un framework comporterà diversi momenti di "oh fantastico! Non ho bisogno di scrivere di nuovo tutta quella targhetta! & Quot ;.

Direi di usarne uno - come hai detto tu, è piuttosto noioso mettere le cose in funzione anche per una semplice app Web Java. Se il framework ti aiuta a portare a termine il lavoro più velocemente e offre i servizi di cui hai bisogno, direi che ha senso.

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