php

php

Tchelinux Porto Alegre Edição 2011

O Tchelinux é uma série de eventos organizados por usuários de Software Livre para usuários de Software Livre em várias regiões do Rio Grande do Sul. Em Porto Alegre, este ano, será sediado no prédio da FTEC no dia 26 de novembro de 2011, um sábado, das 8:30 até as 17h.

Infelizmente não estarei no Rio Grande do Sul para presenciar o evento, porém, quem estiver poderá comparecer. O evento de 2010 foi muito bom e muito melhor que o tchelinux 2009, onde palestrei. Os slides das minhas palestras se encontram no bellthoven @ Slideshare e no gustavotkg @ SpeakerDeck.com - tenho preferido este segundo ao Slideshare: mais limpo, mais elegante e com muito foco em desenvolvimento.

O Tchelinux 2011 Porto Alegre promete ser ainda melhor. Meu destaque especial é para o Coding Dojo de PHP que, tenho certeza, será um lugar para se divertir, aprender e praticar as boas práticas da programação como teste unitários, padrões de projeto quando necessário e baby steps.

Também não posso deixar de comentar a palestra do Leandro Nunes, Hands on Arduino, - uma que, com certeza, não perderia - e a sala "Trovas e Chimarrão", com o assunto livre, onde acredito que vá rolar muita troca de conhecimento!

A grade de palestras está bem diversificada, há palestras sobre Arduino, Python, PHP, Ruby, Segurança da Informação, Empreendedorismo, entre outros. Para conferir tudo isto, basta preencher alguns dados na página de inscrição. O evento é gratuito, porém os participantes são encorajados a levar 2kg de alimento não-perecível que serão doados para uma instituição que necessite.

Decorator pattern: um uso real para este padrão de projeto em php

Há um tempo atrás eu criei um artigo sobre o que é e como utilizar o decorator pattern. Ele fazia parte de uma série de posts sobre design patterns que iniciei.

Dando continuidade a esta série, hoje vou mostrar um exemplo mais real do uso dele e que talvez explique melhor a sua utilidade. O post antigo mantém-se, porém este vai ilustrar um pouco melhor.

Bom, para relemebrar: o decorator pattern tem como intenção mudar ou adicionar comportamentos de um determinado objeto sem precisar modificar sua classe.

O exemplo utilizado aqui foi retirado "do mundo real" e adaptado para o post. Acontece que um usuário poderia marcar a ordem e quais compressões um determinado arquivo deveria sofrer. Entre as possibilidades, estavam o Gzip e o Bzip.

Existem maneiras e maneiras de se resolver este problema. A escolhida foi utilizando o Decorator para retornar o conteúdo do arquivo comprimido e seu nome final, já com as extensões .gz e .bz2 definidas.

Guia completo e definitivo de como usar mod_rewrite

O meu artigo Como usar mod_rewrite de verdade fez um bom sucesso. Então, decidi fazer este artigo, que mostra como a utilização do mod_rewrite pode impactar na arquitetura de uma aplicação web, use esta aplicação um Framework ou não. Será feito uma análise de implementação de URL's amigáveis para sites de pequeno e médio porte e também como ele é utilizado em frameworks MVC.

Há um tempo, fiz um post falando sobre o porquê usar URL amigável. Muitos sites têm adotado isto, principalmente os que utilizam algum framework como Zend Framework, CakePHP, Symfony, CodeIgniter, na maioria das vezes por imposição do próprio Framework. Mas isto não é uma exclusividade do PHP, Django (Python), Ruby on Rails (Ruby) entre outros também a utilizam.

Introdução a testes unitários com CakePHP e SimpleTest

Há tempos eu venho lendo sobre XP (eXtreme Programming), Scrum e Feature Driven Development (FDD). São metodologias ágeis de desenvolvimento de software. O engraçado é que praticamente, ao meu ver, fazem a mesma coisa, porém de forma diferente. E todas elas frizam a importância dos testes unitários e, mais especificadamente, testes unitários antes do desenvolvimento, o chamado TDD (Test Driven Development). Como nunca havia trabalhado desta forma, ainda não tinha uma opinião sobre isso. Apenas comentários e depoimentos de que usa. Somado a isso, veio aquele senso de desafio, de inovação e curiosidade.

Faz alguns meses, e decidimos, eu e o Emanuel Zabka, implantar o TDD no desenvolvimento na empresa em que trabalhamos. Academicamente é falado muito em refactoring e mudanças de requisitos, mas na prática, eu nunca havia notado a quantidade de modificações que um mesmo código/classe/arquivo é modificado num curto período de tempo e a longo prazo.

Os testes me ajudaram a enxergar, não só as dependências do sistema, como também, acoplamentos desnecessários; a qualidade dos códigos; do design do projeto; e, consequentemente, diminuiu muito os bugs mais corriqueiros, como validação de campos. Mesmo tendo várias coisas boas, há coisas ruins, como aumento do tempo de desenvolvimento - o que, apesar de nunca ter medido, diminui o retrabalho e tempo utilizado no futuro em correções de bugs -, aumento da complexidade da arquitetura - a fim de manter uma maior coesão com baixo acoplamento, entre outros menos relevantes.

Como consultar a documentação do PHP direto do Vim

Olá! Descobri recentemente que é possível baixar a documentação do PHP no formato do man do UNIX. Isso é muito bom, já que assim, podemos consultar funções com parâmetros, variáveis e exemplos. Melhor, podemos fazer isso direto do Vim.

Eu já tinha lido sobre uma opção do Vim chamada keywordprg, mas nunca havia encontrado uma serventia. Quando eu li no blog do bjori, realmente me veio à mente como eu poderia utilizá-la.

Lookahead, Lookbehind e Condicionais em Expressões Regulares

Depois de muito tempo sem postar, me lembrei de algo bem interessante! Vocês podem mandar mensagens na página de contato dando sugestões de temas sobre Vim, Expressões regulares ou outra coisa que vocês gostariam de ver no blog ;p.

Expressões Regulares

Expressão regular é uma ferramenta muito forte para o tratamento de texto. É muito utilizado para substituições ou para verificar integridade dos dados, pois, através da expressão regular, vulga regex ou re, pode-se casar padrões de texto. Por exemplo:

/^[a-zA-Z0-9]+$/
Para somente caracteres alfanuméricos.

/^(\d{3}\.){2}\d{3}-\d{2}$/
Validando formato de CPF.

Esse tipo de regex é simples, valida praticamente só os caracteres que compõe uma dada string. Porém, as Perl Compatible Regular Expressions (Expressões Regulares Compatíveis com Perl), também conhecidas como pcre, permitem muito mais, inclusive utilizar condicionados (a.k.a. if's)! O que vamos falar agora é de Lookahead e Lookbehind.

Depois de muito tempo sem postar, me lembrei de algo bem interessante! Vocês podem mandar mensagens na página de contato dando sugestões de temas sobre Vim, Expressões regulares ou outra coisa que vocês gostariam de ver no blog ;p.

Expressões Regulares

Expressão regular é uma ferramenta muito forte para o tratamento de texto. É muito utilizado para substituições ou para verificar integridade dos dados, pois, através da expressão regular, vulga regex ou re, pode-se casar padrões de texto. Por exemplo:

/^[a-zA-Z0-9]+$/
Para somente caracteres alfanuméricos.

/^(\d{3}\.){2}\d{3}-\d{2}$/
Validando formato de CPF.

Esse tipo de regex é simples, valida praticamente só os caracteres que compõe uma dada string. Porém, as Perl Compatible Regular Expressions (Expressões Regulares Compatíveis com Perl), também conhecidas como pcre, permitem muito mais, inclusive utilizar condicionados (if's), porém isso é para outro post! O que vamos falar agora é de Lookahead e Lookbehind.

Várias Dicas Simples de Legibilidade de Códigos PHP

Faz um tempo que venho observando códigos que considero estranhos. Apesar de entendê-los, são necessários um esforço e um tempinho disponível. Alguns ainda exigem uns debugs ou até mesmo perguntar ao autor qual foi a intenção daquele trecho.

Baseado nisso e no comentário que recebi recentemente e inspirado pelo post de um amigo, vou fazer uma lista de coisas que proponho. São coisas simples, mas que facilitam na manutenção.

Umas das coisas que aprendi com Uncle Bob (Robert C. Martin), no seu livro Clean Code foi: escrevemos o código apenas uma vez, porém o mesmo é lido várias vezes. Então, não custa usarmos 5min a mais documentando alguma coisa ou escrevendo variáveis legíveis, que nos pouparão tempo mais tarde!

SchemaSpy - Ferramenta para Modelagem Literária

No post anterior Vimperator, comportamente do Vim no Firefox eu tinha mensionado que:

Parece radical, mas a produtividade aumenta, de certo modo. Não só na hora de programar e testar, sempre que edito arquivos no Vim, tento não usar o mouse. Claro que sempre vai ter alguma aplicação que vai te obrigar a usar o mouse, mas se pudermos evitar, melhor!

Eu continuo com esta idéia. Coisinha bonita é para cliente final. Desenvolvedores devem trabalhar com ferramentas que proporcionam o melhor uso do tempo possível, pois o bom profissional é aquele que esbanja do ócio, eis o fluxo:

  • Concluir as atividades rapidamente com eficácia e eficiência está diretamente ligado ao ócio, pois se ele tivesse feito algo mal feito, estaria corrigindo os bugs e não vendo vídeos no youtube.
  • Com tempo livre, o cérebro humano fica mais descansado e mais propício a receber insights/intuições para resolver problemas difíceis, que - e estes merecem - precisam de mais tempo e necessitam ser bem planejados.
  • Resolvendo problemas de forma criativa - talvez até inovadora -, faz com que se evite problemas futuros. Logo, se poupa tempo. Se poupando tempo, voltamos a cláusula anterior.

Parece utópico, mas eu acredito nisso. Eu acho que é possível. Basta saber onde conseguir ganhar tempo em atividades, automatizando com scripts, programas e etc, o tempo é consequência.

Como usar mod_rewrite de verdade

Rá! Hoje quero falar sobre mod_rewrite. Um módulo para o apache que permite reescrever URL's. Ele é muito útil em vários sentidos: aumenta a o page rank em buscadores, torna URL's limpas e inteligíveis, fazendo com que o usuário consiga lembrá-las muito mais rápida e facilmente.

Porém, como todos os outros artefatos que estão por aí, pode complicar ainda mais a vida de um programador, caso não seja usado adequadamente.

Syndicate content