Arquivo da categoria ‘Dicas’

O que são FEEDS?

Novembro 26, 2008

Hoje aqui na Kombo estávamos discutindo qual a melhor maneira de deixar claro para os visitantes do site, o que é um FEED. Acabei achando esse vídeo que explica de maneira clara o que é e como ler os FEEDS.

É a melhor maneira de se manter atualizado do que está acontecendo na web.

Aproveitando, quem ainda não assinou o meu FEED o endereço é http://feeds.feedburner.com/ronaldoprazeres.

O problema de comprar passagens na Gol

Outubro 13, 2008

Recentemente fui tentar comprar passagens áreas através do site da Gol, e na hora de validar o pagamento aparecia a seguinte mensagem: “Favor verificar nome do titular do cartão, cpf e data de nascimento“.

Muito bem, tentei mais de cinco vezes e aparecia sempre a mesma mensagem, até que obtive a informação que antes de ser validado o pagamento é feito uma consulta ao SERASA para ver se a pessoa não está com o “nome sujo” na praça.

Não tenho nenhuma dívida, mas o detalhe é que no SERASA a minha data de nascimento está 00/00/0000, eu nunca iria conseguir comprar as passagens. Coloquei a data de nascimento zerada e TCHARAMM!! A compra foi aprovada!

Isso deve acontecer com muitas pessoas, visto que na mesma semana meu primo foi tentar comprar e aconteceu à mesma coisa, digitou a data de nascimento 00/00/0000 e conseguiu comprar normalmente.

Caso alguém tenha esse problema, deve tentar colocar a data de nascimento zerada, que provavelmente irá conseguir realizar comprar de passagens pelo site da GOL.

Testes acompanham o projeto desde o início

Setembro 28, 2008

Como já escrevi anteriormente, fiquei surpreso em saber que os testes devem acompanhar o projeto desde o início e não somente no final de tudo.

O teste ocorre em diversos níveis, o primeiro nível são os testes unitários, que são escritos pelos desenvolvedores. O teste unitário avalia se uma pequena parte da funcionalidade está funcionando como esperado. Você não pode considerar uma tarefa concluída a menos que haja um conjunto abrangente de testes unitários pela ela. Uma implicação disso é que você não pode integrar a funcionalidade até que todos os seus casos de testes unitários tenham sido escritos e passados.

Na verdade, primeiramente deve ser escritos os testes unitários e em seguida programar o recurso para fazer o teste passar: teste, código, teste, código e assim por diante. Diversas são vantagens quando testamos primeiro:

- Os testes fornecem uma definição ou documentação do comportamento desejado.

- Você sabe quando tem a funcionalidade total e corretamente implementada. Quando o teste é aprovado, você pode dizer com certeza: “Pronto… o próximo!”.

Muito código é distribuído sem ser totalmente testado com a idéia de que você terá relatório de bugs informando sobre aquilo que realmente aconteceu. Entretanto, esse é um procedimento caro e instável. Parte do motivo é que é um problema escrever o código de teste após um bom desempenho para escrever o código de solução do problema. Esse é outro motivo para adotar a abordagem de escrever o teste primeiro. O teste se torna parte da solução.

Você tem de especificar o comportamento de alguma maneira, seja em papel ou na sua cabeça e, portanto escreva-o usando a sintaxe da linguagem na qual você está programando. Da mesma forma, trabalhar dessa maneira significa que você nunca terá de passar muito tempo escrevendo apenas código de teste. Você escreve um pouco de código de teste e em seguida escreve um pouco de código de produção. Você alterna essas duas atividades até a tarefa estar concluída.

O que você deve testar? A resposta mais simples é tudo que possa quebrar, ou seja, tudo que é primordial para o sistema funcionar.

Por falar em executar os testes, quando e com que freqüência você deve executá-los? Você deve executar com a freqüência que for possível, isso quer dizer que os testes devem ser rápidos e leves. O ideal é que você os execute, sempre que programar alguma funcionalidade por completa. No mínimo, você deve executá-los antes e depois de fazer alguma alteração. A execução antes das alterações lhe dá a confiança de ter uma plataforma estável para trabalhar, e a execução após as alterações prova que você não quebrou nada.

Dicas para iniciantes em PHP

Junho 9, 2008

Vejo muita gente que programa em PHP, mas conhece muito pouco da linguagem, orientação a objeto então passa longe.

Por isso resolvi fazer esse post, com algumas dicas/ferramentas que poderão ajudar no desenvolvimento não só de PHP, mas do seu dia a dia.

Query browser – Ferramenta para trabalhar com o Mysql de forma rápida e intuitiva (http://www.mysql.com/products/tools/query-browser/).

Smarty Template – Extremamente útil, serve para separar a programação php do layout do site, ideal para quem trabalha com webdesigner (http://smarty.php.net).

PHPMailer – Excelente classe para envio de e-mails (http://sourceforge.net/projects/phpmailer).

Toad – Comparação de estrutura, dados entre dois bancos. Excelente ferramenta, muito útil em migrações (http://www.quest.com/toad-for-mysql/).

Firebug – Plugin para o Firefox que adiciona ao navegador inúmeras ferramentas para facilitar a tarefa de desenvolvimento de páginas web. Ele possibilita a identificação e eliminação de erros de programação, edição e também o monitoramento de CSS, HTML e JavaScript presentes em qualquer página da internet (https://addons.mozilla.org/firefox/addon/1843).

Web developer – Mais um plugin para o Firefox com várias ferramentas para desenvolvedores como redimensionamento de janelas, depuração de formulários e imagens, links para validação de páginas e ferramentas de otimização (https://addons.mozilla.org/firefox/addon/60).

IDE – Cada um usa a de sua preferência, mas atualmente usamos o Notepad++ e o Nusphere. (http://notepad-plus.sourceforge.net/ e http://www.nusphere.com/)

Jquery – Framework javascript, todo desenvolvedor web deveria usar, nãoi sei como eu programava em javascript sem usar isso antes (http://jquery.com/).

XML – Aconselho a usar extensão SimpleXML do php (http://www.php.net/simplexml).

Expressões regulares – Se você está buscando algo para estudar, estude expressões regulares. Vale muito à pena (http://guia-er.sourceforge.net/ ótimo guia sobre er do Aurélio).

Fpdf – Classe que gera arquivos em pdf (http://guia-er.sourceforge.net/).

Sem falar em orientação a objetos, que por incrível que pareça muito pouca gente usa, a qualidade dos código em php ainda são muito fracos, ainda vemos muito código macarrão e POG.

Leiam livros, teve um professor meu que disse “- A pessoa que não lê pelo menos um livro relacionado a sua área de atuação, deveria se sentir envergonhada”, concordo plenamente.

Foi o que eu lembrei por enquanto.
Bons estudos!

Melhoria x Retrabalho

Junho 3, 2008

Semana passada aqui na Kombo estávamos discutindo sobre qual a diferença entre melhoria e retrabalho.
Chegamos a seguinte definição, deixando claro que o nosso foco é desenvolvimento de software.

- Melhoria: É quando um cliente já usa o produto e de alguma forma a solução já supre as suas necessidades. Quando ocorrer alguma mudança, será algo que não vai mudar a forma de como o cliente fazia antes, serão mudanças simples, sem grandes impactos.

- Retrabalho: Ocorre quando o planejamento falhou, é quando a solução nem chegou ao cliente ainda, e no meio ou no final do desenvolvimento é alterado todo o funcionamento da solução. A equipe de desenvolvimento tem que alterar tudo, gerando grande perda de tempo e custo.

Quem tiver alguma outra definição, favor comentar.

Planejar para quê?

Abril 25, 2008

Todos nos já passamos por momentos no qual sabíamos que pouparíamos muitos transtornos se tivéssemos pensado melhor no que fazer antes de agirmos.

O dito popular “quem não tem cabeça tem que ter perna” é a prova disso, porque quando agimos ao acaso, fazemos tudo às pressas e talvez com resultados frustrantes.
Por isso planejamos para poder identificar o que deve ser feito, para saber qual direção deve ser tomada. É a já conhecida questão do foco.

Sem um foco, saímos dando “tiro” para tudo quanto é lado, querendo acertar diversos alvos e acabamos na maioria das vezes não acertando nada. E com isso são feitos gastos a cada nova tentativa e temos um prejuízo com os tiros desperdiçados.

Então, quando você tiver uma idéia ou um volume muito grande de coisas para fazer e nem sabe por onde começar, planeje muito bem antes as tarefas e aí sim você pode começar a dar o primeiro passo em um projeto.

Preciso de um software! E agora?

Abril 3, 2008

Sua empresa começa a crescer e chega certo ponto que para gerir tantos processos é necessário começar a usar softwares. Algumas dicas que devem ser levadas em conta antes de comprar ou fazer um software.

1) Desenvolvimento In-house É contratado pessoas para desenvolverem o software dentro mesmo da empresa.

Vantagens
- Com o desenvolvimento do sistema dentro da empresa, pode-se ter a maior chance de que todos os pré-requisitos do sistema serão atendidos.
- Manutenção e atualização do sistema a qualquer momento.

Desvantagens
- Dificuldade na substituição de membros da equipe de desenvolvimento.
- A empresa perder foco em seu “core business” (atividade principal da empresa) e gastar tempo e recursos em “meios”. Ex: Universidade está desenvolvendo seu próprio software. Perde totalmente o foco da universidade que são os alunos e não desenvolvimento.
- Pode ser mais trabalhoso, mais demorado e mais caro.

2) Pacotes de Software

É comprado um pacote já pronto de software. Ex: Pacote de software para automação de escritórios. Atende as funções mais comuns da empresa.

Vantagens
- Redução do trabalho de projeto, programação, instalação e manutenção.
- Ganho de tempo.
- Redução de recursos internos em sistemas de informação.
-Usar um sistema já testado e estável.

Desvantagens
- Pode não atender requerimentos próprios da organização.
- Pode não atender bem muitas funções comerciais.
- A customização aumenta o gasto do desenvolvimento.
- A empresa se molda ao software quando deveria ser o inverso.

3) Terceirização
Sistemas construídos e às vezes operados por fornecedor externo.

Vantagens
- Transformação de custos fixos em variáveis.
- Liberação de recursos humanos para outros projetos.
- Liberação de recursos financeiros.
- A empresa preocupa-se com seu “core business” (atividade principal da empresa).

Desvantagens
- Perda do controle das funções dos sistemas de informação.
- Vulnerabilidade de informações estratégicas.
- Dependência de fornecedores externos no que se refere à atualização.

Até que as aulas de Gestão da informação estão servindo para alguma coisa.
No próximo post irei falar um pouco mais sobre a terceirização.

Até onde o mysql suporta?

Agosto 11, 2007

Na empresa onde trabalho, estamos desenvolvendo um software para web, de gestão de RH. Usamos PHP, Smarty, Javascript, XML, Ajax, Flash e MySQL.

Quando começamos a desenvolver não tinhamos pensando no volume de dados que seria armazenado no banco e só agora que veio a dúvida. Até onde o mysql consegue gerenciar os dados sem que haja perda de desempenho considerável?

Dando uma pesquisada pelo google acabamos descobrindo que o Flickr usa MySQL, Yahoo usa na parte financeira, entre outras grandes empresas.

Vimos alguns dados do Flickr, são mais de 800 querys simultâneas por segundo, entre outras estatísticas surpreendentes. Depois coloco o slide para quem quiser ver todos os dados. Veja mais detalhes sobre o Flickr.

Outra informação legal é que o Flickr, usa PHP e Smarty Template, justamento o que usamos aqui na empresa.

Demos uma acalmada, pois pensávamos que no futuro precisaríamos trocar de banco, mas vimos que o MySQL pode “segurar” nossas aplicações por um bom tempo com o mesmo desempenho de sempre!