sexta-feira, 25 de maio de 2012

PHP One-liners ou Incríveis coisas que você pode fazer em PHP com apenas uma linha de código

Uma linguagem de programação é considerada expressiva quando você consegue fazer coisas úteis sem precisar escrever muito código. Devido a sua extensa biblioteca de funções e sua natureza dinâmica a linguagem PHP é uma linguagem expressiva. E aqui vão alguns exemplos desta expressividade.

1. Validar Email


2. Converter Endereço IP para um número inteiro e vice-versa(útil para armazenamento)



3. Filtrar uma lista de números(usa closures)


4. Ler um arquivo


5. Somar uma lista de números



6. Achar o menor ou maior número de uma lista



7. Gerar e imprimir o alfabeto


8. Imprimir as linhas de um arquivo ignorando as linhas vazias



9. Gerar uma senha de 8 caracteres aleatória

10. Comprimir e descomprimir uma string muito longa




Espero que seja útil.

sexta-feira, 4 de maio de 2012

Coisas que você não deve colocar no Banco de Dados

Em minhas andanças pela internet eis que me deparo com um ótimo artigo chamada "Três coias que você nunca deve por no banco de dados". É um ótimo artigo, recomendo a leitura.

Basicamente ele fala que evitar armazenar dados binários(imagens, arquivos...), dados efêmeros (informações que são usadas por um curto período de tempo) e logs.

Eu concordo com o que é dito no artigo. Mas venho aqui falar de outra coisa que jamais em hipótese alguma você deve armazenar no banco de dados. Estou falando de CÓDIGO. E aqui estou falando de código mesmo, o mesmo código que você escreve quando está criando uma aplicação.

"O quê? Armazenar código? Isso é totalmente estúpido, quem em sã consciência faria isso?" Devem ser perguntas que permeiam sua mente agora. Mas me pesa muito dizer que já vi isso no mundo real, em uma aplicação web, e o pior de tudo é que eu tive que dar manutenção neste pesadelo.

Veja, com uma parte do código de sua aplicação armazenada no banco de dados coisas simples e corriqueiras como testar sua aplicação, corrigir um pequeno bug, versionar a aplicação, atualizá-la e simplesmente ler o código se tornam tediosas, demoradas e tremendamente propensas a erros.

Quando ocorre um erro no seu código o erro está no código que está dentro ou fora do banco de dados? Ou é um erro que depende de mudanças nos dois códigos? Quando você quiser ler o código para saber o que está errado você tem que manter sua IDE ou editor de texto abertos juntamente com um cliente de banco de dados. A cada novo trecho de código que você quiser ler você tem que fazer uma consulta no banco de dados. E quando você fizer uma alteração no código armazenado no BD você necessitará fazer uma operação de atualização no BD e depois rodar sua aplicação, torcendo para que não tenha cometido nenhum erro de sintaxe ou vai ter que refazer todo este processo. E como desenvolver em conjunto com uma equipe? Os desenvolvedores vão trabalhar juntos em um mesmo banco de dados e correr o risco de um sobrescrever alterações do outro? Ou cada vai ter seu banco de dados e depois sabe-se lá como eles vão sincronizar os códigos de cada um.

Olha eu já vi ideias ruins na área de TI, e algumas delas são minhas mesmo, mas isso de armazenar código da aplicação no banco de dados é de longe a mais abominável de todas. Aqui fica o aviso amigos.