2009-12-25 10 views
101

Mi objetivo es hacer aplicaciones web.¿Qué aprender para hacer aplicaciones web Java en Java EE 6?

Terminé de leer los libros "Headfirst - Java" y "Headfirst - Servlets and JSP".

Como este tema (aplicaciones web) es tan grande y complicado, me gustaría preguntar qué debo aprender a continuación. Me siento sobrecargado cuando leo palabras como Java EE, EJB, JSF, JPA, Glassfish ... pero no me rendiré.

¿Alguien puede decirme cómo debo seguir aprendiendo? ¿Debo tomar un libro como este: Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional o debería simplemente hacer algunos tutoriales en línea?

Gracias!

+0

Duplicado de: http://stackoverflow.com/questions/1958472...,http://stackoverflow.com/questions/1084591...,http://stackoverflow.com/questions/125160 – Rachel

+22

Salvo que todos estos las preguntas están desactualizadas debido a que Java EE 6 está fuera de servicio ... –

+0

@Pascal - excepto que la mayoría de Java EE 6 tendrá paralelismos estrechos con versiones anteriores de Java EE. Entonces solo estarán un poco desactualizados. –

Respuesta

168

Incluso si sé que esto será controvertido, mi consejo sería comenzar con Java EE 6 solamente. Por lo tanto, agarre GlasshFish v3 y obtenga el libro Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional o siga el Java EE 6 tutorial. En mi opinión, el libro (que comencé a leer para que sepa de lo que estoy hablando) brinda más orientación que podría ser preferible si "todo" es nuevo para usted (abarca tanto la plataforma Java EE como sus API y el entorno para construir, implementar sus aplicaciones).

Ahora, como dije, ya puedo escuchar voces diciendo cosas como "Java EE es pesado, use Spring en su lugar, aprenda Struts o Wicket o Stripes para la capa de presentación, aprenda Hibernate para persistencia, o no porque no me pongo Me gusta ORM, uso iBatis o JDBC directo en su lugar (verás, es genial con Spring, Spring es tan cooool), y usa Tomcat (y por qué no Jetty), o JBoss, o simplemente olvida todo esto y ve por Grails y bla bla bla ... ".

Pero no creo que esto realmente te esté ayudando y, sin mentoring u orientación (y no encontrarás un recurso único no obsoleto que cubra todas las combinaciones), esto debe sonar muy confuso para un principiante.

Así, porque creo que Java EE 6 es una gran mejora con respecto a versiones anteriores de Java EE, ya que proporciona realmente agradables API estándar para todas sus necesidades (Servlet 3.0, JSF 2.0, JPA 2.0, EJB 3.1 Lite , Bean Validation 1.0, CDI, etc.), porque estas API son todas más que decentes, porque no hay nada realmente incorrecto en aprenderlas, porque esto ya es una gran tarea, porque tienes que comenzar en algún lugar, me centraría en Java EE 6 solamente y olvide los otros marcos por ahora. Más exactamente, comenzaría con Java EE 6 Web Profile (y luego agregaría cosas si quiere ir más allá).

Al hacer esto, 1) comenzarás y aprenderás cosas nuevas y 2) le darás tiempo a todos los otros marcos y/o herramientas para adaptar y demostrar que todavía hay una necesidad para ellos. Y si lo hay, todavía será tiempo de experimentar con los sobrevivientes y podrás comprender mucho mejor por qué existen.

+3

Gracias. En cuanto al libro, no lo he leído del todo, pero definitivamente lo recomendaría tanto para desarrolladores principiantes como experimentados que quieran obtener una buena visión general de Java EE 6. El libro está bien construido, realmente cubre muchas API (no mucho faltan), tiene ejemplos de código que demuestran todo lo presentado, son realmente didácticos y permiten ir tan profundo como lo desee. Puede haber libros más enfocados en el futuro, pero este es uno bueno. –

+23

+1, pero Spring es tan cooool :-) – ChssPly76

+13

No me malinterpreten, Stripes, Spring, Hibernate, ... son geniales. Pero demasiadas opciones pueden ser confusas cuando descubres algo nuevo y creo que Java EE 6 te permite comenzar sin ellas. –

4

Para Tomcat, lea el manual en el sitio web. Es muy bueno. En particular, los primeros capítulos sobre organización e implementación de aplicaciones web, y los capítulos sobre la API de Servlets y JSP.

Para Spring, el libro de Manning Spring in Action es muy bueno. Del mismo modo para Hibernate (el libro de Manning), pero creo que Hibernate está fuera del alcance de las aplicaciones web. Tu llamada, sin embargo.

Wicket - Manning book also. Pero realmente, solo escriba su código de front-end en Javascript. Será menos doloroso, OMI.

8

Java EE 6 es realmente sorprendente. El único problema es que tiene aproximadamente 2 semanas y solo hay 1 contenedor que ofrece actualmente sus funciones: Glassfish.

No tengo nada en contra de Glassfish, lo uso en todas partes, varias instancias de producción, me encanta el producto y el proyecto.

Dicho esto, los detalles de Java EE 6 no se traducen a Java EE 5. Algunos lo hacen, muchos lo hacen, pero el perfil web, Servlet 3.0, los nuevos tipos de Bean, JPA 2, etc. ahí.

Por lo tanto, al aprender Java EE 6 primero, simplemente se limita a un solo contenedor. Están llegando más, pero aún no están aquí.

Tomcat, JBoss, OpenEJB, Glassfish, Jetty, Resin, Geronimo, etc. todos funcionan bien con la especificación Java EE 5 (al menos aquellas partes de la especificación que admiten, Tomcat no tiene EJB, por ejemplo) .

No puedo pensar en nada en Java EE 5 que no se haya trasladado a Java EE 6. Java EE 6 hizo que algunos aspectos muy antiguos fueran opcionales, y aquellos que simplemente no aprendería hoy de todos modos. Java EE 6 hizo algunas cosas Java EE 5 incluso más fáciles (empaquetado notablemente, EJB Lite por ejemplo).

Aprenda Java EE 5 ahora para que pueda aplicar lo que aprende en una variedad de entornos, en lugar de aprender Java EE 6 ahora y descubrir que es posible que no pueda usar gran parte de lo que aprende.

Ningún libro en particular le enseñará lo que necesita saber. Los servlets, por ejemplo, son una buena base, pero para cualquier cosa mayor que un par de páginas o punto final, querrás usar uno de los muchos frameworks de terceros, o JSF, y ningún libro cubre el núcleo y luego un framework en la parte superior de eso.

El tutorial de Java EE 5 es bueno para sentar las bases, mi mayor queja es que no muestran el código fuente. Más bien, esperan que simplemente lo descargue y lo ejecute. No se discute en el tutorial. He encontrado que los libros de Head First son bastante buenos.

Para la programación web, los servlets en bruto son lo suficientemente importantes como para comprender el ciclo de solicitud/respuesta, pero no es necesario un conocimiento profundo para dar un salto a un marco de terceros.

Soy un gran admirador de Stripes for a Action framework (frente a un framework de componentes), y el único libro de Stripes disponible es excelente (lo que hace que elegir sea una elección fácil).

No puedo sugerir un libro de marco de componentes, y en realidad no recomendaría uno inmediatamente. Los marcos de componentes realmente sepultan las estructuras de solicitud/respuesta del núcleo HTTP. Los entierran por una razón, y ganan valor enterrándolos, pero creo que para ser eficaz debes tener una sólida comprensión de estos conceptos desde el principio. Es por eso que no sugiero aprender primero un marco de Componente.

El marco JAX-RS REST, incluido en Java EE 6, pero fácilmente instalable en Java EE 5 o en cualquier contenedor de servlets, es excelente. Podría decirse que es lo que Servlet 3.0 debería haber sido. Pero no conozco ningún libro para eso.

+2

La pregunta es qué el estado de los servidores de aplicaciones es cuando está listo para la producción. Si un proyecto dado demora 6 meses, es probable que Oracle y JBoss tengan servidores compatibles con JEE6, y es muy probable que Resin tenga un servidor de perfil web JEE6. –

+0

Bueno, JBoss vence en diciembre. Oracle se encuentra bajo. Resin se ha callado con respecto a la implementación de su perfil web. Geronimo apuesta por el perfil web con 3.0 (beta). Glassfish está en 3.0.1 que es realmente bueno. –

28

Mi consejo es dejar de leer libros y comenzar a implementar cosas. En mi experiencia, el aprendizaje de libros es un pobre sustituto del conocimiento que obtienes al hacer las cosas.


1 - Contexto: este es un consejo a alguien que acaba de terminar de leer dos libros sobre el tema.

+28

Pero podría ahorrarte días de búsqueda. También podría darle suficiente conocimiento para responder preguntas en lugar de preguntarles y, finalmente, tener una gran reputación aquí, ¿no estás de acuerdo? –

+6

No, no estoy de acuerdo. El OP ya ha leído dos libros Java/Java EE. Es hora de que él haga algo de programación. FWIW, no obtuve la mayor parte de mi conocimiento leyendo libros. Más bien lo obtuve PRINCIPALMENTE implementando cosas, y refiriéndome a la documentación cuando lo necesitaba. No aprendes a andar en bicicleta leyendo libros ... y tampoco aprendes habilidades de programación de esa manera. –

+3

Es importante equilibrar "lectura" y "práctica". – smwikipedia

2

No voy a comentar sobre otras tecnologías, pero si quiere aprender Hibernate, hágase "Hibernate Made Easy" por Cameron McKenzie (www.hiberbook.com). Vale cada centavo. Puedes terminar de leer ese libro en 2 días (literalmente). es como una novela y al final te encuentras lidiando con Hibernate como un Semi-Pro.

1

Si solo desea crear aplicaciones web en Java, consulte Play Framework. Es similar a "Ruby on Rails"

2

Jpassion proporciona buenos videos y material para aprender Java EE 6 y otras cosas.

También debe ver ejemplos de aplicaciones:

  1. Petstore. Requiere Maven, se recomienda Glassfish. Escrito por Antonio Goncalves, quien escribió el mencionado book.
  2. JBoss Ticketmonster. Requiere Maven & Jboss Forge. Implementar en Jboss.
Cuestiones relacionadas