Latest Event Updates

REST: Construa API’s inteligentes de maneira simples

Postado em

REST-Ebook_largeDe alguma maneira, os sistemas modernos precisam se integrar com outros sistemas, seja para coletar dados, enviar informações, autenticação e muito mais funcionalidades.

Nesse livro, Alexandre Saudate ensina como implementar APIs REST, que são simples e fáceis de manter, indo desde o básico dos formatos de dados como XML e JSON, passando por uma implementação rústica de um serviço e evoluindo para uso da poderosa especificação Java, o JAX-RS.

“Nós amamos porque ele nos amou primeiro.” 1 João 4:19

Gestão de Mudanças

Postado em

51Q2Gm3wqoL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA278_PIkin4,BottomRight,-68,22_AA300_SH20_OU01_Você anda cansado de trabalhar aonde você trabalha? Você discorda da forma de gerenciamento implantado? Seu gerente mais folga que gerencia? Seus companheiros mais ficam no Facebook que trabalham? Acredito que muitos já passaram ou estão passando por isso. O que fazer diante dessa situação? Você tem três opções:

1. Ignore

Mudar organizações é um trabalho duro, cansativo e estressante. Se você não tem o vigor e o “know-how” necessário para aprender como tornar-se um bom agente de mudança, então, pare de reclamar do que está ruim. Aceite que a organização é o que é, e aproveite as partes boas do seu trabalho. Nesse caso, você pode para a leitura desse artigo aqui.

2. Peça demissão

A única razão pela qual organizações ruins existem é porque as pessoas não pedem demissão. Faça um favor para o mundo e encontre um lugar melhor para trabalhar. Ajude organizações ruins a saírem de suas misérias não trabalhando para elas.

3. Aprenda sobre gestão de mudanças

Muitas pessoas são péssimas em influenciar outras pessoas a mudarem organizações. Mas, se você levar a sério, você pode aprender a ser um agente de mudança mais eficiente. É pegar, largar, ou mudar. Este livro é para aqueles que escolheram a opção 3.

Para os corajosos e valentes, bons estudos!

“E a vida eterna é esta: que te conheçam a ti, o único Deus verdadeiro, e a Jesus Cristo, a quem enviaste.” João 17:3

AQT M2 Arquiteto Java – Projeto e Design 13/03/14

Postado em

IMG180AQT M2 – Arquiteto Java – Projeto e Design

“Mas Deus, sendo rico em misericórdia, por causa do grande amor com que nos amou, e estando nós mortos em nossos delitos, nos deu vida juntamente com Cristo, pela graça sois salvos…” Efésios 2:4-5

Algoritmo de Banheiro

Postado em Updated on

Eis que eu estava ministrando um curso de Java e resolvi ir no banheira da empresa…e de repente me deparo com tal instrução:

20140329_120810

Tunando o Eclipse

Postado em

mustang-gt-tunado

Segue duas dicas para tunar seu eclipse deixando seu ambiente de desenvolvimento bem mais rápido.

“No amor não existe medo; antes, o perfeito amor lança fora o medo. Ora, o medo produz tormento; logo, aquele que teme não é aperfeiçoado no amor.” 1 João 4:18

Treinamento Java Básico – Início 12/04/14

Postado em

cartasjse

Veja a grande do curso JSE M1

“Pois tu, Senhor, és bom e compassivo; abundante em benignidade para com todos os que te invocam.” Salmos 86:5

Objetos Transacionais em Java

Postado em

Se você foi como muitas crianças, passou muitos momentos despreocupados no playground, andando de balanço, passando pelas barras do trepa-trepa, ficando tonto ao girar no carrossel e indo para cima e para baixo numa gangorra. O problema dela é que é impossível aproveita-lá sozinho. Veja que na verdade, para realmente usá-la, sempre necessitará de outra pessoa. Você e um amigo têm que concordar em andar na gangorra. Esse acordo é uma proposição tudo-ou-nada. Ambos têm de andar ou nenhum dos dois irá andar. Se qualquer um de vocês falhar em sentar no seu respectivo lugar em cada ponto do banco, não poderão se divertir – só haverá uma criança sentada em uma das pontas triste e imóvel. Spring in Action

111-mecpEm software, estas operações “tudo-ou-nada” são chamadas Transações que permitem agrupar diversas unidades operacionais numa única unidade de trabalho que ou acontece plenamente em sua totalidade, ou não. Segue um resumo com seus respectivos links apresentando uma série de sugestões referentes às estratégias, das mais simples a mais automatizadas de como desenvolvedores java podem implementar objetos transacionais em suas aplicações.

1. Manual

1.1 JDBC puro, usando diretamente a implementação da Connection do determinado provedor.

O JDBC especificou um método chamado setAutoCommit() para o que programador tenha a liberdade de configurar como será o controle das transações. A ausência da configuração expressa que comportamento é automático com o setAutoCommit(true) fazendo qualquer operação no SGDB, seja aberta e fechada a transação. Com a configuração do setAutoCommit(false), fica na responsabilidade do programador fazer as operação no SGDB e assim finalizar com o commit ou roolback.

1.2 Propagação da implementação do tópico 1.1 através de herança ou agregação.

A opção 1.1 acaba ficando muito trabalhosa, repetitiva e desorganizada quando começa a ser espalhada pela a implementação do sistema, dependendo do tamanho do aplicativo. Com isso, o ideal seria idealizar alguma forma de propagar este código trabalhoso e repetitivo. Reutilização em OOP é feita de duas formas: Herança ou Agregação. Então, a dica seria criar super-classes ou classes agregativas que encapsulem esse determinado código para que possam ser reutilizados nestes pontos do sistema.

1.3 Propagação da implementação do tópico 1.1 usando abordagem atributos estáticos em threads com a classe ThreadLocal.

O cenário de conexão e transação com SGDB é comumente vinculado com a ocorrência de threads do sistema, sendo que na execução do aplicativo irão acontecer processos concorrentes fazendo diversas operações e transações na base de dados (cenário muito comum em aplicativos web JEE) . Uma forma profissional de se resolver o caso é usando a classe ThreadLocal que permite ao programador criar e amarrar atributos estáticos por pilhas de thread, sendo assim a solução ideal para o controle de transações amplamente usado por reconhecidos frameworks de persistência existentes no mercado.

1.4 Implementação com o padrão Proxy [GOF] para controle das transações.

Uma possível abordagem para se lidar com as transações em java é a utilização do padrão Proxy que providencia uma mecânica bastante interessante, onde pode ser desenvolver uma falsa camada polimórfica que intermediará e controlará as transações nas chamadas para as operações transacionais. O conceito é utilizado por muitos frameworks tops da atualidade.

1.5 Implementação de uma camada DAO

Dependendo do tamanho da aplicação, é recomendado que se faça uma camada lógica totalmente separada para a implementação dos códigos relacionados com qualquer operação com o SGDB. Ou seja, qualquer coisa relacionada com conexão, transações e SQL pode ser separada de toda a aplicação promovendo uma índice de reutilização, organização e desacoplamento. É isso que justamente o padrão jee DAO sugere. Nele podemos encontrar todas as diretrizes para se implementar essa camada.

1.6. Utilizando frameworks ORM.

Os frameworks ORM são as últimas novidades da engenharia de software que se propõe a fazer com que uma aplicação programada em OO possa se comunicar como um SGDB de forma OO. E dentro deste contexto, as transações podem ser semi-automatizadas, dependendo de uma série de configurações que podem ser customizadas para cada tipo de aplicativo.

2. Automático

2.1 AOP com AspectJ

Programação orientada a aspectos AOP é o paradigma de programação com o objetivo de complementar a OOP. Com ela podemos facilmente acrescentar a transação como aspectos, construindo “advices” que controlaram as transações em determinados objetos. Vejam um exemplo na java Magazine Edição 60

2.2 Spring Framework

Umas das formas mais utilizadas da atualidade é a utilização do framework spring para o controle das transações de um aplicativo java. Nele podem ser encontrados uma série de recursos em diferentes níveis para se obter recurso de forma declarativa e modular. Segue o link para o tutorial de Gerenciamento de Transações.

2.3 Usando componentes JEE – Enterprise JavaBeans

Outro framework amplamente usado na atualidade é o EJB que também possui um módulo de controle de transações que podem ser agregadas na aplicação. Veja as referências para alguns ótimos livros de EJB.

Neste post não foi apresentando nenhum exemplo ou modelo de implementação justamente pelo fato de existirem inúmeras e diferentes formas de implementar ou de usar qualquer uma das dicas acima citadas, ficando a cargo do responsável pelo software entrar em detalhes implementacionais das opções e selecionar aquela que lhe caiba melhor em suas necessidades. Me coloco à disposição para qualquer tipo de ajuda. Aquele forte abraço e a paz.

“Todavia eu me alegrarei no SENHOR; exultarei no Deus da minha salvação.” Habacuque 3:18.