Archive for the ‘Desenvolvimento + Arquitetura’ Category

CakePHP 1.3.5 Released

Monday, November 1st, 2010

CakePHP is a framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications. Using commonly known design patterns like MVC and ORM.
Since the release of CakePHP 1.3.4, there have 40 tickets resolved.
+info!

_o/
Icon The Rolling Stones

How to use PostConstruct Annotation of Spring

Thursday, October 21st, 2010

You can call methods to run essential services and load others resources that not be executed through Spring dependency injection.
To do this, you need configure a PostConstruct annotation in each method that you need call. Does not only one, but many methods.
Bellow you can see a Bean with 2 PostContruct annotation to run after construct default method.
Test it!

Utilizar Spring Annotations facilitou muito a configuração de Beans e serviços que são utilizados através da injeção de dependência.
Ao configurar um Bean utilizando annotations do Spring, você tem a oportunidade de configurar um ou vários métodos para ser executado no momento que seu Bean for carregado, ou seja, depois que o método construtor padrão ou personalizado é executado.
Para utilizar esta funcionalidade basta utilizar a annotation PostConstruct antes de cada método que se deseja executar.
Veja um exemplo prático e simples:

import javax.annotation.PostConstruct;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

@Configuration
@Scope("singleton")
public class TesteService {
 
  public TesteService() {
    System.out.println("Construtor TesteService");
  }
 
  @PostConstruct
  public void postConstruct() {
    System.out.println("Post Construct");
  }
 
  @PostConstruct
  public void postConstruct2() {
    System.out.println("Post Construct 2");
  }
        //Outros métodos | Others functionality
}

Quando você chamar esta classe utilizando a injeção de dependência, logo depois de executar o construtor TesteService, os métodos postConstruct e postConstruct2 serão executados.
Essa funcionalidade é bem legal, pois agiliza e deixa para o conteiner chamar estes métodos para carregar outros serviços essenciais, como por exemplo, abrir conexão com banco ou até mesmo utilizar algum design pattern proxy para carregar uma serviço separado.

_o/
Icon The Rolling Stones

Quem não tem, compra quem tem

Saturday, October 16th, 2010

Essa semana a HP fez o anúncio da contratação de um executivo da área de software da Nokia, ele irá atuar na área da HP destinada ao sistema operacional WebOS.
Tempos atrás a HP comprou a empresa Palm para se apossar de algumas tecnologias para poder ter mais expertise e tecnologias para brigar no mercado de smartphones e outros produtos, onde a Apple vem se destacando.
O mais legal disso, na minha opnião, foi um anúncio da HP que pretende utilizar o WebOS, que é baseado no Linux, em equipamentos como impressoras. Vamos ver se agora a HP terá forças e sinergia destas experiências para inovar em cima de produtos consagrados como o iPhone e o iPad.

_o/
Icon The Rolling Stones

Zend(PHP) to collaborete with Adobe(Flex)

Sunday, October 10th, 2010

Zend Technologies announced a collaboration with Adobe Systems Incorporated to bring together the flexibility, productivity and enterprise reliability of Zend’s PHP technologies with the user experience benefits of Adobe Flex. The two companies will deliver technologies, content and services to make it easy for enterprise developers to build rich Internet applications (RIAs) using Flex on the client and PHP on the server. These RIAs are easier to use, speed real-time decision-making and increase employee productivity.

Zend and Adobe plan to optimize the experience for developers using their respective development environments. Zend Studio and Adobe® Flex® Builder™, both built on the open source Eclipse platform, provide robust coding, debugging, and testing tools for professional developers. Today, the two environments enable greater productivity, simplified deployment and end-to-end debugging of applications. Moving forward, Zend and Adobe plan to identify and implement cross-product integration points that optimize developer workflow and reduce development time.

+Info!
_o/
Icon The Rolling Stones

Google Developer Day Brasil 2010

Sunday, October 10th, 2010

O Google Developer Day é um evento de um dia que será apresentado conteúdo técnico sobre os mais recentes produtos de desenvolvimento pelo Google e onde você terá a oportunidade de conhecer as equipes que trabalham neles. Terá sessões sobre o Android, Chrome e HTML5, Plataforma de Nuvem e APIs do Google.
O evento ocorrerá no dia 29 de outubro de 2010 (sexta-feira).
Mas pena que as incrições já estão encerradas!
Vamos ver se o Google vai dar uma folga e transmitir pela Web.
+info clique aqui!

_o/
Icon The Rolling Stones

Lojas Renner: Usando Search Engine Optimization

Sunday, October 10th, 2010

Como noticiado no site Valor Econômico, as Lojas Renner irá iniciar a venda de roupas pela internet nesta próxima quarta-feira, dia 13 de outubro.
Notícia aqui.
Lojas Renner atua no setor de consumo no mercado da Bovespa, mesmo setor onde atua as Lojas Americanas, Lojas Hering, Light e outras pelo país. No último dia de negociação de suas ações na bolsa de valores ela fechou no dia 08/10 em R$ 64,00 e alta de 3,20%. Obs.: Quem acompanha o mercado sabe que as ações da Renner está em disparada já um bom tempo. :D E parece que nada abala suas pretenções.

Bom, vamos falar de tecnologia agora né…rs.
Na notícia veiculada acima, a Renner apostou na tecnologia Search Engine Optimization e Q&A semântico. Estas tecnologias vai permitir que o cliente da Renner faça buscas melhores no site para encontrar o que deseja. Até mesmo na pesquisa de informações nos FAQs do site sobre dúvidas de produtos. Existe várias tecnologias no mercado que permite fazer busca semântica na base de dados.
Uma dessas tecnologias que conheço é o Hibernate Search. O Hibernate Search permite que você faça uma pesquisa de texto muito legal numa base dados permitindo achar conteúdo através da semântica de palavras chaves que ele vai indexando. Você pode configurar também.

Até que enfim as empresas começaram a perceber pq o Google ganhou mercado!
Isso ae, ponto para as Lojas Renner.
_o/
Icon The Rolling Stones

Clash of converters org.directwebremoting.convert.BeanConverter

Wednesday, July 28th, 2010

When you receive this exception on dwr, you must take off the described line below that isduplicate.

<convert converter=" ...

Sometimes this exception is launched because you have two entries with same name to distinct classes names.
Remove it!

Quem ai é desenvolvedor Java já deve ter passado pelo problema de utilizar o Dwr e receber a seguinte exceção:
Clash of converters Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter

Então, hoje tive esse problema. E como o arquivo de configuração do Dwr(dwr.xml) do projeto que estou trabalhando é gigante, não tinha olhado muito para ele, pois a minha IDE não estava reclamando de erros no xml.

Mas vendo a mensagem de erro melhor, vi que o erro era uma entrada duplicada no arquivo dwr.xml na seguinte linda:

<convert converter=" ...

Ou seja, esta linha tinha duas ocorrências que estava com o nome lógico apontando para classes diferentes.
Retirado a duplicidade, o erro foi embora.
Bom, fica a dica.
Fiz este pq percebi muita gente mundo a fora com o mesmo problema, mas ninguém deu uma resposta objetiva, então fica aqui a dica de um dos possíveis problemas que causa esta Exception.

Valeu _o/
Icon The Rolling Stones

Eclipse Helios support for Apache Tomcat 7.0

Sunday, July 25th, 2010

Apache Tomcat still in beta version, but the new version of Eclipse IDE comes with support for it.
Tomcat 7.0.x implements the Servlet 3.0 and JSP 2.2.
You can see more details and features here: Apache Tomcat 7.0.x and Eclipse Helios.

Valeu _o/
Icon The Rolling Stones

Server game!

Tuesday, June 1st, 2010

Yes! Downloaded code! Now understand the architecture to help the devs improve the service. #server-game

Finalmente achei algo legal para brincar nas horas vagas. Fiz a inscrição em um fórum, e estou instalando tudo o que é necessário para ajudar os desenvolvedores a melhorar o servidor de jogos online.

Isso ae _o/
Icon The Rolling Stones

Quem decide a tecnologia? A equipe de TI ou o cliente?

Sunday, May 2nd, 2010

O cliente precisa de um software que faça algo legal que esteja precisando. Pesquisa as empresas que fornecem o software ou as empresas que desenvolva o novo software. Em seguida avalia o custo e os benefícios que cada empresa pode oferecer e o tempo para ser adquirido. O contrato é fechado.

Bem, esse é um simples caso de como pode ocorrer a compra de um sistema ou serviço por uma empresa.
Existe algumas variações que podem envolver muitas outras variáveis nesse contexto.

Quando um contrato é fechado entre o cliente e o prestador de serviço, alguns pontos devem ser analisados, obrigatoriamente, tanto pela empresa cliente como pela empresa fornecedora do serviço de TI.
Focando no aspecto de arquitetura e tecnologia, deixo as perguntas:
Quem decide a tecnologia? A equipe de TI ou o cliente?

Recentemente trabalhei em um projeto onde o cliente possuia uma equipe interna de TI. Essa equipe tinha conhecimentos de administração de redes, suporte e desenvolvimento. Ao perceberem que o software em desenvolvimento por nós tinhas algumas tecnologias X, Y e Z, solicitaram que fosse retirado a tecnologia Y e Z, e no lugar fosse utilizado a tecnologia W.
Vários foram os motivos desta solicitação: Performance, Manutenção e Complexidade foram os mais discutidos.

Sou desenvolvedor, e temos que confessar que, quando solicitado para desenvolver um sistema já pensamos direto na tecnologia A que gostamos e achamos legal. Não é verdade? Ou até mesmo aquela única tecnologia B que conhecemos.
Sem ao menos pensar se isso será bom para o cliente ou não, se ele quer ou não, muitas equipes de TI impõe as vontades e desejos de seus egos que muitas vezes é ruim para o negócio do cliente.

Vamos nos colocar agora, somente na visão de fornecedor de serviços de TI para tentar analisar de uma forma correta o produto para o cliente. Apartir dai acho que existe 3 caminhos a seguir. Talvez você conhece outro caminho, então deixe um comentário para criticar e deixar as sugestões para a comunidade.

#1: O cliente não possui equipe de TI em suas dependências:

A empresa fornecedora do produto deve analisar o negócio do cliente, as expectativas e saber desenvolver o produto de forma que suas necessidades sejam atendidas.
Neste caso, o produto poderia utilizar tecnologias que a empresa está habituada no seu dia a dia para que o tempo de criação e construção seja rápido, não tendo, portanto, uma curva grande de aprendizado da equipe.
Utilização de tecnologias novas e, diga-se de passagem, mirabolantes, podem ser utilizadas, desde que exista membros na equipe com conhecimento suficiente para resolver os problemas classificados como imprevistos ou mesmo de utilização da tecnologia.
Mas principalmente, foco 100% no negócio do cliente. Nessas horas é que o ego das equipes de TI ficam grandes para que seja utilizado tecnologias que para o cliente somente irá dificultar e causar aborrecimentos.
Tenha atenção, percepção e usabilidade.

#2: O cliente possui equipe de TI mas não irá dar manutenção no produto:

Em cliente que possui uma equipe de TI, mas que não é especializada em desenvolvimento, é comum que eles conversem e perguntem qual tecnologia irá ser utilizada.
Nessas horas também é comum que membros de ambas as equipes, cliente e fornecedor, entre em conflitos por experiências passadas ruins, pois uma não gostaria de utilizar a tecnologia que a outra pode estar palpitando ou sugerindo.
Depois de feito o levantamento de todo o negócio do cliente, a equipe de TI deste cliente costumam ser mais experientes e procuram saber se a equipe de TI fornecedora do serviço tem experiência com as tecnologias que serão utilizadas. Nessa hora é que pode gerar algum conflito e interesse que a tecnologia M e X sejam excluídas e adicionada a tecnologia Y.
A equipe de TI fornecedora deve ter sua metologia de desenvolvimento e dados concretos que prove que as tecnologias empregadas no serviço serão de fato as necessárias para suprir a necessidade do cliente.
Resumindo, a equipe de TI tem que estar afiada e experiente no uso de tecnologias para não deixar o cliente em apuros nos momentos de imprevistos ou urgências.

#3: O cliente possui equipe de TI com conhecimentos de desenvolvimento e manutenção de software:

Se o cliente possui toda uma equipe de TI que pensa e ajuda a empresa a crescer, e ele te escolheu para ser o fornecedor, então é pq ele sabe o que você faz e como faz. Parabéns!
Empresas assim até conseguem agilizar o processo de desenvolvimento do produto. Eles tem expertise e sabem o será bom para eles. Possui tb toda uma infra-estrutura que irá receber o seu produto. E sabe muito bem que se o produto for construído com uma arquitetura ABC utilizando as tecnologias X, Y e Z, ela irá perder performance.
A equipe de TI fornecedora, tem que definir muito bem o negócio e ser receptível com críticas construtivas. Mas e as críticas destrutivas? Relaxe, basta apresentar os dados e o sucesso que sua arquitetura e tecnologias tiveram no passado com outros clientes.
Claro que metologias novas de desenvolvimento é sempre bem vista quando se tem tempo de aprender sem apertar o cronograma.
Então fique atento e estude a necessidade alvo objetivo.

E vc? É quem decide a tecnologia, ou é o cliente, ou são ambos?
Acho válido esta discussão, pois muitas equipes deixam a razão e os objetivos e acabam se perdendo durante o ciclo de desenvolvimento, e consequentemente o cliente.

Deixe seu comentário!
Valeu _o/
Icon The Rolling Stones