domingo, 12 de janeiro de 2014

Produtividade com o Eclipse

Utiliza o Eclipse a pouco tempo? Hoje pretendo abordar um assunto bastante útil para o pessoal que utiliza o Eclipse  a pouco tempo. São os atalhos e facilitados que o mesmo disponibiliza e nos ajudam muito no dia a dia.

Iremos ver esses recursos implementando um simples cadastro de clientes de uma loja qualquer. Para que o post não fique muito grande não iremos persistir os nossos clientes em um banco de dados. A ideia nesse exemplo é simular o cadastramento de um cliente. Mãos a obra?

Vamos começar criando um projeto Java. Com o Eclipse aberto pressione Ctrl+N, selecione Java Project e clique em Next. Na próxima janela informe em Project name "Loja" e em Location o caminho onde você deseja salvar o seu projeto. Clique em Finish.

Com o projeto criado, agora vamos criar uma simples classe de domínio para representar os clientes da nossa loja. Pressione novamente Ctrl+N, porém agora selecione Class e clique em Next. Na próxima janela vamos informar no campo Name "Cliente" que é o nome da nossa classe e no campo Package vamos informar o pacote "com.blog.loja.dominio". Clique em Finish. Repare que criamos a classe e o pacote em uma única janela.

Nossa classe Cliente irá armazenar o nome do cliente, o e-mail e a data de nascimento do mesmo. Vamos criar os 3 atributos em nossa classe:
package com.blog.loja.dominio; public class Cliente { private String nome; private String email; private Date nascimento; }
Repare que o atributo nascimento ficou sublinhado no Eclipse. Isso ocorre devido a classe Date não pertencer ao pacote dessa classe, ou seja, "com.blog.loja.dominio", nem da classe "java.lang" que tem o import incluído automaticamente como é o caso da classe String. Dessa forma temos que adicionar o import indicando de que pacote essa classe pertence (no nosso caso utilizaremos o Date da classe java.util). Com o Eclipse temos 4 formas de fazer isso:

1. Posicionar o cursor do mouse sobre a classe Date e selecionar a opção Import 'Date' (java.util);
2. Clicar na lâmpada exibida no inicio da linha e selecionar a opção Import 'Date' (java.util);
3. Com o cursor posicionado sobre a linha do erro pressionar o Ctrl+1 e selecionar a opção Import 'Date' (java.util);
4. Em qualquer lugar da classe pressionar Ctrl+Shift+O, e selecionar java.util.Date.

Recomendo a última opção devido a ela resolver todos os problemas de import da nossa classe.

Repare também que criamos nossos atributos com o modificador de acesso private, isso se faz necessário para mantermos o encapsulamento de nossa classe. Porém como iremos manipular essas informações de fora da nossa classe? Através de getters e setters. Para isso basta pressionar Ctrl+3, digitar ggas (abreviatura de generate getters and setters) e pressionar Enter. Na janela que será exibida selecione os 3 atributos e clique em OK, pronto, todos os getter e setters foram criados para nós!
Porém iremos perceber que nossos métodos estarão todos colados, meio amontoados. Temos um atalho para isso também, pressione Ctrl+Shift+F para formatar o texto da classe e não esqueça de salvar todo o seu projeto utilizando o Ctrl+Shift+S.

Pronto, nossa classe de domínio de clientes está pronta para o uso:
package com.blog.loja.dominio; import java.util.Date; public class Cliente { private String nome; private String email; private Date nascimento; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getNascimento() { return nascimento; } public void setNascimento(Date nascimento) { this.nascimento = nascimento; } }
Agora vamos criar a nossa classe de testes para iniciarmos a manipulação dos nossos clientes. Novamente utilizaremos o Ctrl+N para criar nossa classe, informando o nome da classe "Teste" e o pacote "com.blog.loja.testes".

Depois de criada a classe, vamos criar o método main que executará os nossos testes. Basta digitar dentro do corpo da classe a palavra main, pressionar Ctrl+Espaço e selecionar a opção main - main method.
Dentro do método main vamos instanciar um cliente para ser manipulado. Digite new Cliente e pressione Ctrl+Espaço para os parênteses do construtor serem preenchidos automaticamente, logo após pressione Ctrl+1 e selecione a opção Assign statement to new local variable para retornar uma instancia do cliente a uma variável local. Agora vamos chamar os setters da classe Cliente e popular as informações dessa instância. Aqui novamente percebemos o auxílio do Eclipse, digite cliente. e verifique que os métodos existentes na classe serão sugeridos:
Popule sua instância fazendo uso do auto-completar do Eclipse, de forma que todas as informações seja preenchidas. Caso tenha dúvidas, disponilizo um exemplo abaixo:
public static void main(String[] args) { Cliente cliente = new Cliente(); cliente.setNome("Marcos Leon"); cliente.setEmail("leonpoa@gmail.com"); cliente.setNascimento(new GregorianCalendar(1985, 6, 21).getTime()); }
Agora para manipular essa instância vamos criar um gerenciador de clientes, que como o nome já diz será responsável por cadastrar novos clientes, enviar e-mails aos clientes, consultar clientes e etc. Complementando o código acima:
public static void main(String[] args) { Cliente cliente = new Cliente(); cliente.setNome("Marcos Leon"); cliente.setEmail("leonpoa@gmail.com"); cliente.setNascimento(new GregorianCalendar(1985, 6, 21).getTime()); GerenciadorDeClientes gerenciador = new GerenciadorDeClientes(); gerenciador.cadastrar(cliente); }
Repare que o sublinhado em vermelho novamente apareceu, agora no GerenciadorDeClientes, posicione o cursor do mouse sobre essa classe ou sobre a lâmpada para verificar o motivo GerenciadorDeClientes cannot be resolved to a type, ou seja, essa classe ainda não existe. Não tem problema, basta utilizar uma das 3 primeiras formas citadas acima e selecionar a opção Create Class, indicando agora o pacote "com.blog.loja.service", pronto a classe foi criada automaticamente para você.

Só que agora o sublinhado foi para a próxima linha, mais especificamente para o método cadastrar. Por que? Simplesmente por que esse método ainda não existe nessa classe. Novamente vamos clicar sobre o método e selecionando a opção Create method, vamos criá-lo.
public class GerenciadorDeClientes { public void cadastrar(Cliente cliente) { // TODO Auto-generated method stub } }

Perceba que o Eclipse é inteligente a ponto de identificar corretamente o tipo de argumento do método, já que nós estamos passando uma instância de cliente na classe Teste. Para finalizar vamos simular o cadastramento do cliente através de uma mensagem no console para o usuário. Digite syso, pressione Ctrl+Espaço para inserção automática do System.out.println() e digite uma frase qualquer semelhante a frase abaixo:
public void cadastrar(Cliente cliente) { System.out.println("O cliente " + cliente.getNome() + " foi cadastrado com sucesso!"); }
Espero que tenham gostado. Até a próxima!

segunda-feira, 9 de dezembro de 2013

Apostila de Introdução ao SQL


Depois de vários domingos, várias horas e muito café, tenho o prazer de anunciar a disponibilização de minha primeira apostila: Apostila de Introdução ao SQL.


Fico com a sensação de que poderia ter feito mais, porém o fator tempo e minhas outras atribuições acabaram por limitar o escopo da mesma. Quem sabe no futuro não seja lançada uma versão 2.0?

Espero que a sua leitura dessa apostila seja tão divertida como foi a elaboração da mesma. Fico a disposição para sanar qualquer dúvida que você tenha ficado.

Para realizar o download da apostila, basta seguir esse link.

Caso tenha gostado, comente. Até a próxima!

domingo, 8 de dezembro de 2013

Princípios SOLID

Robert C. Martin (Uncle Bob)
SOLID é um acrônimo para as iniciais de 5 princípios aplicados ao desenvolvimento orientado a objetos e design de código pontuados pelo Robert C. Martin em meados de 2000.

Aplicando esses princípios no design de seus projetos podemos citar inúmeros benefícios, como por exemplo mais clareza nos seus códigos, mais tempo do código em produção, quando as alterações se fazem necessárias estas podem ser realizadas com mais facilidade e com muito menos esforço, os testes são mais fáceis de serem executados, um maior reaproveitamento dos recursos, etc.

Os 5 princípios que compõem o SOLID são:

Princípio da Responsabilidade Única (Single Responsability Principle - SRP)
Uma classe deve ter um, e somente um motivo para mudar.

Princípio Aberto-Fechado (Open Closed Principle - OCP)
"Você deve ser capaz de estender o comportamento de uma classe, sem modificá-lo."

Princípio da Substituição de Liskov (Liskov Substitution Principle - LSP)
"As classes derivadas devem ser substituíveis por suas classes base."

Princípio da Segregação da Interface (Interface Segregation Principle - ISP)
"Muitas interfaces específicas são melhores que uma interface geral."

Princípio da Inversão de Dependência (Dependency Inversion Principle - DIP)
"Dependa de uma abstração e não de uma implementação."

E você, aplica os princípios SOLID em seus projetos?

quarta-feira, 18 de setembro de 2013

Configurando o JAVA_HOME

Boa noite!

Não sabe configurar a variável de ambiente do java? A seguir um exemplo de configuração básica do JAVA_HOME no Windows:

1. Acesse as configurações avançadas do sistema através do painel de controle ou da tecla de atalho windows+pause e clique no botão Variáveis de Ambiente...;

Propriedades do sistema

2. Na janela que será exibida, clique no botão Novo... do quadro inferior relacionado as variáveis do sistema e insira uma nova variável de forma semelhante ao exemplo abaixo, tomando o cuidado de alterar o Valor da variável para o caminho onde o java está instalado na sua máquina:

Exemplo de configuração da variável

3. Após inserir a variável, no mesmo quadro inferior das variáveis do sistema selecione a variável chamada Path e clique no botão Editar...;

Editando variável Path

4. Tome o cuidado de não alterar o conteúdo já existente dessa variável, apenas adicione o valor ;%JAVA_HOME%\bin ao final do conteúdo do Valor da variável, conforme exemplo abaixo:

Adicionando conteúdo ao final do conteúdo da variável Path

5. Para realizar um teste basta executar no prompt do DOS o comando java (ou também o javac no caso de você ter instalado o JDK) e verificar se os comandos serão reconhecidos.

Até a próxima!

terça-feira, 17 de setembro de 2013

Configurando o Javadoc no Eclipse

Boa noite!

Com dúvidas sobre como configurar o javadoc no eclipse? Verifique através dos passos abaixo como a configuração é simples:

1. Realize o download do javadoc de acordo com a versão que você está utilizando (exemplo: jdk-7u25-apidocs.zip);

Exemplos de javadocs baixados

2. No Eclipse, acesse o menu Window > Preferences, acesse a opção Java > Installed JREs, selecione a JRE desejada e clique no botão Edit;

Editando a JRE

3. Na janela Edit JRE, selecione a biblioteca rt.jar e clique no botão Javadoc Location;

Acessando o caminho da documentação

4. Na janela Javadoc For, selecione a opção Javadoc in archive, External file, indique em Archive path o caminho até o arquivo baixado no passo 1 (exemplo: \Users\Slipknot\Desenv\javadoc\jdk-7u25-apidocs.zip) e no campo Path within archive selecione a subpasta docs/api;

Configuração do javadoc

Pronto, se tudo ocorreu como esperado basta posicionar o cursor do mouse sobre qualquer classe da API que a documentação será exibida.


Javadoc sendo exibido

Até a próxima!