Java, J2EE e Java Web migliorano con il tempo? Mi sembra ancora problematico dopo mesi [chiuso]

2

Sono un po 'nuovo in Java Web Development. JSF, JSP, Servlet, Hibernate ecc ... Ho davvero una buona conoscenza di OOP e C ++. Ho anni di esperienza nello sviluppo web di PHP e MySQL. Ho anche esperienza con C # e ASP.NET e sono uno studente di ingegneria del software.

Non voglio continuare la mia carriera con PHP, dal momento che sta diventando molto popolare, ci sono molte persone che lo usano e non posso davvero usare pienamente le mie conoscenze ingegneristiche con PHP. È più basilare. Ho bisogno di un ambiente più aziendale, Java EE è esattamente come questo.

Ma ...

In queste ultime settimane stavo ripensando a mantenere i miei progressi con Java EE. Ho questi problemi elencati di seguito , e mi piacerebbe avere la tua opinione su quelli specialmente se sei un esperto di Java EE sviluppato. La domanda più primitiva è, migliorano con l'abituarsi a Java con il tempo, come sviluppatore? Tu, se sei esperto in Java EE, continui a gestire questo tipo di problemi dopo anni?

  • C'è sempre un "conflitto di versione" tra i vasi da risolvere.

  • Viene sempre visualizzato un errore a causa di un vaso mancante o extra.

  • Ci sono così tanti file jar ... Questo è davvero travolgente. Sto usando Hibernate, JSF e CXF in Tomcat e ho 100 o più file jar in WEB-INF / lib. I due problemi sopra elencati sono aumentati con il conteggio dei barattoli.

  • Tomcat o Glassfish non è veramente sufficiente per lo sviluppo. Soprattutto Tomcat è peggio. Ci sono molti problemi Diciamo che Tomcat non aggiorna sempre la directory di wtpwebapps. A volte faccio copia-incolla i vasi manualmente. Eclipse il 80% delle volte riavvia Tomcat al salvataggio dei file .java e non si aggiorna in modalità hot-replace, ma a volte lo fa. (Sì, usando sempre in modalità debug)

  • Ci sono molte implementazioni. Va bene, ma impostarne uno richiede almeno ore o giorni. Come i servizi Web. Quale implementazione? Ho appena ricevuto un errore perché l'ultimo Axis2 non supporta Dynamic Web Module 3.0.

  • L'impostazione dell'ambiente di sviluppo richiede ore. Se ho bisogno di lavorare su un computer diverso, controllo il repository SVN e configuro le librerie in Build Path, server e risolvo nuovi bug di dipendenza che richiedono molto tempo. Non ho ancora idea di come gestire diversi percorsi di librerie su computer diversi (alcuni percorsi non sono relativi come l'impostazione della cartella del progetto Axis2).

  • Il sistema di registrazione di Tomcat o Glassfish mi sembra ancora complicato dopo mesi. Mi sono stancato di controllare la scheda Console di Eclipse se c'è un errore / eccezione. Anche la metà delle eccezioni non descrive chiaramente il problema.

  • Non c'è stabilità come Apache Web Server (o bp php in questo senso) in Tomcat e Glassfish. Puoi facilmente bloccare l'intero Web App Server con un bug minuscolo. (Anche l'app non dovrebbe andare in crash. Solo quella richiesta dovrebbe andare in crash.)

  • Ho usato PHP per anni e nessun bug ha influito sul mio sviluppo o produzione. Ma con solo 5-6 mesi con java ho avuto alcuni bug che mi hanno rallentato. Anche Eclipse ha bug critici nelle sue funzionalità principali. (Ad esempio, Android Emulator non distribuisce il mio file .apk e ho bisogno di uccidere adb.exe ogni volta che avvio l'emulatore.) Questo non è esattamente Java EE ma un buon esempio: c'erano altri bug Java EE che ho incontrato.) p>

  • C'è sempre un problema di supporto per le nuove versioni. (Ad esempio, l'ultimo Eclipse non supporta Hiberbate Tools.)

  • Ci sono molti file di configurazione ovunque.

  • I file di configurazione sono molto diversi. Anche l'utilizzo di un sistema di registrazione come log4j richiede ore per comprenderne la configurazione e l'implementazione nel sistema di progetto.

Questi sono appena spuntati dalla mia mente. Ci sono naturalmente altri problemi. Ogni lingua fa, ma Java mi sembra abbia più di altri.

Quindi, migliorano con il tempo per me come sviluppatore? 2-3 anni dopo, se continuo con Java e J2EE, mi libererò di molte di quelle cose fastidiose perché sono più esperto?

    
posta Seregwethrin 07.05.2012 - 21:24
fonte

2 risposte

6

I don't want to continue my career with PHP, since it is getting very popular, there are many people who use it and I can't really use my engineering knowledge fully with php. It is more basic. I need a more enterprise environment, Java EE is exactly like this.

Mi sento davvero come se avessi risposto alla tua stessa domanda qui. Tu dici che PHP è troppo semplice, e J2EE è molto complicato. Eppure sei anche d'accordo sul fatto che non puoi "usare pienamente le tue conoscenze ingegneristiche con PHP".

Il compromesso per l'utilizzo di strumenti che ti consentono di fare tante altre cose è che ci sarà molto di più da imparare, mantenere e padroneggiare.

La piattaforma J2EE è enorme e in teoria si potrebbe spendere decenni cercando di impararlo. Ci sono così tanti diversi contenitori Web, framework, metodologie e librerie che è impossibile sapere tutto ciò che c'è da sapere su di esso. Qui è dove lo sviluppo di grandi capacità di problem solving può davvero dare risultati.

Detto ciò, questo è qualcosa che diventerà più facile con il tempo man mano che acquisirai più esperienza e conoscenza della piattaforma e contemporaneamente migliorerai le tue capacità di problem solving. Vedrai le somiglianze in un framework / server o in un altro, e migliorerai le tue capacità di problem solving e imparerai tecniche migliori per affrontare i problemi che affronti.

Per quanto riguarda gli aspetti di manutenzione, come la configurazione di Tomcat (o qualunque sia il contenitore più recente del giorno), o l'impostazione del tuo ambiente di sviluppo, sarai più veloce in questo, ma richiederà sempre tempo e risoluzione dei problemi per ottenere le cose lavorare e impostare il modo in cui si desidera.

Il compromesso per essere in grado di sviluppare applicazioni di livello enterprise è che ci sarà più complessità, ed è per questo che si vedono singoli, piccoli sviluppatori che utilizzano PHP e perché in genere non si vede Java / J2EE usato da freelance o individuo gli sviluppatori.

    
risposta data 07.05.2012 - 21:36
fonte
3

In risposta ai tuoi punti:

  1. Non per me. Probabilmente dipende dal tuo progetto, e da come è configurato e da come sono configurati gli strumenti workstation / dev.
  2. A volte, ma in genere è risolto molto facilmente.
  3. 100+ JAR per quella configurazione? È possibile. Attualmente eseguo la maggior parte del mio sviluppo JavaEE in RAD, che gestisce tutti quei 100 di JAR abbastanza facilmente, con uno o due WS Runtime specificati nel percorso di generazione.
  4. Non posso parlare per questo, la maggior parte del mio JavaEE è stato su WebSphere. Che ha i suoi problemi, ma sono tutti gestibili.
  5. Giorni ??
  6. Ore ?? Hmm Non posso dire di aver mai avuto questo problema. Forse gli ambienti di sviluppo sono configurati male?
  7. Ancora una volta, ho molta più esperienza con WebSphere e questo non è un grosso problema.
  8. Ancora una volta, ho molta più esperienza con WebSphere e questo non è un grosso problema.
  9. Molti strumenti di sviluppo complessi hanno bug. Forse quando hai fatto il PHP sei stato fortunato e non hai colpito gli errori del tuo strumento? Ero abituato a fare PHP in DreamWeaver e di solito era pieno di bug (peggio della maggior parte delle versioni di Eclipse o RAD). Forse dovresti cambiare strumenti, in qualcosa come NetBeans o IntelliJ.
  10. Immagino che potresti controllare le note di rilascio prima di trovare la via più difficile, ma si può fare schifo.
  11. Sì, ci sono. Immagino che se ogni componente vuole il proprio file di configurazione e ci sono molti componenti, ci saranno molti file di configurazione.
  12. Forse, ma una volta che lo hai imparato, lo hai imparato e non devi impararlo di nuovo. Suppongo che se ti limiti solo alle funzionalità di base, questo è un fardello, ma quando hai bisogno delle cose avanzate, è bello sapere che è là fuori.

Probabilmente diventerà più facile col passare del tempo. D'altra parte, sembra che con qualunque cosa tu stia lavorando è molto più difficile lavorare con qualsiasi cosa con cui abbia mai lavorato. Quindi forse i progetti e gli strumenti specifici e le loro rispettive configurazioni sono un componente importante del tuo mal di testa. Un ambiente di sviluppo mal configurato può rendere la codifica in un linguaggio qualsiasi puro. L'ho visto anche sul lato .NET, ma era più una funzione di come il progetto era inizialmente impostato che con problemi inerenti alle tecnologie sottostanti.

    
risposta data 07.05.2012 - 21:40
fonte

Leggi altre domande sui tag