Quer ter acesso a todos os cursos desse guia?
Guia

Programador Java


Aprender Java não é uma tarefa simples, mas seguindo a ordem proposta nesse Guia, você evitará muitas confusões e perdas de tempo no seu aprendizado. Vem aprender java de verdade, vem!

Começando no Java

Olá, fico feliz que você tenha optado pelo Java. Provavelmente você está se perguntando por onde começar. Bom, esclarecer essa e outras dúvidas é o papel deste Guia de Referência. E como ponto de partida te indicamos o DevCast a seguir, no qual apresentamos a linha de aprendizado do programador Java. Vamos lá?

Curioso para ver código Java? O curso abaixo te oferece esse primeiro contato com a linguagem, além de apresentar como compilar um primeiro programa.

Você já sabe o que é Java e agora já pode começar a desenvolver aplicações com essa linguagem. Para isso, o primeiro passo é preparar o ambiente, instalando as ferramentas necessárias.

E aí? Com qual IDE eu começo?

Durante muito tempo o Eclipse foi considerado a IDE padrão para desenvolvimento em Java e, por essa razão, muitos cursos por aqui utilizaram essa ferramenta. Contudo, a tecnologia está em constante evolução e após o surgimento de outros ambientes de desenvolvimento, como o Intellij IDEA, a onipresença do Eclipse tem diminuído. Diante disso nós também decidimos que era hora de uma atualização e optamos por começar o ano usando o Intellij IDEA como ferramenta padrão para os novos cursos.

A gente sabe que mudar requer adaptação, mas lembre-se que a plataforma Java é maior do que qualquer IDE utilizado para facilitar a sua codificação. Então não se preocupe, pois o que todos eles procuram fazer é tornar as coisas mais simples, mesmo que em alguns utilizemos File > Delete para remover um arquivo e em outros File > Refactoring > Delete ;)

O próximo passo é conhecer uma IDE - ambiente de desenvolvimento - para trabalhar com projetos Java. Preparamos o material a seguir que mostra como trabalhar com a IDE IntelliJ, a mais popular entre a comunidade Java nesse momento:

Preparar o ambiente de programação é apenas o primeiro passo para se tornar um programador Java. Além de uma IDE você também precisará ter familiaridade com a linguagem para criar programas confiáveis, eficientes e fáceis de manter. Portanto, aprender a linguagem Java é o seu objetivo atual. Acompanhá-lo nesta etapa é o objetivo dos artigos abaixo.

Nesse ponto você já deve ter ouvido falar que Java é uma linguagem orientada e objetos. Isso significa que ela foi concebida sobre esse paradigma. Sendo assim, é fundamental para o programador Java familiarizar-se com essa forma de pensar e modelar aplicações. Apresentá-la para você é papel destes conteúdos:

Quer saber aonde ir agora? Assista ao DevCast a seguir e descubra onde temas como programação web, acesso a bancos de dados, entre outros, se encaixam na preparação do programador Java.

Confira também o Guia de Consulta Linguagem Java, que contém outros conteúdos sobre a linguagem.

Acesso a Bancos de dados

Provavelmente até aqui você criou aplicações que, quando encerradas, perdiam todos os dados nela inseridos. Mas, por que isso acontece? Por um motivo simples: assim como precisamos programar condicionais, estruturas de repetição, entre outras coisas para definir o funcionamento do nosso sistema, precisamos programar como ele deve armazenar, isto é, persistir os dados (Figura 1).

Persistência de dados em Java
Figura 1. Persistência de dados em Java

Em Java, o primeiro passo para aprender como persistir dados é conhecer a API JDBC. A partir dela, você conseguirá acessar, enviar e recuperar dados de um recurso fundamental a toda aplicação, o banco de dados. É nele que os dados ficam, de fato, armazenados. Saiba mais no curso:

É fundamental para escrever código JDBC que você tenha um Driver JDBC em seu ambiente de desenvolvimento. Aprenda a instalar o MySQL Connector/J, o Driver JDBC do MySQL, no Intellij IDEA em 5 minutos:

Para saber como utilizar a API JDBC, acesse o curso abaixo:

Apesar do JDBC ser fundamental para o acesso a dados, logo descobriremos que ele carece de certas funcionalidades, presentes em frameworks como o Hibernate. E já que estamos começando a falar sobre frameworks, que tal fazermos uma pausa para falar sobre o Maven? Essa ferramenta facilita a preparação do ambiente de desenvolvimento ao realizar o download e instalação das bibliotecas das quais o projeto depende, além de outras tarefas. Aprenda sobre ele nos links:

Hibernate é o framework para persistência de dados mais utilizado em projetos Java. Sendo uma das primeiras opções a implementar o conceito de mapeamento objeto-relacional (ORM), em pouco tempo se tornou referência entre os desenvolvedores, tendo sido tomado, inclusive, como referência para criação da especificação JPA:

Aprenda sobre este framework nos cursos abaixo:

Percorrer coleções é uma tarefa comum ao lidar com bancos de dados. O Java 8 trouxe como novidade o suporte as expressões lambda, que simplificam a escrita desse código fundamental. Saiba como utilizá-las no curso:

Continue aprendendo sobre o Hibernate nos links:

Spring Data JPA é também um framework muito utilizado para acesso a bancos de dados relacionais. Aprenda mais sobre ele neste curso:

Como conteúdo extra, preparamos um curso completo sobre JdbcTemplate, solução do Spring Framework que simplifica o desenvolvimento de aplicações que acessam o banco de dados utilizando JDBC.

Confira também o Guia de Referência Hibernate e veja outros conteúdos sobre a Java e acesso a dados.

Para conhecer os principais conteúdos que você precisa estudar, como programador, para trabalhar com bancos de dados, acesse:

Validação de dados

Validar é uma prática extremamente importante em aplicações. Esse procedimento impede que dados incorretos sejam salvos no banco de dados e, em muitos casos, contribui para a segurança do sistema. O objetivo principal da biblioteca Bean Validation é auxiliar os programadores nesta tarefa, permitindo a definição das regras de validação por meio de anotações, na camada de modelo da aplicação.

Saiba como validar dados com Bean Validation neste curso:

Programação Java Web

A programação Web é uma das vertentes do Java que mais evolui. Nas primeiras versões, tudo era de responsabilidade das servlets – da etapa de atender às requisições HTTP, até gerar o HTML a ser enviado para o browser do usuário.

Como você pode notar, muitas eram as responsabilidades atribuídas a um único elemento. Esse problema, no entanto, logo começou a ser minado. Se não era viável lidar com códigos assim em projetos de pequeno/médio porte, imagine em projetos maiores.

A partir disso, muitos padrões, bibliotecas, frameworks e APIs começaram a ser criados, e todos, sem exceção, tendo como um dos seus objetivos simplificar e melhor distribuir as responsabilidades entre os elementos da aplicação.

Um dos padrões mais conhecidos e que abrange com exatidão esse objetivo é o padrão arquitetural MVC. Para aprender sobre ele, acesse:

Não é exagero afirmar que esse padrão rapidamente conquistou os programadores de todas as linguagens. E não apenas isso. Até hoje continua sendo um dos padrões mais implementados na construção de qualquer framework voltado para a programação Web. Podemos dizer até um pouco mais: pelo menos no curto/médio prazo, esse cenário não deve mudar.

Sendo assim, aconselhamos que você estude esse padrão e aprenda sobre as principais tecnologias que o adotam. No Java, as primeira tecnologias com que você terá contato no desenvolvimento web são Servlets, JSP e posteriormente o JSF, os quais você pode conhecer nos cursos abaixo:

Com o JSF, temos à disposição uma API Java que implementa o padrão MVC e simplifica a programação ao oferecer um amplo de leque de componentes visuais e não visuais para agilizar a criação de sistemas Web.

Interessado em saborear e, até mesmo, começar a se aprofundar no JSF, acesse as publicações que indicamos abaixo:

Ajax é uma tecnologia que nos permite trocar informações com o servidor através de requisições feitas em segundo plano, sem que para isso necessitemos recarregar a página. Uma vez que grandes aplicações como Gmail, Facebook, entre outras, têm utilizado essa tecnologia em benefício da usabilidade, tornando melhor a experiência do usuário, é muito provável que você tenha que desenvolver suas páginas JSF utilizando Ajax. O curso abaixo apresenta uma abordagem inicial sobre o assunto:

Aqui na DevMedia temos diversos conteúdos sobre o framework JSF. Para se aprofundar ao máximo nesse tema, recomendamos o Guia:

Outro ótimo exemplo de framework que implementa o padrão MVC é o Spring MVC. Com uma proposta um pouco diferenciada em relação ao seu “concorrente” JSF, o Spring MVC, aos poucos, vem conquistando cada vez mais adeptos.

Uma das bases dessa tecnologia é que ela é construída sobre o Spring Framework, aproveitando dele suas principais características, como é o caso da Inversão de Controle e da Injeção de Dependência.

Como para começar a utilizar o Spring MVC é interessante ao menos ter uma ideia do que é o Spring Framework, começamos sugerindo o curso:

Spring MVC

Logo após, por que não começar a programar com o Spring MVC? Para isso, acesse os cursos:

Spring Boot

O Spring Boot facilita a criação de aplicações de diferentes tipos, simplificando o processo de configuração e execução. No curso a seguir você aprenderá a utilizar essa tecnologia para construir uma aplicação web completa.

O Spring e o Spring MVC são frameworks que nos fornecem os mais variados recursos para atender à maior parte das nossas necessidades na programação de aplicações em Java. Com o intuito de estruturar todo o conteúdo que já publicamos sobre eles, preparamos o Guia:

Atualmente, essas são as principais tecnologias Java para o mundo Web. No entanto, como tudo em nossa área, a qualquer momento esse cenário pode mudar, novas tecnologias podem surgir. A qualquer momento, portanto, poderemos lançar novos conteúdos. Sendo assim, nossa última recomendação é: esteja sempre atento, pois a qualquer momento publicaremos novos conteúdos por aqui. =D

Web Services

Web service é como chamamos uma solução que atende requisições de diferentes aplicações. Independente da linguagem ou plataforma utilizada por cada uma delas, o papel do Web service será intermediar a comunicação, tornando-as compatíveis. Neste cenário, até pouco tempo, muito se falava em SOAP para a construção de serviços Web. Recentemente, no entanto, devido a vários fatores, uma nova opção foi criada e rapidamente se tornou uma preferência no mercado: Web services RESTful.

Você sabe o que é isso? Sabe como programar seu primeiro serviço web utilizando o padrão REST? Não! Então, confira os cursos abaixo:

Programando web services RESTful

Agora que você sabe o que é RESTful e como criar web services, que têm como base o protocolo HTTP, está na hora de dar mais alguns passos. Para te acompanhar neste momento, preparamos os cursos a seguir que demonstram como criar APIs RESTful utilizando o framework Jersey, implementação de referência da especificação JAX-RS, tendo o apoio do Hibernate para programação da camada de acesso a dados.

Spring e web services

Apesar de ser uma excelente opção, o Jersey não é a nossa única escolha. O Spring Framework também fornece recursos para a criação de serviços RESTful. Nesta seção você encontrará o curso que demonstra como utilizá-lo para a criação de Web APIs:

Segurança

Na programação para a web a segurança também é fundamental na construção de web services RESTful. Diferentemente dos sistemas web tradicionais, no entanto, as Web APIs precisam ser stateless, que determina que o servidor não pode guardar estado entre as requisições.

Com base nisso, como programar a segurança, a autenticação e a autorização em web services? Esses são alguns dos assuntos que serão esclarecidos nos cursos deste tópico:

JWT é um token criado no formato JSON para permitir a troca de informações de maneira segura, sendo muito utilizado para integrar aplicações e prover mecanismos de autenticação, principalmente em APIs REST. Nos conteúdos abaixo introduzimos essa tecnologia:

Caso seu interesse seja aprender mais sobre web services RESTful e a construção de Web APIs, preparamos um Guia especialmente sobre esse assunto. Confira:

Web services SOAP

Mesmo com a redução no número de projetos que o adotam, o uso de web services SOAP ainda continuará com uma demanda no mercado de desenvolvimento. Lembre-se que ao optar pelo REST, ficamos "presos" aos protocolos HTTP/HTTPS, mas, e se precisarmos trocar mensagens utilizando o protocolo SMTP, por exemplo? E se precisarmos que nosso serviço seja stateful?

Para aprender como programar web services SOAP, assista ao curso:

Padrões e boas práticas

Agora que você já conhece a linguagem, bem como algumas das APIs que compõem a plataforma Java, é uma boa ideia se aprofundar em técnicas que lhe ajudarão a escrever códigos consistentes e com maior qualidade.

Diferentes equipes de programadores podem vivenciar os mesmo problemas durante a etapa de codificação de softwares distintos. Uma vez que tais dificuldades são comuns elas podem ser solucionadas da mesma forma, embora estejam em contextos diferentes. Os Padrões de Projeto são o fruto do esforço em catalogar estas soluções, que são apresentadas em detalhes no seguinte curso:

Você já olhou para um código que parecia errado, mas não soube dizer de imediato por quê? Pode ser que você tenha se deparado com um Code Smell e, acredite, se você não se livrar dele, esse incômodo ficará cada vez pior. Aprenda no DevCast a seguir o que é um Code Smell e o que fazer em relação a ele.

A plataforma Java conta com algumas APIs que facilitam a utilização de padrões fundamentais, fornecendo a infraestrutura necessária para que sejam aplicados em um projeto. Um exemplo disso é a CDI, Contexts and Dependency Injection, que fornece serviços que, quando utilizados em conjunto, permitem a criação de código menos acoplado e mais coeso através da Inversão de Controle:

Existem muitos outros padrões de projeto e, sendo o Java uma linguagem orientada a objetos, é muito comum que tenhamos contato com eles, seja em nosso próprio código ou quando usamos algum framework. Por essa razão recomendamos que você continue se inteirando desse assunto com o Guia abaixo:

Na prática

Escrever aplicações de qualidade requer tempo e muita dedicação. Felizmente, sempre podemos aprender com a experiência de outros programadores, adicionando mais facilmente opções a nossa caixa de ferramentas. Assistindo a este curso você ficará por dentro da programação genérica, classificação e pesquisa, tratamento de exceções, multithreading e muito mais. Confira!

Até o momento você aprendeu as principais tecnologias que compõem a Java Enterprise Edition, a plataforma Java voltada para o desenvolvimento de aplicações em larga escala. Que tal agora colocar em prática esse aprendizado? Saiba como nos cursos:

Independentemente dos tipos de programa que você vai desenvolver, existem alguns passos a serem dados antes da codificação. A reunião de levantamento de requisitos trata desse momento, no qual planejamos como será aplicação e conhecemos, assim, as particularidades de suas funções. Assista no curso abaixo como essa reunião é conduzida.

Relatórios

Gerar relatórios é um requisito comum à grande maioria das aplicações. Através destes cursos você terá uma formação completa sobre como construir relatórios dos mais simples aos mais avançados utilizando as ferramentas iReport e JasperReports.

Mais sobre Java

Além dos cursos e exemplos sugeridos nesse guia, a DevMedia publica com frequência novos conteúdos sobre Java, os quais você pode conferir nos Guias de Consulta abaixo:

Além disso, você pode conferir todo o conteúdo de Java clicando aqui.

Suporte ao aluno - Deixe a sua dúvida.