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?