Categories: Java, JBoss Seam

Gerando código com JBoss Seam

Gerando código com JBoss Seam

Neste artigo vou tentar mostrar um pouco do gerador de aplicações JEE do JBoss Seam, que após algum tempo de estudo e prática pode ajudar bastante os desenvolvedores.
Não é meu intuito aqui explicar o funcionamento do framework em si (escreverei sobre o mesmo mais pra frente), neste artigo abordarei APENAS a ferramenta de geração de código.
A geração de código sempre foi algo muito polêmico entre os desenvolvedores, alguns repudiam por completo essa prática alegando que o código gerado não é muito limpo, etc..
Por outro lado, não há como negar que praticidade em certos momentos é fundamental. Enfim, venho trabalhando com esse framework há aproximadamente 4 meses e já pude mapear alguns momentos em que a utilização do gerador de código pode colaborar ou dificultar o desenvolvimento. Geralmente, nas ditas aplicações comerciais, utilizamos banco de dados que são formados por “tabelas básicas” e “tabelas de movimentação”. Bom, tabelas básicas são aquelas onde geralmente armazenamos dados que serão apenas consultados, como por exemplo “statuspedido”, que armazenará um determinado número de status de pedidos, que serão praticamente imutáveis. Tabelas de movimentação, por sua vez, são aquelas que sofrem muitas atualizações(Create, Update, Delete) e onde geralmente relacionamos um determinado número de tabelas básicas. O ponto onde quero chegar é: o gerador de código do Seam é muito interessante quando estamos falando de tabelas báscias, onde o CRUD gerado é realmente aproveitável.


Peopleware – Parte 3

Chapter 3: Vienna Waits For You

Spanish Theory Management

Há muito tempo atrás, historiadores formaram uma abstração sobre diferentes teorias de valor. Uma delas é a “teoria espanhola” que diz que existe um acumulo de valor finito na Terra, portanto, a base do acumulo de riquezas foi aprender a extrair o mais eficientemente possível através do solo ou das costas das pessoas. Em seguida veio a “teoria inglesa” que dizia que valor poderia ser criado através de engenhos e tecnologia.
Então a Inglaterra sofreu a revolução industrial enquanto a Espanha corria atrás da descoberta e exploração de novas terras. Eles movimentaram quantidades enormes de ouro pelo oceano, e tudo que conseguiram com esse esforço foi uma enorme inflação (muito ouro por poucas mercadorias utilizáveis).
A “teoria espanhola” do valor ainda vive, principalmente entre gerentes, de todo lugar.
Aonde quer que estejam, estão sempre falando de “produtividade”. Produtividade pode ser entendida como conceber mais em uma hora de trabalho, ou, como é mais frequentemente entendida, extrair mais por uma hora de pagamento, sendo que, existe um abismo entre as duas compreensões. Gerentes seguidores da “teoria espanhola” sonham em obter maiores níveis de produtividade através de horas-extras não remuneradas. Eles dividem todo o trabalho que é feito em uma semana por 40 horas semanais e não pelas oitenta, noventa horas que os trabalhadores se aplicam ao trabalho.
Isto não é exatamente produtividade, soa mais como “fraude”, porém é o estado da arte para muitos gerentes. Eles intimidam e persuadem suas pessoas a trabalharem por longas jornadas. Tentam impressionar as pessoas sobre o quão importante é uma data de entrega (mesmo que seja uma data totalmente arbitrária).


Peopleware – Parte 2

Chapter 2: Make a Cheeseburger, Sell a Cheeseburger

Desenvolvimento é diferente de produção. Porém gerentes de desenvolvimento derivam inteiramente sua filosofia do ambiente de produção.

Se você fosse gerente de um fast-food faria total sentido seguir eficientemente as medidas de produção abaixo:
-Fazer a máquina(a máquina humana) trabalhar o mais suavemente possível;
-Seguir uma linha rígida sobre os horários não trabalhados das pessoas;
-Tratar as pessoas como engrenagens de uma máquina;
-Otimizar as operações;
-Padronizar os procedimentos, ou seja, fazer tudo conforme a “receita”;
-Eliminar experimentações;

Essas são abordagens razoáveis se você estiver em um abiente de produção, mas você não está!
Para gerenciar funcionários pensantes, você precisa tomar medidas próximas ao oposto das listadas acima.


Peopleware – Parte 1

Peopleware: Productive Projects and Teams

Tom DeMarco & Timothy Lister

peopleware.jpg

Depois de escutar ótimas recomendações sobre esse livro decidi tirar minhas próprias conclusões e comecei a ler esse livro que trata de alguns conceitos e problemas cotidianos na vida de pessoas ligadas ao desenvolvimento de software. Ainda não terminei de lê-lo, mas achei interessante ir resumindo os pensamentos dos autores.
Estarei postando aos poucos o resumo dos demais capítulos.
Só deixando claro que, de maneira alguma esse resumo substitui a leitura do livro, inclusive recomendo sua aquisição XD


Categories: Segurança

Conhecendo a segurança declarativa do Java (JAAS) – Parte 1

Afinal, o que é esse JAAS ?

O JAAS ou “Java Authentication and Authorization Service” é um conjunto de API’s que visam desacoplar as aplicações dos controles de acesso a recursos da mesma, ficou bonita essa frase hein ? na prática isso significa retirar do desenvolvedor a responsabilidade de ter que controlar o acesso a recursos por perfis de maneira programática( filtros e outros meios ilicitos que eu também já fiz /o\ ). Todo o controle passa a ser feito de maneira declarativa no descritor da aplicação, daí o nome segurança declarativa, intuituivo, não ?

Basicamente o JAAS pode ser atilizado para dois propósitos:
– Autenticação de usuários, ou seja, verificar se o usuário é registrado;
– Autorização de usuários, ou seja, verificar se o usuário já autenticado tem permissão de acesso para determinado recurso protegido;

Tá, mas…o que eu ganho usando o JAAS ?

Muitas coisas, você passa a se preocupar de fato com o código que é importante para a sua aplicação, as restrições a determinados recursos não vão mais interferir na maneira como você desenvolver sua aplicação, você pode por exemplo após ter concluído o desenvolvimento fazer as devidas declarações de quais recursos serão protegidos e quem poderá acessá-los. Implicitamente isso tornará seu código mais legível e focado nas regras de negócio. Sem contar que qualquer modificação nas restrições implicará na mudança de apenas um arquivo(web.xml) e não mais em diversos pontos espalhados pela aplicação.