Revisando Padrões com Java 8: O Padrão Null Object

Existem padrões além dos famosos já mostrados pelo GOF (Gang of Four) e um desses é o padrão Null Object. Esse padrão é um bom exemplo de utilização de orientação a objetos e deve ser parte do “canivete suíço” de todo desenvolvedor que utiliza linguagens que podem ter referência nula.

Ler mais

O que devo saber sobre NoSQL?

O modelo relacional é o tipo mais utilizado pela maioria dos bancos de dados mais populares do mercado, mas ao passar dos anos o volume de dados foi crescendo e a forma de se extrair informações foram se tornando cada vez mais custosas nesse modelo, o que levou a criação de novas técnicas como utilizar datawarehouses para geração de relatórios, views materializadas etc. Além disso novas necessidades surgiram como escalabilidade, baixo tempo de leitura e resposta e flexibilidade de modelagem, esse novo ambiente fez com que algumas pessoas questionassem a forma de armazenamento de dados e desse pensamento surgiu o NoSQL (not only SQL).

Ler mais

Linguagens da JVM: Kotlin

Atualmente a plataforma Java possui diversas linguagens de programação suportadas pela Java Virtual Machine (JVM). As linguagens criadas podem ser interpretadas pela JVM através de compiladores que geram bytecodes (linguagem intermediária que a máquina virtual entende) ou criando uma engine utilizando a Java Scripting API (definida pela JSR 223).

Ler mais

[OCEJWCD 6] - A Estrutura de Arquivos e Diretórios das Aplicações Web

Antes de ver a estrutura de arquivos e diretórios, irei explicar um pouco sobre o padrão MVC dentro do contexto da certificação, para ajudar a entender alguns pontos mais adiante. O padrão MVC significa Model-View-Controller (Modelo-Apresentação-Controlador), onde o Model é o arquivo java (onde está a lógica de negócio), a View são as páginas JSP e HTML (disponibilizadas para o usuário) e o Controller é o Servlet que atua como um intermediário entre os dois anteriores.

Ler mais

Navegando na Web com o Go/Golang

Após muito tempo trago mais um post sobre Go, confesso que a demora foi devido a o meu interesse atual pelo Dukescript, que me fez deixar de lado um pouco os estudos do Go. Mas decidi retomar aos poucos os estudos da linguagem revendo meu pequeno projeto de manipulação da API web do Steam.

Ler mais

DukeScript - HTML5 e Java juntos

O fundador do projeto Netbeans e arquiteto de software Jaroslav Tulach junto com Anton Epple consultor e instrutor Java, ganharam o Duke’s Choice Award de 2014 ao apresentarem o Dukescript, uma tecnologia que tenta trazer o Java mais próximo da visão inicial de seu criador de levá-lo a todos os dispositivos escrevendo apenas um código (Write Once, Run Everywhere). Para isso utiliza o HTML5/Javascript como mecanismo de rendering e o Java no lado cliente (sem plug-in!!!) para a inteligência da aplicação.

Ler mais

Aprendendo GO/GOLANG

Quando ouvi falar da linguagem Go em 2009 achei muito interssante, a sintaxe proposta para a utilização de concorrência através de goroutines, de duck typing e garbage colector, mas na época eu não fiquei interessado o suficiente para querer aprender a linguagem.

Ler mais

[OCEJWCD 6] - Resumo da Arquitetura Web e o Protocolo HTTP

A arquitetura web é baseada no modelo cliente-servidor onde o cliente faz uma requisição (request) para obter uma resposta (response). Para esse processo é necessário que os dois lados da comunicação possuam uma forma padrão de comunicação, um protocolo, para se entenderem no ambiente heterogêneo que é a Internet.

Ler mais

[OCEJWCD 6] - Iniciando Estudos

Após procrastinar por muito tempo os estudos para a certificação (e deixar meu blog abandonado), devido ao trabalho e “desculpinhas” que sempre encontro para justificar a preguiça, decidi retomar os estudos e ao mesmo tempo movimentar meu blog.

Ler mais

Utilizando Tomcat 6 nas nuvens com o OpenShift

Recentemente tive a vontade de colocar meu currículo on-line disponível em meu domínio principal (www.ivanqueiroz.com) e para isso tive a idéia de utilizar a plataforma Openshift da Red Hat. Para quem não conhece trata-se de uma plataforma como serviço (PaaS) de computação em nuvem, que possui suporte a várias plataformas (Java, Node.js, PHP, Python, Perl e Ruby) fornecendo a infra-estrutura para o desenvolvimento, teste, construção e execução de aplicativos. A solução possui planos gratuitos (a utilizada nesse artigo) e pagos, para quem quer um suporte mais robusto.

Ler mais