18 August 2009
Mais um ótimo artigo do Guilherme Chapiewski!
Esses dias numa conferência alguém veio me contar a sua história, que era de uma empresa que nos últimos anos vinha desenvolvendo seus projetos de forma tradicional, em cascata, e que tinha gostado do que tinha visto sobre metodologias ágeis e estava pensando em tentar. Ele gostou principalmente da idéia de trabalhar com desenvolvimento iterativo e decidiu que iria tentar usar Scrum na sua empresa.
Passadas algumas semanas encontrei denovo com essa pessoa em um outro evento. Para a minha surpresa, ela me disse que sua vida estava um inferno! Os clientes não estavam dispostos a fechar contratos de escopo negociável, eles queriam saber exatamente o que e quando os projetos seriam entregues. Eles definitivamente não quiseram trabalhar com desenvolvimento iterativo, até porque os projetos já eram bem curtos (menos de 1 mês). Pra terminar, por ser uma agência pequena a equipe é de menos de 10 pessoas fazendo com que uma pessoa precise trabalhar em 3 ou 4 projetos ao mesmo tempo. E por aí vai…
Então eu perguntei: Quantos projetos davam errado antes de você começar com Agile?
E ele respondeu: Todos os nossos projetos sempre foram bem sucedidos.
E eu perguntei denovo: Então qual é o problema que você está tentando resolver usando Scrum e desenvolvimento iterativo?
(silêncio…)
Eu novamente: Ok, já entendí. Faça o seguinte, volte para o seu processo de trabalho antigo. Não sei como é mas me parece ótimo.
…. mais: http://gc.blog.br/2009/08/17/agile-nao-e-bala-de-prata/
~
17 August 2009
Até que enfim, o meu amigo José Ricardo resolveu escrever algo de útil no blog dele.
Apenas recentemente tive contato com um termo intrigante: Injeção de Dependências (Dependency Injection ou apenas DI). A primeira vez que eu o vi foi ao olhar alguns dos subprojetos do symfony que trata justamente disto. Após isto, vi outra notícia sobre injeção de dependências no Java 6. E isso tudo me deixou com uma pulga atrás da orelha, afinal, o que diabos é injeção de dependências? Para que isto serve? Nos parágrafos abaixo compartilho um pouco do que consegui aprender até agora.
Bem, a primeira coisa que eu descobri é que estamos falando apenas de mais um padrão de projetos. Em poucas palavras: Injeção de Dependências significa tirar de uma classe ou sistema a responsabilidade de instanciar suas próprias dependências [1]. Hmm, agora o termo já passa a fazer algum sentido. Já que o componente não vai mais instanciar, alguém terá que fazê-lo (injetar), certo?
E o que podem ser estas tais dependências e como instanciá-las? Considere que uma classe X precise de outra classe Y para funcionar. Uma maneira intuitiva de implementar X é instanciar um objeto de Y no construtor de X e utilizar os métodos desse objeto no restante do código de X. Se você quiser seguir o padrão de DI, entretanto, será preciso remover a instanciação de Y em X. Existem algumas alternativas para fazer esse desacoplamento:
- Fazer a injeção no construtor: uma instância de objeto da classe Y é passada como parâmetro do construtor de X.
- Fazer a injeção através de um setter: adicionamos um (ou vários) métodos à classe X especialmente para a definição de objetos das classes das quais X depende.
- Utilizar um localizador de serviços: um componente no sistema fica responsável por realizar o mapeamento dos componentes e suas dependências e instanciá-los em tempo de execução.
Resumindo para os mais pragmáticos, encontrei uma definição mais prática, porém menos genérica, que irá sanar qualquer tipo de dúvida:
“Injeção de Dependências é passar as dependências de um componente através de construtores, métodos ou através da atribuição direta de campos”
… continue lendo em http://www.josericardo.eti.br/2009/08/16/injecao-de-dependencias-em-php/
~
15 August 2009
Enviado por Tércio Martins (tercioΘpop·com·br):
“Nessa terça-feira (11/08) foi lançada a versão 0.4.3 do sistema de análise de sites Piwik, com algumas correções de bugs e novas funcionalidades.
O Piwik é um sistema feito em PHP e MySQL que gera relatórios detalhados sobre os visitantes de um site, assim como o Google Analytics.
Diferente do último, entretanto, ele permite a você disponibilizar os relatórios do seu site em tempo real para os visitantes, e também possui uma estrutura de plugins para estender as funcionalidades do sistema. Além disso, foi eleito o projeto-destaque do mês de julho no SourceForge.net.
Para baixá-lo, basta acessar o site oficial do projeto.” [referência: piwik.org]
~