Expressões regulares em Java – Parte 1

  Olá pessoal,
    Nest post irei demonstrar rapidamente a utilização de Expressões Regulares em Java, supondo é lógico, que o leitor já sabe o que é uma expressão regular e conhece o funcionamento das mesmas.
   Indo direto ao ponto, em Java existem duas classes principais com essa finalidade, são elas: “java.util.regex.Pattern” e “java.util.regex.Matcher”. A primeira, é a representação de uma expressão regular compilada em Java, já a segunda classe, é uma “engine” que permite comparar as suas expressões regulares com um conjunto de caracteres.

   Para entender como trabalhar com essas classes, nada melhor do que um exemplo não é mesmo ? então vamos lá. Primeiramente vamos supor a seguinte situação, digamos que em uma determinada frase, “Eu fui a escola”, eu deseje localizar a palavra “fui”, isso ficaria como no exemplo abaixo.

Exemplo 1
       Agora vamos entender o Exemplo 1 !  A linha 10 cria uma expressão de comparação(Ai pode ser uma regex propriamente dita ou uma string qualquer) utilizando o método estático “compile” da classe Pattern, já na linha 12 o método matcher é invocado passando a string alvo da comparação, para isso, você irá utilizar o objeto pattern que contém a expressão regular compilada(No nosso caso o objeto “p”).
     Feito tudo isso, basta percorrer a cadeia de caracteres(“Eu fui a escola”) utilizando o método “find()” da classe Matcher, este método irá varrer esse conjunto de caracteres e comparar com a expressão compilada.
     Uma vez casando os caracteres,  ele irá separa-los em grupos, a linha 15 apenas exibe os grupos encontrados.
      
      O resultado do exemplo 1 no console é:   “fui”.
       Uma outra coisa interessante que precisa ser mencionada, é como a classe Matcher localiza os caracteres sendo procurados, para isso ela utiliza o intervalo aberto a esquerda e fechado a direita, ou seja, os indíces começam em Zero e terminam em  lenght() – 1, como mostrado na figura abaixo:
          
        Com os métodos start() e end() da classe Matcher, você consegue obter os indíces inicial e final dos grupos encontrados, como no exemplo abaixo.

Exemplo 2
          Saída no console:
                                          Start : 3

                                          Grupo : fui
                                          End   : 6

     

     Metacharacters

       São caracteres especiais utilizados para que facillitar e tornar mais dinamica a nossa busca, os metacaracteres suportados pela API são ([{\^-$|]})?*+.   

    Character Classes

     Um recurso disponivel e que torna a utilização de expressões regulares bastante interessante, são as “Classes de Caracteres”, logo abaixo, uma lista com as principais.

     Com o uso das classes de caracteres, você reduz a sua busca por caracteres em um pequeno trecho de
código, como mostrado nos exemplo  logo abaixo:
  
    Exemplo 3

    Dada a expressão regular:
 
    [cpl]ata

    Ela irá casar com as seguintes palavras:

    lata 
    cata

    pata
         
    Já a expressão regular

    [^d]ove

    Irá casar com

    love , mas não com dove

    Que tal a expressão  
   
     [a-zA-Z]ta

    Que casa com
 

     ata ou Ata
     bata ou Bata

     cata ou Cata

    Podemos utilizar ainda o conceito de união de conjuntos

 
     [b-d[m-p]]adaria
   

     Que casa com
     
      badaria

      padaria
      madaria
      nadaria

  
    No próximo post, coloco um pouquinho de Quantificadores e Consultas Avançadas com Regex em Java, inté.

    Mais informações

Enterprise Java Beans


Conceito
    Já faz tempo que a plataforma Java prega alguns conceitos importantíssimos no desenvolvimento de componentes de software, são eles: baixo acoplamento, escalabilidade, disponibilidade, integridade, iteroperabilidade, além de outros. 

A especificação EJB( Enterprise JavaBeans ) é de longe a especificação mais importante da plataforma JEE, promovendo toda a infraestrutura necessária para o desenvolvimento de componentes distribuídos, muiti-tiers, escaláveis e orientados a objeto.

Tipos
    Essa especificação possui 3 (três) tipos fundamentais que são: Entity beans, Session Beans e Message Driven Beans:
    Session Beans
    Executa uma tarefa para o cliente. Pode manter o estado durante uma sessão com o cliente (Subtipo “Stateful”) ou não (Subtipo “Stateless”).
     Message Driven Beans
    Processa mensagens de modo assíncrono entre os ejb’s e cuja API de mensagens é Java Message      Service (JMS).
     Entity Beans
     Representa um objeto que vai persistir numa base de dados ou outra unidade de armazenamento.
Interfaces de Acesso
     Para acessar os EJB é necessário definir as suas interfaces de acesso que são: Interface Local, Interface Remota ou Ambas. A Interface Local define o acesso ao bean somente no computador onde está sendo executado o servidor de aplicação. A Interface Remota define o acesso ao bean somente a computadores externos. E ambas define acesso ao bean tanto do computador com o servidor de aplicação ou computadores externos.

A evolução dos EJB

    Nas primeiras versões do JEE, os componentes EJBs eram tidos pelos programadores como componentes dificeis de serem programados,  não era por menos, ainda na sua versão 2.1, o uso extensivo de XML, associado a obrigatoriedade de se implementar várias interfaces, fez com que se escolhesse essa tecnologia apenas em casos mais críticos.
    Com relação a evolução dessa tecnologia, podemos dizer que ela teve sua principal transformação na versão 3.0, com as principais melhorias:
·    Uso Extensivo de anotações, reduzindo o número de classes e interfaces em que o programador era obrigado a implementar;
·    Uso opcional do deployment descritor;
·    Filosofia de “configuração por excessão”, assumindo configurações predefinidas;
·    A “Business Interface” necessária aos session beans,  não necessita mais ser de um dos tipos: EJBObject, EJBLocalObject ou java.rmi.Remote, podendo ser apenas uma simples Interface Java;
·    Simplificação da persistencia de entidades através da Java Persistence API( JPA );
    Atualmente a tecnologia EJB encontra-se na versão 3.1, sob a especificação JSR 318, lançada oficialmente no dia 10 de dezembro de 2009, que também trousse inúmeras facilidades ao desenvolvimento desses componentes, como por exemplo:
·    Interfaces locais opcionais;
·   O empacotamento e deployment de EJBs podem ser feitos diretamentes em arquivos WAR sem a necessidade de criação de um EJB-JAR;
·   A possibilidade de usar EJBs de dentro de aplicações Java SE(Embeddable API);
·   Possibilidade de chamar de forma assincrona métodos de um “Session Beans”;
·   Criação automática de “EJB Timers”;
·   As expressões utilizadas para configurar EJB Timers agora são baseadas na classe Calendar;
·   Uma sintaxe global e portável para se fazer lookup de componentes EJB;

Um Exemplo do uso de Enterprise JavaBeans 3.1 utilizando Netbeans



Livros recomendados



Referencias
– Site Oficial
– Site Oficial JCP
-Wikipedia EJB

Data: 14 de Setembro de 2010
Autor: Natanael Fonseca

Bem vindo ao JavaFX

O que é:

     É um plataforma de software multimídia desenvolvida pela Sun Microsystems,  baseada em Java e que permite a criaçao de aplicativos que utilizam o conceito de RIA( Rich Internet Applications ), segundo o
site oficial, ela permite a criação e entrega de conteúdo rico a todas as plataformas suportadas, isso inclui diferentes Web Browsers, Televisores e Celulares.
     Outra vantagem mencionada pelo site é que o desenvolvedor que escreve uma aplicação em JavaFX, não precisa reescrever seu código de frontend quando mudar de plataforma( Lembram do Write Once Run Anywhere ? ).
     Além do que foi mencionado, a plataforma JavaFX ainda possui um conjunto de ferramentas que permitem que desenvolvedores e designers trabalhem de forma colaborativa na criação de conteudos ricos, como a utilização de CSS para a formatação de telas.

Visão geral da plataforma:

O que eu preciso para começar com JavaFX ?
     Dependendo do perfil e atividades que serão realizadas, deverá ser escolhido o  pacote que mais se encaixa, logo abaixo, uma figura mostrando essas ferramentas:

Para maiores informações:

http://javafx.com/

http://download.oracle.com/javafx/

http://pt.wikipedia.org/wiki/JavaFX

Abrcs.

Programa de Certificações Oracle

Com a compra da Sun pela Oracle, era natural que a gigante de banco de dados desse uma mexida em alguns dos produtos da criadora do Java, inclusive no seu programa de certificação. Oficialmente no dia 1 de setembro de 2010 a Oracle oficializou a restruturação das certificações Java, Oracle Solaris, MySQL, OpenOffice e Oracle Solaris Cluster. Falando apenas de café, segue logo abaixo, uma tabela com a nova terminologia adotada pela Oracle.

Former Sun Certification Title New Oracle Certification Title
JAVA TECHNOLOGY
Sun Certified Java Associate Oracle Certified Associate, Java SE 5/SE 6
Sun Certified Java Programmer (SCJP) SE 5 Oracle Certified Professional, Java SE 5 Programmer
Sun Certified Java Programmer (SCJP) SE 6 Oracle Certified Professional, Java SE 6 Programmer
Sun Certified Java Developer (SCJD) Oracle Certified Master, Java SE6 Developer
Sun Certified Web Component Developer (SCWCD) EE5 Oracle Certified Professional, Java EE 5 Web Component Developer
Sun Certified Business Component Developer (SCBCD) EE5 Oracle Certified Professional, Java EE 5 Business Component Developer
Sun Certified Developer for Java Web Services 5 (SCDJWS) Oracle Certified Professional, Java EE 5 Web Services Developer
Sun Certified Enterprise Architect (SCEA) EE5 Oracle Certified Master, Java EE 5 Enterprise Architect
Sun Certified Mobile Application Developer (SCMAD) Oracle Certified Professional, Java ME 1 Mobile Application Developer
Sun Certified JSP and Servlet Developer for the Java EE6 Platform Oracle Certified Professional, Java Platform, Enterprise Edition 6 JavaServer Pages and Servlet Developer
Sun Certified EJB Developer for the Java EE6 Platform Oracle Certified Professional, Java Platform, Enterprise Edition 6 Enterprise JavaBeans Developer
Sun Certified JPA Developer for the Java EE6 Platform Oracle Certified Professional, Java Platform, Enterprise Edition 6 Java Persistence API Developer
Sun Certified Developer for the Java Web Services for the Java EE6 Oracle Certified Professional, Java Platform, Enterprise Edition 6 Web Services Developer
Sun Certified Developer for the JSF for the Java EE6 Platform Oracle Certified Professional, Java Platform, Enterprise Edition 6 JavaServer Faces Developer

Se quiser saber mais:  Oracle Certification Program

Mercado de Software em Manaus

Olá pessoal,

    Depois de longos e profundos compromissos que me impediam de postar neste blog, revolvi voltar,
agora revigorado e com mais vontade de escrever ;-),  pois bem, neste post, quero comentar um pouco sobre o mercado de software em Manaus, acho que deve interessar aqueles que desejam vir para esta cidade em busca de novas oportunidades.
     É fato, que existem excelentes instituições na região, por exemplo: FUCAPI, FPF, INDT, PROCOMP, ACCENTURE, esta ultima recentemente instalada, mas também é fato que para entrar em uma dessas instituições você deve possuir um currículo muito bem atualizado, além de um segundo idioma, o qual é muito bem visto(Inglês).   
     Graças a Deus, estamos em uma região que esta crescendo exponencialmente do ponto de vista tecnológico, quem acha que Manaus é uma cidade cega de tecnologia, vai tomar um susto daqueles ao conhecer os produtos que por aqui são desenvolvidos.
      Aos recem graduandos em computação, gostaria de dizer que infelizmente a situação de vocês é meio complicada, primeiramente por conta do nível de conhecimento exigido por muitas dessas empresas( Poucos saem da faculdade conhecendo JEE não é mesmo ?), segundo, porque as mesmas, muitas vezes preferem pagar a preço de ouro profissionais de outros estados à contratar alguém que esta começando (Ninguém quer correr o risco de atrasar um projeto).
      Quem conhece Java, assim como em outros estados do Brasil, consegue um emprego bom por aqui, programa de certificações,  participação em congressos,  apoio a publicação de artigos, se você se dedicar, realmente terá seu nome na calçada da fama Amazonense.
      Para concluir, gostaria de apoiar a difusão do conhecimento, mesmo que vindo de outros estados ou desenvolvido por aqui mesmo, a região de Manaus, esta precisando sim, de mais pesquisadores e de mais cientistas na área de computação, afinal o conhecimento estando por aqui, todos ganham.

Até a próxima.