Após um bom tempo sem postar venho com uma recomendação.
Não faz muito tempo, em meu post sobre Delphi e Visual Studio como IDEs para PHP falei no Eclipse, agora venho fazer um resumo e recomendação sobre esta IDE.
O Eclipse é uma IDE produzida inicialmente para Java, mas que possui plugins para diversas outras linguagens, assim podendo ser usado para desenvolvimento em C/C++, Ruby, Python, e claro, PHP. Acontece que o Eclipse é, ao meu ver, a segunda melhor IDE para programação com PHP, perdendo apenas para o Zend Studio, porém, livre, mais leve, e até mesmo com mais recursos, isso porque você pode adicionar mais ferramentas para editar arquivos HTML, JS, SQL, e até fluxogramas e ferramentas gráficas.
Ademais ele conta com um excelente controle de projetos, ajuda de contexto (inclusive para classes definidas pelo usuário) e suporte a controle de versão com CVS ou SVN.

O Eclipse pode ser adquirido pelo website oficial ou em distribuições customizadas para diversas linguagens. Eu recomendo o EasyEclipse para PHP, que pode ser aquirido aqui. Lembrando que mesmo as distribuições podem ser customizadas para adicionar mais e mais recursos. Ele também pode ser instalado via ap-get no Debian ou Ubuntu, mas as distribuições customizadas parecem bem mais completas e funcionais.
Recomendado!

Na última sexta-feira meu professor de DSI (Desenvolvimento em Sistemas de Informação) apresentou uma nova abordagem em desenvolvimento de software com a aula mais dinâmica que já tive. Trata-se da Extreme Programming (XP) .
Esta é uma nova metodologia de desenvolvimento de software (com cerca de 8 anos), voltada a interatividade com o cliente, ao trabalho em grupo e a dinâmica. Recomendada para desenvolvimento de softwares com requisitos vagos e que necessitem de constantes mudanças.
É baseada nas seguintes regras e práticas:
- Planejamento
- Problemas do usuário
- São escritos pelos clientes especificando o que o sistema deve fazer por eles;
- Estes Problemas assemelham-se ao uso de cenários, mas não limitados a descrever uma interface e são expressados em cerca de três sentenças escritas pelo cliente;
- Plano de Lançamento
- Após os Problemas serem escritos, encontros são realizados para para criar o Plano de Lançamento;
- Este Plano de Lançamento especifica que cartões serão implementados para cada lançamento e as datas destes lançamentos;
- Lançamentos Periódicos
- O Time de desenvolvimento deve liberar pequenas versões interativas aos clientes periodicamente;
- No próximo encontro os clientes expõe suas opiniões e satisfações sobre o projeto (Teste de Aceitação), o que permite ao time melhorar este de acordo com as necessidades do cliente;
- Velocidade do Projeto
- A Velocidade do Projeto é medida conforme quanto trabalho é realizado no projeto;
- Para medí-la, simplesmente adicione as estimativas de cada Problema resolvido durante a iteração;
- O projeto é dividido em Iterações
- Desenvolvimento iterativo adiciona agilidade ao processo de desenvolvimento;
- Divida o projeto em cerca de uma dúzia de iterações com uma a três semanas de duração;
- Mantenha essa duração constante durante o projeto, é esta constante que torna a medida de progresso e o planejamento simples e confiável na XP;
- Plano de Iteração
- Uma reunião é feita no início de cada Iteração para criar o plano daquela Iteração, os trabalhos de programação a serem realizados;
- Problemas são escolhidos pelo cliente para esta Iteração, a partir do Plano de Lançamento, na ordem do mais importante para cliente primeiro;
- O total de problemas é estimado de acordo com a velocidade do Projeto da última Iteração;
- Testes de Aceitação falhos e que precisem de reparos também são selecionados;
- Estes Problemas do Cliente e Testes de Aceitação são divididos em tarefas e anotados em Cartões;
- Enquanto os Problemas são descritos na linguagem do Cliente, os Cartões são escritos na Linguagem doProgramador;
- Programadores responsabilizam-se por estes Cartões e estimam quanto tempo suas tarefas levarão para serem completadas (geralmente 1 a 3 dias);
- Mude os Papéis
- Os papéis de cada membro do time de programação devem ser trocados constantemente para evitar desperdício de conhecimento e “codificação viciada” destes;
- Se apenas um membro é capaz de trabalhar em certa área, será um problema se esta pessoa sair do projeto ou você pode acabar com acumulo de tarefas para este;
- Reuniões em pé
- Uma reunião em pé é realizada diariamente;
- Comunicação entre o time de projeto é a intenção desta reunião;
- O conhecimento de cada um é dispersado e compartilhado, assim como uma visão geral do andamento do projeto;
- Reuniões em pé tentem a ser rápidas e dinâmicas, e impede que o time distraia-se com futilidades;
- “Conserte a XP quando ela quebrar”
- Nào dizemos ’se’ porque obviamente serão necessárias modificações e adaptações para cada projeto;
- Não exite em descartar as opções que não funcionarem e adicionar novas.
Estas são as práticas da fase de planejamento, não pretendo me extender aqui a ponto de descrever todas as fases, mas vou ressaltar alguns outros pontos importantes:
- Simplicidade
- Um projeto simples leva menos tempo para ser desenvolvido que um complexo;
- Sempre faça o mais simples possível que funcione;
- O Cliente está sempre disponível
- Um dos principais requerimentos das Programação XP é comunicação constante com o cliente, preferencialmente face a face;
- Não apenas para ajudar a equipe de projeto, mas sim como parte da própria equipe;
- Programação em duplas
- Toda a programação a ser incluída no projeto deve ser realizada por duas pessoas trabalhando juntas no mesmo computador;
- Programação em duplas aumenta a qualidade do software sem impacto no prazo de entrega.
É notavel na programação XP que suas práticas são voltadas muito mais para a programação do que para a documentação e planejamento do projeto. Isto pode causar um grande impacto sobre os tabus de que a documentação é até mais importantes que a programação em si. Obviamente a documentação não deve ser descartada, mas também pode ser realizada dinamicamente durante os encontros/reuniões, desde anotações simples até gravação das sessões.
O suporte também não fica prejudicado pela falta de documentação apropriada. Uma vez que o conhecimento sobre o projeto é difundido sobre a equipe, fica relativamente fácil realizar modificações e aprimoramentos.
A imagem a baixo é um diagrama interativo da metodologia de programação XP. Hospedado em http://www.extremeprogramming.org/, que também foi minha maior fonte para este artigo. Leitura recomendada…

Fontes: http://www.extremeprogramming.org, http://en.wikipedia.org/wiki/Extreme_programming, http://pt.wikipedia.org/wiki/Extreme_programming
Quando construímos sistemas ou administração de sites é muito útil adicionar ajuda de contexto em alguns items (ao passar o mouse sobre um item um pequeno texto explicativo é exibido), mais ou menos assim:
Link com ajudaA ajuda de contexto vai aqui,
aparecendo somente quando o
usuário passa o mouse sobre o link
Existem várias bibliotecas JavaScript para utilizar este efeito, como a Overlib e também script.aculo.us, que tem um efeito parecido. Utilizando Js você tem efeitos mais interessantes, com a ajuda seguindo o mouse, etc, mas se precisar apenas de uma ajuda de contexto simples e leve, podemos fazê-lo apenas com CSS.
O conteito é bem simples…
Crie uma âncora <a>, com um span <span> dentro dela, que não é exibido (display:none), no estado Hover da âncora, o <span> terá ‘display:block’.
Como “um código vale mais que mil palavras”, aqui vai um exemplo:
/* Este é o estilo da âncora e span para o efeito */
a.help
{
text-decoration:underline;
}
a.help span
{
position:absolute; /* para não alterar o
posicionamento da ancora */
display:none;
}
a.help:hover
{
background-color:black; /* devido a um bug
no ie6 você deve alterar o
fundo (na verdade pode usar
a mesma cor, mas deve declará-la
aqui) do link ao passar o
mouse (???),
caso contrário o <span> não
aparecerá no ie6 */
}
a.help:hover span
{
display:block; /* por último, o <span>,
dentro do </span></span>,
fica com 'display:block' ao
passar do mouse */
/* os demais estilos deste elemento não são
necessários, apenas para melhorar o visual
e você pode alterá-los a vontade*/
margin-top: 0px;
margin-left: 10px;
border:1px solid white;
background-color:#ffa303;
color:white;
text-decoration:none;
font-size:12px;
}
Após definir o estilo, o código HTML para usá-lo é ainda mais simples:
<a href="#" class="help">
Link com ajuda
<span>
A ajuda de contexto vai aqui,
aparecendo somente quando o
usuário passa o mouse sobre o link
</span>
</a>
O highslide é um visualizador de miniaturas feito em JavaScript. Ele exibe as imagens em pop-ups sobre sua página (em html, nao novas janelas), podendo ser movidos ou abertos em sequencia. O efeito visual é melhor que qualquer visualizador de imagens já visto, mesmo em sistemas operacionais. Veja minhas imagens e screenshots para ter uma idéia. Vou mostrar aqui como intalar o plugin para Wordpress e como adicionar automaticamente o highslide a TODAS as imagens do blog, sem precisar editar os posts antigos.
O visualizador de miniaturas Highslide é free para uso não-comercial, e custa $29, dólares para cada domínio deu8m website comercial, então, caso você possua um blog comercial (?) você deverá pagar pelo Highslide.js. Veja a licença.
Primeiramente, baixe e instale o plugin wp-highslide (descompacte-o dentro de uma pasta ‘highslide’ em wp-content/plugins/) e também baixe a biblioteca highslide (copie apenas o arquivo highslide.js para dentro de wp-content/plugins/highslide). Após isso vá em ‘Plugins’ (ou ‘Extenções’, em português), na administração de seu blog e ative o wp-highslide. Com isso você terá o plugins instalado, podendo usar a tag <highslide></highslide> para adicionar miniaturas usando a biblioteca, o que é um saco. Então, para facilitar as coisas, vá em ‘Opções’ e clique em ‘wp-highslide’, ajuste as opções como deseja e em ‘JAVASCRIPT settings’ adicione o seguinte:
Caso seu tema não utilize ‘prototype‘ (um framework JavaScript), adicione no início do textarea o seguinte código:
<script>
src="http://prototypejs.org/assets/2007/6/20/prototype.js"
type="text/javascript"></script>
E abaixo da linha: ‘hs.preloadImages();’
var elements = $A(document.getElementsByTagName('a'));
elements.each
(
function(element)
{
if(element.href.endsWith('jpg')
|| element.href.endsWith('png')
|| element.href.endsWith('gif'))
{
element.className = 'highslide';
Event.observe
(
element,
'click',
function(event)
{
Event.stop(event);
var element = Event.element(event);
return hs.expand(this);
}
);
}
}
)
Isso vai adicionar automaticamente o Highslide a todos os links para imagens da página, inclusive dos posts antigos.
Últimos Comentários