Posts

Showing posts from 2009

Aviso sobre emails e participação no blog

Pessoal, Peço desculpas por não responder os e-mails ultimamente. Estou em uma correria do cão com projetos e treinamentos, este fim de semana pretento responder todos os e-mails pendentes e colocar novos posts no blog. Ano que vem pretendo reformular o blog a fim de deixa-lo mais prático e objetivo, conto com a ajuda e compreenção de de vocês por que no inicio do ano que vem para pequenos ajustes no blog de layout e estruturação. Pretendo deixar o blog mais leve e rodando melhor e mais blogs, além de fazer uma integração mais efetiva com o meu twitter( http://www.twitter.com/diego_pacheco ), no momento estou participando mais ativamente no twitter mas pretendo escrever mais na sequencia agora. Abraços.

O Pior Débito Técnico: Desenvolvedor Preguiçoso e Sem Estudo e a Negligencia no Acompanhamento

Image
Ward Cunningham criou este termo para representar o seguinte problema: Quando desenvolvemos existe um dilema, escolher a solução melhor, com melhor design, com código mais limpo porem que demora muito mais a ser feita e claro outra opção é a solução mais bagunçada com design ruim porem mais rápida de fazer. A idéia é que a medida que fazemos código que não é tão bom, vamos aumentando o nosso débito com a qualidade do código. Muitas vezes este débito é criado para atender datas que são complidas em termos de cronogramas ou por que o desvio do projeto já é tão grande que a qualidade virou um item dispensável. Não tiro a minha parcela de dulpa na questão do débito técnico, quantos projetos nos iniciamos com as melhores intenções do mundo, como por exemplo utilizar integração contínua, Testes unitários, Refactoring e Scrum e neio do projeto algo sai errado e vai tudo por agua a baixo. Neste caso vejo que muitas vezes por estarmos acostumados com o mind set de gestão tradicional c

Groovy Power: Flexibilidade, Simplicidade e Código Legível

Image
Eu um post anterior comentei sobre a importância de se escrever um código mais fluente, ligível e auto-explicativo. Muitas vezes são com pequenas ações que podemos melhorar este aspecto sobre o código que escrevemos. Estas pequenas ações são caracterizadas com um bom disgn coeso e pouco acoplado, bons nomes de classes e métodos, variáveis com nomes significativos e código fluente e claro. Criar código fluente e claro pode ser especialemte desafiador. É facto que certas linguagens facilitam ou dificultam esta tarefa, Java não é a linguagem mais fluente do mundo mas existem alternativas. No post anterior eu ensinei a criar uma DSL com Java sem nenhum framework e com batsante fluencia. Neste post quero comentar sobre a linguagem dinamica Groovy que é a referência padrão de linguagens dinamicas para a JVM. Existem outras bem funcionais e interessantes como JRuby, BeanShell, Jython, Scala e tantas outras. Em especial hoje vou falar de Groovy, por que? Por que como desenvolvedor Java

A importância do Código Fluente em Java

Image
Não é de hoje que desenvolvemos software. Não é de hoje que temos cada vez mais facilidades para desenvolver mas ao mesmo tempo mais complexidade existe no software que produzimos. Ainda nos dias de hoje é comum achar código que não é fácil de entender. Java é a linguagem mais utilizada no mundo atualmente e é a que possui mais programas prontos rodando diariamente, mas este código Java é simples? Fácil de ler? Rápido de dar manutenção? O que ocorria antes na era do maiframe era que existia uma preucupação muito grande em "dizer" ao computador o que fazer então a grande preucupação era em fazer o computador entender o que você quer e as precupações da época eram mais com processador, gerência e otimnização de memória, etc... Mainframe De lá para cá as coisas mudaram. Na verdade sempre vamos ter mudanças, hoje em dia vejo que é muito importante você escrever um código fácil de ler, rápido de dar manutenção do que o código mais otimizado por que como já dizia o Donald

TDC 2009: Floripa eu fui

Image
 Acabei de chegar do TDC 2009 , estou em casa, morto de cansaso mas feliz. Foi um grande evento. Quando cheguei domingo em Floripa(08/11/2009) fiquei um pouco triste que o tempo estava muito ruim e perdi a praia, tive que me contentar com um chopp com meus amigos Giuliano, Simundi e Metz. Foi um pecado estar em Floripa com aquele tempo. Visão do Hotel - Com tempo ruim :( No chegando o grande dia dia 09/11/2009, que por sinal estava muito melhor do que domingo :D Acordei cedo, tomei café e fui para o hotel da conferência, chengando quem eu encontro na porta do hotel??? Bom vou deixar as duas fotos a baixo "falarem por mim". Eu e o Rod Johnson(SpringSource) Simundi, Eu, Rod Johnson, Giuliano e Metz Bom só com este inicio já era o suficiente, poderia ir para casa :) Fiquei para ver o evento. A primeira palestra foi a do Rod Johnson que era sobre o futuro do Java daqui a 5 anos, algumas coisas importantes que ele mencionou: Ruptura, grande mudança de paradigma Clo

Perdendo o medo de mudar código

Image
Hoje em dia, cada vez mais e difícil fazer um sistema do zero, sempre é necessário realizar integrações com outros sistemas da empresa, sistemas de fornecedores, sistemas do governo e principalmente sistemas legados. Hoje em dia ainda que pareça absurdo a maioria dos projetos não trabalham com testes unitários, concordo que nem sempre será possível trabalhar com testes unitários por que as vezes você não tem o que testar, ou a lógica esta em outra aplicação/camada/tecnologia ou o tempo para realizar versus o beneficio não se paga. Qualquer linguagem OO moderna tem bons frameworks de testes unitários, falando de Java e .NET existem vários, mas mesmo assim existem muito e muitos sistemas feitos sem testes unitários, não usar este nível de testes além da perda da regressão(Falando de unidade) existem outros problemas. O Medo de mudar o código Medo de Mudar código? Acredito que o ponto seja este mesmo. No final das contas os desenvolvedores ficam com medo, literalmente, logo ac

Extensão do Curso de Spring Framework

Pessoal, é com orgulho que venho publicar o primeiro anexo de atualização e novos recursos ao curso de Spring Framework . O curso que disponibilizei era focado em Spring 2.X sendo que todos os recursos eram válidos para o Spring 2.5, agora neste anexo vou mostrar as novas facilidades de anotações do Spring 2.5 e bem como novos recursos como JMX, JSF e testes com o TestNG, vários destes recursos já existiam no spring 2.0 mas não estavam presentes no curso, agora você pode utilizar estes recursos nesta nova apostila que é incremental a apostila do curso. Confira o conteúdo detalhado deste anexo: Anotações @Required @Autowired @Qualifier @PostConstruct @PreDestroy @Service @Repository @Component @Resource Testes com anotações e TestNG AbstractTestNGSpringContextTests @Test Integração com JSF e Jboss RichFaces Configuração de toda aplicação e utilização Expondo Beans com JMX MBean Exporter Para este anexo que chamei de Anotações e Web você tem a disposição os sli

Seja Inteligente e não use Agile

Image
Você não precisa ser agile, você pode fazer um projeto e ter sucesso sem usar agile. Mais softwares foram feitos sem agile ou qualquer metodologia, leia-se AD-HOC, do que com métodos agéis. Neste posto gostaria de esclarecer o diversos enganos que os ditos "agilistas" erram quando falamos de processos tradicionais e desenvolvimento de software. Em outro post depois falar dos pontos positivos, ou seja, do que é bom mesmo. Mas neste post vou focar neste equívocos que o pessoal comente ou omitem de propósito. Vou falar de algumas falácias também... Hoje em dia muitos colocam como os métodos ágeis sendo a única solução que funciona para o desenvolvimento de software, será que isso é verdade, será que não existem outras opções? Será que esta é a única solução e será que isso funciona sempre e não tem defeitos. Primeiro Passo: Escolhendo as palavras mágicas Palavras Mágicas Não posso negar o marketing dos caras é bom. Qual metodologia você gostaria de usar, para facilitar

Interoperabilidade na prática JEE 5(JBoss) com .NET (C# framework 3.5) parte 2

Image
No post anterior mostrei como criar um Webservice em Java EE5 usando EJB3 e rodando a aplicação no JBoss AS 5.1, o webservice foi consumido em uma aplicação C#. Tudo isso foi possível por que as duas implementações(java e .net) implementam WS-I Basic Profile. Neste post vou mostrar como criar um Webservice em Aspx usando C# como linguagem de implementação e vamos consumir este Webservice com uma aplicação Java usando o Jax-WS. Antes de começar vamos as dependências para execução destas aplicações. Dependências das Aplicações Java JDK 6_16 Jax-WS 2.1.x eclipse 3.4.x Visual Studio 2008 SoapUI Aplicação .net Agora vamos criar a aplicação .net que disponibiliza um Webservice. Abra o visual studio 2008 e crie uma aplicação do tipo ASP.NET Web Service, o visual studio vai criar um código de exemplo com um olá mundo, nos vamos modificar este código. Atenção : O Visual Studio se perde quando mudamos o namespace e o nome da classe do Webservice, você precisa abrir o arquivo a

Interoperabilidade na prática JEE 5(JBoss) com .NET (C# framework 3.5) parte 1

Image
O desenvolvimento de software corporativo de hoje tem que suportar a interoperabilidade de serviços entre diversas plataformas, neste post vou mostrar como podemos fazer serviços/aplicações escritas em Java com JEE 5 no Jboss 5.1 conversar com uma aplicação C# com .net Framework 3.5 . Vou realizar esta conversa usando Webservice, tanto a solução do lado do Java como a solução do lado do .Net precisam implementar WS-I Basic Profile 1.1 , quando criamos um Webservice com C# no .net Framework 3.5 ele já implementa WS-I Basic profile 1.1 o mesmo acontece ao utilizarmos do lado do Java o Jax-WS 2.x . Como vou rodar a solução Java no JBoss AS 5.01GA vamos estar utilizando o JBoss WS . Interoperabilidade de Webservices Na prática webservices não são 100% interoperaveis, ainda existem diversos gaps para realizar a comunicação, mas existe uma organização que é a WS-I que define os padrões de comunicação para padronização de interoperabilidade de webservices. No total existem mais de 50 e