Posts

Showing posts from August, 2007

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 )