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.

12 comentários:

Paulino Michelazzo disse...

Eu não sei se estou muito velho ou se estou muito crítico mas a lista é no mínimo capciosa.

Dizer que um programador é reles porque não usa Eclipse/Zend? Diga isso ao Rasmus que não usa. A mesma coisa fica para OOP. Será que OOP é mesmo totalmente necessária para que um programador não seja chamado de reles?

Alguns dos conceitos estão corretos e não somente para PHP. Entretanto, outros... lamentáveis.

Raphael de Almeida disse...

Paulino,

Também achei a lista altamente tendenciosa ao Eclipse.
Reinhold Weber é mais design do que programador e ele realmente gosta do eclipse para dizer quer:
"A lista é completamente subjetiva e baseada no Eclipse.". Gosto é gosto, né!? :)
Mas OOP e PHP é um dos assuntos inacabados da comunidade. Alguns gostam, outros odeiam, eu acredito na flexibilidade independente se OO ou não.

Obrigado pelo comentário.

Guilherme Chaves disse...

Provas também dos alienados em programação....

Saudades de vc cara, acessa meu blog.

Unknown disse...

Oi Raphael de Almeida me chamo Mariana e sinto q vc vai me ajudar muito.É o seguinte:eu estou escrevendo minha monografia sobre teste de software(teste de aceitação) e vou testar um sistema para resutarante q foi desenvolvido em PHP,mostrando algumas ferramentas e escolhendo uma p testar o sistema.Só que tá muito difícil eu encontrar mayeriais sobre tais.Como vi q vc sabe um bocado e gostei da Selenium,vc me ajudaria muito se me indicasse algumas ferramentas e alguns materiais sobre elas.
estou precisando muito.Qualquer coisa meu email é:marianaaleao@gmail.com

Desde já agradeço

Anônimo disse...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the TV Digital, I hope you enjoy. The address is http://tv-digital-brasil.blogspot.com. A hug.

Rodrigo Lins disse...

Acabei de descobrir que eu sou um reles programador php...

Lobo das Estepes disse...

Raphael,

Achei interessante a lista dos 40 pecados. Não sou desenvolvedor de coisa alguma, mas sou um pentelho das coisas que o pessoal torna difícil para alguém. E no mundo da programação, o que mais tenho visto - há exceções - desenvolvedores que não comentam nada do código que usaram.

Quando eu abro uma págia web que me interessa, vou direto no fonte. Raras tem comentário em cada seção. A maioria usa scripts e cada um que se vire em localizar, e para que exatamente serve. E por aí vai.

Mesmo não concordando com alguma coisa o Post merece meus parabéns!

Abraço,

Jorge

Lobo das Estepes disse...

Kct lá estou, na pressa, engolindo letra...

Quando eu abro uma págia web ... leia-se, ... página...

Raphael de Almeida disse...

Obrigado Jorge,
Esta lista realmente não é para ser seguida à risca, mas serve para alertar muitos programadores sobre seus códigos.

Unknown disse...

Quando o autor disse: "como Zend ou Eclipse" foi apenas um exemplo. Ele não excluiu as outras IDE's. Concordo com 80% das coisas ali. Infelismente ainda encontramos pessoas que levantam dúvidas quanto aos beneficios da programação orientada a objetos.

Anônimo disse...

Alguem que escreve "Infelismente" não é programador.

Unknown disse...

Não acho que usar ide's como eclipse me torne rele, não tem nada aver eu uso e notepad