Curso de Desenvolvimento Java EE

Olá, tudo bem ?
Sou novo no desenvolvimento Java EE, e estou com uma dúvida muito grande, gostaria de saber que durante o desenvolvimento de um projeto Java web, por onde devemos começar?

Por exemplo, qual é o flux de trabalho até o produto final, estou acompanhando esse curso: http://www.devmedia.com.br/curso/curso-de-java-ee-construa-uma-aplicacao-completa-java-ee/403 … porém não fica muito claro o que o professor está fazendo se é JPA, JSP, JSF etc… se eu souber onde ele está no decorrer do projeto fica mais facil de eu me aprofundar em cada assunto.

Poderiam me ajudar ?

obs: como disse sou bem iniciante…

Java EE é uma salada bem complexa de conceitos, que eventualmente, depois de alguma insistência, fazem sentido. Durante o desenvolvimento, você lida com os vários frameworks ao mesmo tempo, e essa separação mental dos conceitos é automática. Isso vem com a prática e estudo mesmo.

Eu te diria para começar pelo basicão: Servlet e JSP. Entender DE VERDADE como isso funciona. Como funciona uma aplicação WEB, como os dados são transferidos do servlet para a página, como o servidor mapeia uma requisição http para um método num servlet, como ele escolhe o servlet que vai lidar com a requisição, a questão de sessões, um pouco sobre a questão de threads (qual thread invoca o método no servlet?), como o container de aplicação lida com o ciclo de vida dos teus objetos que ele instancia, coisas assim.

Depois, uma leve aprofundada em JDBC. Como funciona a conexão, como reutilizar conexões, a questão de transações, etc.

Se você dominar isso, o resto é barbada. JSF, JPA, Managed Beans, JMS, etc. Tudo isso é apenas uma camada de abstração acima desse básico, que faz todo o sentido depois que você domina o fundamento.

Não adianta querer entender o final sem entender o começo. Eu fiz assim e me arrependo, perdi bastante tempo e tive que estudar tudo de novo.

1 curtida

Cara, muito obrigado, eu estava muito perdido nisso… agora você me deu um caminho!

Ivbarbosa, você recomenda algum livro para Java Web? Que se aprofunde um pouco mais nos conceitos, não precisa ser básico pois já entendo um pouco, gostaria de algo que se aprofundasse mais, para explicar justamente as coisas que você citou de forma mais detalhada.

Enfim, qualquer recomendação é bem vinda.(pode ser em inglês também)

Infelizmente não. Já li bastante coisa, mas não tem nenhum que vem instantaneamente à minha cabeça quando penso no assunto, algo que tenha tudo concentrado num lugar só. Na verdade, JSP e Servlet são conceitos bem simples. Não tem muito o que aprofundar neles, especificamente. Tem um livro da série “Use a Cabeça!” que é sobre esse tema e acho que eles abordam o suficiente.

A informação está espalhada em diversas fontes. Só a leitura e prática exaustiva vai te fazer dominar o conteúdo.

Acho que para entender isso direito, são necessários uma série de outros conceitos bem claros na mente. Foi estudando outras coisas, que no momento pareciam não ter nada a ver, que essas ideias clicaram na minha cabeça. Por exemplo:

  • Template Processor: Depois que eu entendi o que é um processador de modelos, ou template processor, ou template engine, que conceitos como JSP, JSF, páginas PHP, Jade, etc. fizeram sentido. Detalhes: https://en.wikipedia.org/wiki/Template_processor;

  • TCP/IP: Foi estudando esses protocolos que eu consegui entender como funciona a comunicação entre cliente e servidor, como funciona um servidor HTTP, como funciona uma conexão com um banco de dados, etc.;

  • Multi-threading, computação paralela e/ou concorrente: Estudar o modelo de memória do Java, por exemplo, me fez entender como um Servlet funciona, principalmente a questão de compartilhamento de dados entre threads de requisições (sessão, por exemplo). Também foi muito bom para entender o conceito ACID de transações;

Falando sobre Java EE num geral, o tutorial oficial da Oracle sobre Java EE 7 https://docs.oracle.com/javaee/7/tutorial/ foi o mais iluminador que eu encontrei até hoje. Por mais simples e superficial que seja, ele explica muito bem o funcionamento de tudo dentro da plataforma. Dá uma olhada nessa parte aqui sobre o básico de WEB, especificiamente: https://docs.oracle.com/javaee/7/tutorial/webapp.htm#BNADR. Esse documento é bem extenso, mas é extremamente informativo.

1 curtida

Muito obrigado Ivbarbosa. Já imaginava algo assim também… haha