RSS

Arquivo da categoria: Arquiteto

Arquiteturas Mais Rápidas, Melhores e Maiores. Mas como?

“Um dos principais desafios ao se elaborar a arquitetura de um software está em considerar seus atributos de qualidade e, principalmente, a correta especificação destes atributos. Muitos dos problemas, não por acaso, estão diretamente relacionados à essa dificuldade na especificação, como acontece no tratamento de segurança e desempenho, citando apenas alguns. Os atributos de qualidade possuem um papel de extrema importância na aceitação do cliente e do usuário final. Desta forma, tratá-los de uma maneira sistemática e apropriada é um esforço importante, porém desafiador.” Veja o artigo completo.

“Ninguém o despreze pelo fato de você ser jovem, mas seja um exemplo para os fiéis na palavra, no procedimento, no amor, na fé e na pureza”. 1 Timóteo 4:12

 
Leave a comment

Publicado por em 12/04/2012 em Arquiteto

 

Sites Mobile

Abrir um site Desktop no celular é uma experiência pouco agradável. Frequentemente, vamos querer criar uma página otimizada para mobile, que não demande tanto zoom e já mostre o conteúdo em tamanho e formato interessantes para uma tela tão pequena. Como fazer? Seguindo a linha de raciocinio do nosso último artigo sobre migração de aplicações web para páginas mobiles, segue hoje duas dicas sobre o assunto:

http://blog.caelum.com.br/pixels-pixels-ou-pixels-dicas-de-web-mobile-com-viewport/
http://blog.caelum.com.br/flexibilidade-em-paginas-para-dispositivos-moveis-com-media-queries/

“Não tenha inveja de quem é violento nem adote nenhum dos seus procedimentos, pois o Senhor detesta o perverso, mas o justo é seu grande amigo.” Provérbios 3:31-32

 
Leave a comment

Publicado por em 05/04/2012 em Arquiteto, Mobile

 

Tags:

Benefícios da Imutabilidade

Objetos imutáveis possuem uma série de propriedades que o tornam mais fácil de ser gerenciados. Enquanto a imutabilidade não é necessariamente obrigatória para todas as classes, a maioria dos programas têm, pelo menos, algumas que poderiam se beneficiar de ser imutável. Veja neste artigo os benefícios da imutabilidade e algumas orientações para a construção de classes imutáveis.

Àquele que é capaz de fazer infinitamente mais do que tudo o que pedimos ou pensamos, de acordo com o seu poder que atua em nós,  a ele seja a glória na igreja e em Cristo Jesus, por todas as gerações, para todo o sempre! Amém! Efésios 3:20

 
Leave a comment

Publicado por em 20/03/2012 em Arquiteto

 

Garantido Qualidade de Codificação

Responsáveis pelo desenvolvimento Java nas empresas normalmente precisam garantir uma qualidade mínima no código escrito pelas equipes rotativas de programadores. Para aqueles que já tentaram fazer tal coisa sabem muito bem como é difícil manualmente ficar revisando e homologando código para a versão de produção. Dentro desse assunto a dica hoje é sobre as ferramentas de validação de codificação chamadas FindBugs e PMD.

PMD é uma ferramenta que faz a leitura do código da solução procurando potenciais problemas como: bugs (empty try/catch/finally/switch statements), dead code (unused local variables, parameters and private methods), suboptimal code (wasteful String/StringBuffer usage), overcomplicated expressions -(unnecessary if statements, for loops that could be while loops) e duplicate code.

FindBugs é uma ferramenta que faz leitura estática do código da solução procurando os mais famosos “java bug patterns”.

Ambas possuem plugin para as mais famosas IDE . A dica de uso é a seguinte:

  1. Garantia sistemática da qualidade – Use para garantir a qualidade de código homologando na versão em produção. Passe o validador antes de homologar a versão da solução.
  2. Aumentar a qualidade e conhecimento da equipe – Auxilie os desenvolvedores menos experientes levando os aprender com seus próprios erros, gerando nele esse “know-how” de java bug patterns.

“Porei inimizade entre você e a mulher, entre a sua descendência e o descendente dela; este lhe ferirá a cabeça,e você lhe ferirá o calcanhar”. Gênesis 3:15

 
1 Comment

Publicado por em 15/03/2012 em Arquiteto

 

Tags: ,

Qual o papel do arquiteto na corporação?

Vejam o artigo de Carlos Hulot falando sobre o papel de arquiteto, suas varias facetas e responsabilidades na DevCast Magazine edição 1. Uma boa semana a todos!

“Portanto, como povo escolhido de Deus, santo e amado, revistam-se de profunda compaixão, bondade, humildade, mansidão e paciência.” Colossenses 3:12

 
Leave a comment

Publicado por em 12/03/2012 em Arquiteto, Revistas

 

Pacote Oracle SCEA JEE5

A Oracle tem um pacote especial para a certificação de Arquiteto Java com 5 % de desconto, com vouchers retake. Segue os itens do pacote:

O valor do pacote já com desconto é de R$ 3.819,00 com uma turma começando no final desse mês. A compra pode ser feita pelo 0800 891 6502. Fica a dica para os interessados nessa certificação.

“Do Senhor vem o livramento. A tua bênção está sobre o teu povo. Salmos 3:8

 
 

Cache Distribuídos em Aplicativos JEE

JEE é a tecnologia escolhida para aplicações corporativas “high-end”. JEE tornou-se a plataforma referencia para o desenvolvimento de aplicações web de alto tráfego. Soluções JEE são dotadas de uma arquitetura que se adapta muito bem. Você pode lidar com mais e mais usuários simultâneos adicionando mais containers Web com balanceamento de carga. Conforme você tem uma quantidade crescente de carga e transação, basta ir adicionando mais e mais servidores. Dessa forma, você pode lidar com mais e mais transações usuários simultâneos.

No entanto, todas as coisas boas chegam ao fim, e neste caso o acesso aos informações da solução não são capazes de manter-se com o volume cada vez maior de transações. Portanto, armazenamento de dados e acesso a dados se tornam na verdade um gargalo nestas soluções.

Como você remove esses gargalos de escalabilidade? O objetivo é não só melhorar o desempenho, mas sim para melhorar a escalabilidade. Escalabilidade aqui é definida como a capacidade de manter o bom desempenho mesmo sobe carga de pico de transações. Com efeito, se você tiver cinco usuários, a solução será muito rápida. Se você tem 500.000 usuários, ela provavelmente vai não só diminuir, mas na verdade engasgar. Se você tem boa escalabilidade, o desempenho do usuário 500.000 seria muito semelhante a um desempenho de cincos usuários.

Veja o artigo completo falando sobre o uso de cache distribuído em aplicações web JEE.

“Ó Soberano, como prometeste, agora podes despedir em paz o teu servo. Pois os meus olhos já viram a tua salvação…” Lucas 2:29-30

 
2 Comments

Publicado por em 29/02/2012 em Arquiteto, JEE

 

Soluções Seguras com Java

Um elemento essencial da codificação segura na linguagem de programação Java é um padrão bem documentado e exeqüível de codificação. Padrões de codificação incentivam os programadores a seguir um conjunto uniforme de regras determinadas pelas necessidades do projeto e da organização, ao invés de manias ou preferências individuais. Uma vez estabelecida, estes padrões podem ser utilizados como uma métrica para avaliar o código fonte usando processos manuais ou automatizados.

O Livro The Secure® Coding® Standard for Java™ fornece normas destinadas a eliminar a insegurança práticas de codificação que podem levar a vulnerabilidades exploráveis. Aplicação das diretrizes da norma levará a sistemas de alta qualidade e robustas que são mais resistentes a ataques. Tais orientações são necessárias para a vasta gama de produtos codificados em Java para dispositivos como PCs, videogames, telefones celulares, eletrodomésticos e eletrônicos automotivos.

Leitura indispensável para desenvolvedores e arquitetos Java.

“A arrogância dos homens será abatida,e o seu orgulho será humilhado.Somente o Senhor será exaltado naquele dia, e os ídolos desaparecerão por completo” Isaías 2:17-18

 
1 Comment

Publicado por em 17/02/2012 em Arquiteto, Livros

 

Martin Fowler: O Futuro não é apenas NoSql mas Persistência Poliglota

Veja o artigo original no site da DZone.

“Pois vocês são salvos pela graça, por meio da fé, e isto não vem de vocês, é dom de Deus; não por obras, para que ninguém se glorie.” Efésios 2:8-9

 
Leave a comment

Publicado por em 09/02/2012 em Arquiteto

 

Nova Tendência de Aplicativos Web Mobile

As modernas aplicações web de hoje precisam estar devidamente preparadas para atender o publico em sua totalidade. Isso que dizer que a solução web precisa estar acessível para ser usada em navegadores de desktops e principalmente agora nos navegadores dos modernos dispositivos móveis conhecidos como smartphones e tablets que se infiltram cada dia mais no cenário das corporações.

O fator de complicação dessa nova tendência é que a filosofia de usabilidade de aplicações web nos navegadores móveis é completamente diferente da usabilidade de um navegador desktop. Mesmo os dispositivos móveis hoje tendo uma alta capacidade computacional, eles se diferem em dois aspectos chaves:

  1. Monitores reduzidos
  2. Estimulo de ação e digitação baseada em touchscreen.

Isso quer dizer uma mesma solução desenvolvida para ser utilizada no navegador do desktop pode ter seu uso totalmente impraticável em dispositivos móveis. É justamente o que tem acontecido na maioria das vezes. Temos dispositivos com alta capacidade computacional e conexão 3G, mas quando você entra em uma solução web, logo de inicio percebe que fica impraticável ficar gerenciando zoom nos monitores reduzidos e usando touch para disparar as ações. Quem ainda não passou por isso?

Problemas Básicos

Interface gráfica web para navegadores de dispositivos móveis não podem ser grandes, nem complexos e os componentes de ações devem ser maiores com espaçamento significativo entre eles. Tudo isso tem o com objetivo de gerar facilidade no momento de disparar as ações via touch. Outro fator é que estas interfaces devem ser resumidas, oferecendo objetividade no acesso e a leitura para as informações dentro do contexto da solução. Veja neste artigo os pontos problemáticos de usabilidade.

E é péssimo abrir algum Site que não esteja otimizado para mobile. Mesmo nos smartphones mais modernos com telas maiores que permitem abrir sites normais, não há dúvidas que um site não otimizado para mobile traz uma pior experiência para o usuário. E isso prejudica suas vendas, trata mal potenciais clientes e até afeta negativamente sua marca.

Como resolver?

O responsável por uma solução web hoje deve implicitamente considerar tal requisito e assim preparar sua solução para atender essa demanda de navegadores móveis. É justamente isso que eu hoje gostaria falar  hoje. No geral, temos duas abordagens parar resolver tal questão:

Abordagem 1 – Construir uma única camada de apresentação hibrida

Criar uma única camada de apresentação na solução para ambos os navegadores, fazendo as interfaces gráficas se comportarem especificamente quando forem acessadas por navegadores de dispositivos móveis. Quando um dispositivo móvel acessar as páginas da solução, será necessário tem certa “inteligência” que aplique algumas mudanças nas páginas como redução de layout, não envio de algumas imagens mais pesadas, maior separação entre os botões de ação e até troca de alguns componentes por outros mais intuitivos.

Pontos Positivos

  • A solução terá uma única camada de apresentação.
  • Atualização única para todos os usuários.

Pontos Negativos

  • Aumento da complexidade na camada de visão nessa “inteligência hibrida”.
  • Algumas páginas podem apresentar limitações que compliquem a customização justamente pelo próprio contexto do negocio ou usabilidade da solução.  Esses limitadores podem impedir alguma customização,  gerando desconforto para usuário final.

Como resolver isso arquiteturalmente?

Não existe segredo! A camada de visão necessitara ser “costurada” com decisões que gerem a mudanças adequadas que melhor customizem as páginas quando um navegador de dispositivo móvel estiver acessando.

Abordagem 2 – Criar duas camadas de apresentação

Nesta abordagem é criada uma camada de apresentação na solução exclusiva para cada um deles, uma para desktop e outra para os navegadores móveis. Quando o usuário acessar a pagina de entrada, a solução identificara o navegador corrente e redirecionara para a determinada camada A ou B. Essa é a abordagem mais usada hoje pelos grandes players do mercado.

Pontos Positivos

  • Melhor experiência em usabilidade.
  • Otimização de performance por menos latência de trafego HTTP com paginas 100% customizadas.

Pontos Negativos

  • Duas versões diferentes de camada de apresentação na mesma solução.
  • Manutenção duplicada.
  • Novas funcionalidades devem ser projetadas, implementadas e testadas duplicamente nas duas camadas.

Como resolver isso arquiteturalmente?

Construa uma versão diferente de cada interface gráfica de todos os processos oferecidos pela solução:

  • Uma para o navegador desktop sem limites e sem restrições.
  • Uma para o navegador móvel com layout bem mais simples, com menos recursos, mais objetiva e com separação razoável entre os componentes visuais.

Reuso de Regras de Negócio

O objetivo é dar manutenção em duas interfaces gráficas diferentes, mas a regra de negócio de ambas é a mesma e dever ser totalmente reutilizável. Para alcançar isso, adicione uma camada lógica de serviço usando padrão Facade[GOF] entre as camadas de visões e a camada de negócio da solução, não permitindo dependência direta entre elas. Com esta camada de serviço, é possível centralizar os comportamentos em comuns das ambas camadas de apresentação, na interação com a camada de negócio. Isso que dizer que qualquer manutenção das regras e ou processo de negócios serão propagadas para ambas a camada de visão.

Reuso de Autenticação e Autorização

Mesmo tendo duas camadas de apresentação, as regras de autenticação e autorização também continuam a mesma. O mecanismo de autenticação e autorização da solução deve ser projetado de forma flexível para que possa reconhecer que ambas camadas de visão estão debaixo das mesma “regras de credencialidade”.

Paradigma das Páginas para Dispositivos Móveis

Temos hoje duas vertentes diferentes de paradigmas para a filosofia de construção das paginas web para dispositivos móveis.

Páginas Otimizadas

As paginas são construídas para os dispositivos móveis iguais a uma pagina HMLT padrão. O único diferencial é que elas são otimizadas, simples, com menos código, layouts, poucas ou sem imagens, css simples e com javascripts básicos.

Páginas Look Feel Nativas

As paginas são construídas aparentando serem interfaces gráficas desktop da própria plataforma móvel. Ou seja, as páginas aparentam ser aplicações nativas, utilizando todos os componentes específicos e a forma de usabilidade totalmente voltada para as monitores otimizados. Provedores de componentes JSF 2.0 já identificaram essa nova abordagem de solução é já estão fornecendo componentes 100% automáticos. Veja alguns exemplos:

RichFaces Mobile

PrimeFaces Mobile

JQuery Mobile

Da mesma forma ja existem vários frameworks javascript oferecendo também componentes prontos para criar aplicações web mobile. Segue os destaques:

Sencha Touch

Dojo Mobile

Na verdade todas elas são simples páginas HTML puras com algumas imagens, css e javascript que “simulam” as funcionalidades equivalentes a aplicações nativas instaladas no próprio aparelho móvel. Dessa forma é possível entregar uma solução web com aparência e a usabilidade de uma aplicação nativa.

“Feliz é o homem que persevera na provação, porque depois de aprovado receberá a coroa da vida, que Deus prometeu aos que o amam.” Tiago 1:12

 
2 Comments

Publicado por em 06/02/2012 em Arquiteto, JEE, Mobile

 

Tags:

 
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 168 other followers