Posts

Estou vivo!

Final de 2007 Pessoal estou sumido dês do final de 2007. Por que além de estudar para a faculdade e curso de inglês, estava criando o curso de Spring Framework 2.0 para a T@rget Trust. Sem contar de estar trabalhando muito na Expresso Mercúrio com migrações para o Maven 2.0. Começo de 2008 Estou de férias! Fiz uma viagem para o Uruguai e Argentina. Quando voltei lá pelo dia 15 comecei a escrever o curso de AOP/AspectJ 1.5.4 para a T@rget Trust o qual pretendo terminar hoje a noite. Estou estudando para a certificação SCWCD 1.4 a qual pretendo tirar em março no máximo em abril. Em fevereiro vou ministrar cursos na T@rget. Março de 2008 Vou estar estudando para a certificação de SCBCD (EJB 3) que pretendo tirar antes do final deste ano. A partir de março vou estar correndo muito também por que além de estudar para essa certificação, faculdade, inglês, trabalho, talvez apareçam cursos na T@rget. Mas pretendo estar postando com um regularidade de pelo menos 1x por semana. Abraços.

Implementação não é nada. Design é tudo!

Quando estamos construindo um sistema OO, a base desse sistema é fundamental. Já é bíblica a frase " O Homem que construiu sua casa sobre a areia" . Para termos uma aplicação robusta, modular, escalável precisamos ter uma base muito bem fomentada, para isso o design é essencial. Pois como podemos construir artefatos que atendam essas premissas sobre uma base podre? A resposta é obvia, mas nem sempre o obvio é tão obvio. O Design de uma aplicação é mais importante do que qualquer tecnologia de implementação até mesmo a JEE. Não adianta usarmos Spring, Hibernate, MVC, etc se não temos: Alta coesão Baixo acoplamento A Questão chega a ser fetal, acoplamento gera merda. Quanto mais acoplamento pior, se os artefatos estão todos amarrados é muito difícil modificar o código e conseqüentemente a manutenção é penosa. Mas como podemos diminuir o acoplamento e aumentar a coesão? Utilizando Design Patterns Modelagem UML Divisão de papeis Utilizando Interfaces e Herança Re-utilizando des...

Java 7

Quem quiser ter um 'preview' das novas features do java 7.0 pode acessar esse endereço: http://blogs.sun.com/dannycoward/resource/Java7Overview_Prague_JUG.pdf e conferir as novas funcionalidades de ante mão. A Principal novidade é que vamos ter 2 implementação do JDK, o JDK desenvolvido pela própria Sun que vai sair sobre licensa GPL 2.0 e uma outra implementação que será desenvolvida pela comunidade java, esse projeto se chama OpenJDK. Vocês podem achar mais informação sobre o OpenJDK aqui .

Scrum!!!

Image
Ultimamente eu ando estudando sobre Scrum. Scrum é um processo de desenvolvimento de software, que basicamente pode ser utilizado em java, .net, ruby e outras linguagens. Scrum é uma forma de desenvolvimento agile, porem está muito focado nas pessoas e no 'time' em si. Uma diferença significativa é que no Scrum nos não temos fazer incrementais como no RUP. Nos temos no mesmo ciclo: analise, arquitetura, codificação e teste. No Scrum são feitos releses rápidos que duram entre 2-4 semanas, como ele é um processo não uma metodologia ele pode ser adaptado conforme a sua necessidade. Esses releses curtos são chamados de sprints que são 'corridas', ou seja, entregas rápidas, assim nos vamos ter entregas incrementais. A Data da entrega(sprint backlog) é sacro-santa, isso é, não pode ser mexida, o que pode ser feito é diminuir o número de products backlogs(requisitos) , mas nunca alterar a data. A partir da figura a cima, podemos ver em sintese como é o ciclo de processo no ...

Tira teima: Remoting com Spring

Em sintese depende do cenário. Considerando as possíveis formas de remoting do Spring: RMI Http Invoker Hessian Burlap Jax RPC JMS EJB RMI: Acredito que todos conhecem essa abordagem. É na verdade semelhante ao RPC só que para objetos, vocês podem achar mais informações aqui . A Desvantagem é ter que disponibilizar uma porta na maquina. Http Invoker : Estratégia especial de remoting que faz comunicação via protocolo http via serialização. A vantagem é por que trafegamos por um protocolo caracter que já está disponível para nos, leia-se já é utilizado por uma aplicação web. Hessian : É um protocolo leve baseado em http binário, que é provido através do Caucho. Você pode encontrar mais informações sobre esse protocolo para Web Service binário aqui . A Vantagem é que é bem leve. Burlap : É uma solução baseada em XML como alternativa do Hessian, também desenvolvido pelo Caucho's. É muito utilizado em comunicações com dispositivos moveis, como o telefone celular, já que alem de simp...

Palestra de Spring Framework 2.0

No Dia 07/08/2007 eu ministrei a palestra de Spring Framework 2.0 na T@rget Trust em Porto Alegre. Agradeço a presença de todos. Vocês podem baixar a apresentação em ppt aqui . Spring Framework View SlideShare presentation or Upload your own. (tags: jee framework )

JSF == EJB 2.0

Hoje em dia a predominância de frameworks e de sistemas web é de JSF . O JSF veio para padronizar aquilo que Struts da Apache já vinha fazendo anteriormente, com certeza ficou melhor. Hoje as implementações carro chefe são a da sun , tomawawk da apache , ADF da oracle . Eu gosto do JSF mas eu vejo algumas deficiências nele. São elas: - Muito XML, muita configuração. - Fazer um componente é um inferno, xml,dtd, class, muitos artefatos. - A navegação é muito dura, e de novo muito xml. - Não tem componentes, somente os básicos, somos obrigados a usar taglibs de terceiros como: RichFaces da JBoss . O JSF precisa ser mais RAD, eu gosto dos conceitos de navegação que o Stripes framework tem. Me agrada alguns conceitos do Click Framework também como a iteração da pagina(template) com o action. Se o JSF aplicasse políticas mais onRails e usa mais convenção e até mesmo annotations as coisas ficariam bem melhores. E concerteza fazer um componente deve ser mais facilitado, nisso ele me lembra...