quarta-feira, 6 de fevereiro de 2008

40 sinais de que você realmente é um reles programador PHP

Eu estava trabalhando em uma lista de "pecados" para programadores PHP, mas o Reinhold Weber se adiantou. Melhor, porque a lista dele é bem maior que a minha :)
Resolvi fazer uma tradução livre. Vamos lá:

Isto é o que eu prefiro chamar de minha "lista de programação da vergonha".
Embora tendo uma educação universitária formal com aulas sobre engenharia de software, arquitetura de software empresarial e design de banco de dados eu tenho sido culpado por todas essas coisas uma vez ou outra.
A lista é completamente subjetiva e baseada no Eclipse.

Você é um reles programador PHP se:


  1. Não comentar seu código apropriadamente com algo como phpDoc.

  2. Não ver a necessidade e/ou benefício de uma boa IDE de programação
    como Zend Studio ou Eclipse PDT.

  3. Nunca ter usado uma forma de controle de versão como Subclipse.

  4. Não adotar algum padrão de código/nome e convenção geral e insistir com eles, pelo menos, ao longo de todo o projeto.

  5. Não usar uma metodologia consistente.

  6. Não escapar e/ou propriamente validar entradas ou consultas SQL.

  7. Não planejar sua aplicação minuciosamente antes de começar a codificar.

  8. Não usar desenvolvimento guiado a testes (TDD).

  9. Não programar e testar com error reporting on.

  10. Não ver os benefícios de um debugger.

  11. Não refatorar seu código.

  12. Não separar camadas diferentes usando algo como MVC.

  13. Não saber o significado de: KISS, DRY, MVC, OOP, REST.

  14. Não retornar conteúdo mas sim echo ou print de suas funções
    ou classes.

  15. Nunca ter visto a vantagem de testes unitários ou teses em geral.

  16. Retornar HTML, não dados, string ou objetos.

  17. Mensagens e parâmetros de configuração hard code.

  18. Não otimizar suas consultas SQL.

  19. Não usar __autoload.

  20. Não admitir manipulação de erros inteligente.

  21. usar $_GET no lugar de $_POST em qualquer ação destrutiva.

  22. Não saber como usar expressões regulares.

  23. Nunca ter ouvido sobre SQL injection ou cross-site scripting.

  24. Não permitir configuração simples, podendo ser parâmetros passados a um construtor de classe, métodos set/get chamados depois, ou constantes definidas em runtime.

  25. Não entender os benefícios e limitações da programação orientada a objeto.

  26. POO imprópria / tudo o que escrever, não importa o quão pequena é OO.

  27. Pensar que reuso de software é igual/requer que seu código seja OO.

  28. Não escolher padrões inteligentes.

  29. Não ter apenas um arquivo de configuração.

  30. Não querer que o conteúdo dos arquivos seja visto, mas para isso usar uma extenção .INC ao invés de .PHP.

  31. Não usar camada de abstração de banco de dados.

  32. Não manter o DRY, Don't repeat yourself(Não se repita). Se tem que copiar e colar ou duplicar algo no seu código seu design deve estar errado.

  33. Não fazer uma função/classe/método fazer somente uma coisar e não faze-las interagir.

  34. Não tentar usar as vantagens das características específicas da POO como classes abstratas, interface, herança, polimorfismo e modificadores de acesso.

  35. Não otimizar o design da sua aplicação com padrões de projeto estabelecidos.

  36. Não permitir seu usuário definir um diretório base se tiver múltiplos arquivos e/ou diretórios.

  37. Popular o namespace global, uma opção é prefixar as funções na sua biblioteca com uma string em comum.

  38. Não permitir um prefixo de tabela quando usar tabelas de banco de
    dados.

  39. Usar um template engine separado.

  40. Não dar uma olhada em frameworks estáveis para inspiração, muitos deles tem avançados conceitos de desenvolvimento web e boas práticas no código.
Como o post ficou grande, deixo os comentários com vocês.