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:
- Não comentar seu código apropriadamente com algo como phpDoc.
- Não ver a necessidade e/ou benefício de uma boa IDE de programação
como Zend Studio ou Eclipse PDT. - Nunca ter usado uma forma de controle de versão como Subclipse.
- 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.
- Não usar uma metodologia consistente.
- Não escapar e/ou propriamente validar entradas ou consultas SQL.
- Não planejar sua aplicação minuciosamente antes de começar a codificar.
- Não usar desenvolvimento guiado a testes (TDD).
- Não programar e testar com error reporting on.
- Não ver os benefícios de um debugger.
- Não refatorar seu código.
- Não separar camadas diferentes usando algo como MVC.
- Não saber o significado de: KISS, DRY, MVC, OOP, REST.
- Não retornar conteúdo mas sim echo ou print de suas funções
ou classes. - Nunca ter visto a vantagem de testes unitários ou teses em geral.
- Retornar HTML, não dados, string ou objetos.
- Mensagens e parâmetros de configuração hard code.
- Não otimizar suas consultas SQL.
- Não usar __autoload.
- Não admitir manipulação de erros inteligente.
- usar $_GET no lugar de $_POST em qualquer ação destrutiva.
- Não saber como usar expressões regulares.
- Nunca ter ouvido sobre SQL injection ou cross-site scripting.
- 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.
- Não entender os benefícios e limitações da programação orientada a objeto.
- POO imprópria / tudo o que escrever, não importa o quão pequena é OO.
- Pensar que reuso de software é igual/requer que seu código seja OO.
- Não escolher padrões inteligentes.
- Não ter apenas um arquivo de configuração.
- Não querer que o conteúdo dos arquivos seja visto, mas para isso usar uma extenção .INC ao invés de .PHP.
- Não usar camada de abstração de banco de dados.
- 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.
- Não fazer uma função/classe/método fazer somente uma coisar e não faze-las interagir.
- Não tentar usar as vantagens das características específicas da POO como classes abstratas, interface, herança, polimorfismo e modificadores de acesso.
- Não otimizar o design da sua aplicação com padrões de projeto estabelecidos.
- Não permitir seu usuário definir um diretório base se tiver múltiplos arquivos e/ou diretórios.
- Popular o namespace global, uma opção é prefixar as funções na sua biblioteca com uma string em comum.
- Não permitir um prefixo de tabela quando usar tabelas de banco de
dados. - Usar um template engine separado.
- 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.
11 comentários:
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.
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.
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
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.
Acabei de descobrir que eu sou um reles programador php...
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
Kct lá estou, na pressa, engolindo letra...
Quando eu abro uma págia web ... leia-se, ... página...
Obrigado Jorge,
Esta lista realmente não é para ser seguida à risca, mas serve para alertar muitos programadores sobre seus códigos.
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.
Alguem que escreve "Infelismente" não é programador.
Não acho que usar ide's como eclipse me torne rele, não tem nada aver eu uso e notepad
Postar um comentário