Logotipo WebingPro.
Menu
Background Image
Voltar para a página anterior

O que não fazer no seu
código PHP em 2015

Postado por Gabriel Felipe em 07/01/2015 às 09:08

Background Image

Opa pessoal, primeiro artigo do ano por aqui, então aproveito a oportunidade para lhes desejar um feliz 2015 e para lhes dar um presente de natal atrasado.

Uma breve lista de 6 coisas que você precisa evitar em 2015. É possível que você já não faça uma ou mais das coisas que vou listar, se for o caso, parabéns! Mas a última é um trabalho constante.

1 – Usar uma versão desatualizada

Usar uma versão desatualizada é horrível. Além de te impedir de usar todos os recursos legais disponíveis desde então, te deixa na mão quanto a segurança. Isto é, você vai estar usando um software que tem falhas de segurança conhecidas e que ninguém vai fazer nada a respeito.

“Ah! É fácil falar, mas as hospedagens não dão suporte as novas versões.”  você sobre o parágrafo acima.

Bem, isso é verdade infelizmente. Porém, por isso eu falei que você precisa evitar essas coisas. Normalmente você tem o poder de escolher qual hospedagem vai utilizar, e basta consultar quais suportam a versão mínima que você ainda precisa. Atualmente é a 5.4.

Mas o meu conselho na verdade é mudar de abordagem, se você tiver condições, e for rodar o seu próprio site, contrate um vps, existem vários muito baratos e você terá poder total sobre a versão do software utilizado. Dê uma olhadinha na Digital Ocean, por exemplo.

Mas outro ponto  é que se todo mundo utilizasse as versões novas do PHP, as hospedagens se veriam obrigadas a se atualizarem pois do contrário ficariam sem clientes. Tem um post muito bom que ilustra bem o problema e a solução:  On php version requirements é em inglês, mas vale a pena! Ele cita por exemplo, o fato de algumas ferramentas muito conhecidas e utilizadas, como WordPress e Code Igniter suportarem versões anteriores a 5.2 do PHP, e taxa isso como absurdo e irresponsável. Pois se ferramentas desse porte exigissem uma versão superior, automaticamente as hospedagens respeitariam, pois elas dependem em grande parte dessas ferramentas. Eu concordo com essa visão, que pode ser vista mais claramente no post linkado.

Gostaria apenas de deixar claro que não estou falando que WordPress ou Code Igniter não sejam boas ferramentas que cumprem bem o seu papel, pelo contrário, esse blog é inclusive mantido utilizando WordPress. Estou apenas discutindo o fato de eles suportarem uma versão antiga do PHP e o motivo pelo qual isso é problemático.

Bem, atualize sua versão PHP sempre, se possível utilize a última, do contrário utilize a última com atualizações de segurança e se nenhuma dessas for possível, considere trocar de hospedagem. Você pode consultar as versões suportadas do PHP aqui.

2 – Programar sem padrões

“o que importa não é eu ou você concordarmos, mas a comunidade como um todo chegar a um consenso.”

Padrões são bons, a comunidade como um todo se entende melhor quando os programadores escrevem do mesmo jeito.  Sendo assim, escolha um padrão e adote ele nos seus códigos. Eu estou adotando todos da FIG ainda não consegui adotar todos, mas estou caminhando nessa direção, sugiro que você faça o mesmo.

Algumas coisas realmente deixam o código melhor, outras são apenas questão de gosto. De algumas poucas coisas eu discordo, e é possível que você venha a discordar também, mas no final do dia, o que importa não é eu ou você concordarmos, mas a comunidade como um todo chegar a um consenso.

3 – Não utilizar PDO

“The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-specific PDO driver to access a database server.” Trecho da documentação.

O que esse parágrafo diz é basicamente que PDO é uma interface comum que diversos drivers de bancos de dados diferentes (mysql, mssql, postgreSql) implementam. E o que isso significa é que você tem um conjunto de funções disponíveis que servem para qualquer um desses bancos de dados, ou seja você não vai precisar aprender cada um dos drivers isoladamente.

Além disso, um dos principais motivos para você adotar o PDO é pelo suporte nativo a queries parametrizadas que ele tem. Basicamente é uma função de segurança que torna muito simples e eficiente o tratamento contra qualquer tipo de SQL Injection. Não vou entrar em detalhes, você pode ver mais sobre como começar a utilizar o PDO nesse tutorial.

Vale lembrar que, obviamente, você ainda precisará executar as queries na syntaxe correta de cada banco de dados.

E já que estamos falando sobre bancos de dados, vai uma dica rápida:  nunca utilize um loop de queries ao banco de dados, as vezes algo parece inocente mas não é. Possivelmente você pode estar fazendo algo como:

 

E é possível que $postModel seja uma model conectada com um banco de dados e cada chamada do método find busca no banco de dados um post com aquele id, se esse for o caso, para cada ciclo do foreach uma chamada ao banco de dados é executada. Não preciso nem dizer o quão ruim para performance isso é né?

4 – Desconhecer ou não utilizar Padrões de Projetos.

“Em engenharia de software, um padrão de projeto ou padrão de desenho (do inglês design pattern) é uma solução geral reutilizável para um problema que ocorre com frequência dentro de um determinado contexto no projeto de software. Um padrão de projeto não é um projeto finalizado que pode ser diretamente transformado em código fonte ou de máquina, ele é uma descrição ou modelo (template) de como resolver um problema que pode ser usado em muitas situações diferentes.” Wikipedia, sobre padrões de projeto.

Não basta conhecer apenas MVC e se considerar o entendedor de padrões de projeto, são diversos padrões para as mais diversas situações e aplicações. Você precisa estudar e ser capaz de optar por quando e qual padrão utilizar.

Além de fornecerem soluções e estruturas robustas para os seus códigos os padrões de projeto fornecem uma linguagem comum para os desenvolvedores descreverem uma situação relativamente complexa em poucas palavras.

Você pode por exemplo dizer:

“Então, estava pensando em adotar o padrão strategy na situação x, y, z”

Ao invés de:

“Então, na situação x,y,z estou pensando em criar uma classe abstrata A, com todos os principais métodos mais um método abstrato chamado ‘acao’, ai criarei várias classes concretas b,c,d que irão estender a classe A com implementações diferentes do metodo ‘acao’, então o cliente vai poder sempre receber uma dessas classes e saber que o método acao estará disponível, porém o algoritmo vai variar de acordo com a situação.”

Na primeira versão, com certeza um programador familiarizado com o padrão vai te entender imediatamente, na segunda mesmo alguém com vasto conhecimento pode ficar confuso e se perder no meio da explicação.

Padrões de projeto deixam seu código mais robusto, te economizam tempo ao fornecer uma solução pronta para diversos problemas e ainda facilitam sua comunicação com outros programadores. Você precisa conhecê-los!

Alguns livros que você pode utilizar são:

    1. Use a Cabeça – Padrões de Projeto: Eu li apenas a versão em inglês, mas suponho que a em português seja igualmente genial. Apesar de todos os exemplos serem em java, se você tiver uma boa noção de POO, você consegue trazer todos os exemplos para PHP facilmente. Super recomendo como leitura inicial no assunto, a linguagem é simples, clara e direta. E da mesma forma que todos os livros da série use a cabeça que eu li até agora, você realmente aprende o que está lendo.
    2. Aprendendo Padrões de Projeto em PHP: Foi o primeiro livro que eu li a respeito de padrões de projeto, é um ótimo livro, traz diversos conceitos e tem a vantagem de utilizar exemplos escritos em PHP, porém é um livro com uma abordagem um pouco mais técnica, eu recomendaria que você lesse primeiro o use a cabeça, e depois esse.
    3. Padrões de Projeto – Soluções Reutilizaveis de Software Orientado a Objetos: Considerado por muitos a leitura essencial no que se refere a padrões de projeto o livro da GoF, lançado a mais de 20 anos é considerado o percursos de todo o movimento de padrões de projeto. É difícil um livro continuar sendo citado como referência técnica depois de 20 anos do seu lançamento. Porém, essa é a minha próxima leitura no tema e por não ter lido ainda, não posso deixar uma opinião pessoal. Contudo, pelo que li a respeito do livro, ele parece mais um livro referencial, que você volta e verifica algumas questões e não uma introdução ao assunto, portanto ler ele sem saber nada a respeito pode ser perigoso.

5 – Esconder warnings e notices durante o desenvolvimento.

Qualquer projeto em etapa de desenvolvimento deve estar com todos os erros ativos. Você não deveria deixar passar um único notice no seu código, pois indica que algo está errado. Esses erros que costumam serem escondidos são normalmente coisas bobas e fáceis de se resolver com uma linha de código no lugar certo.Faça do jeito certo e não acumule um monte de armadilhas.

Pode ser perigoso deixar esses erros de lado agora e ter uma surpresa desagradável no futuro. Sendo assim, lembre-se: Durante o desenvolvimento todos os erros ativos, durante produção todos os erros desligados. Isso deveria ser uma espécie de mantra.

6 – Não aprender nada novo

Nossa área é dinâmica, muda o tempo todo, surgem coisas novas todos os dias e as coisas velhas ficam ultrapassadas e inseguras. Passar um ano inteiro sem aprender nada novo é um atalho para ficar defasado.

Sendo assim, fique sempre de olho no que está acontecendo no mercado, não só de PHP, experimente outras linguagens, nem que seja só para ter um gostinho de como elas funcionam. Node.Js, Ruby, Python, são todas opções viáveis a serem exploradas.

Porém, mesmo que você resolva ficar só no PHP e aprender as coisas novas do PHP e se manter atualizado nele, já vai ser bom demais!

Conclusão

Espero que tenham gostado dos itens que eu selecionei e gostaria de terminar com uma pergunta e um pedido. O pedido é que caso achem que eu esqueci de algo que é mais importante, ou discordem de algum dos itens da lista, comentem ali em baixo.

A pergunta, que você pode responder nos comentários ou usar para conhecimento pessoal é:

Em 2014, o que eu aprendi e mudei no meu trabalho que me torna um profissional melhor?

Um forte abraço e um ano maravilhoso cheio de aprendizados (:

Conheça o autor do post

Gabriel Felipe:
Notice: the_author_description está obsoleto desde a versão 2.8.0! Use the_author_meta('description') em seu lugar. in /home/webingpro/www/blog/wp-includes/functions.php on line 3844
Tenho foco em PHP, mas gosto de ficar de olho no que ta acontecendo no mercado. Já brinquei com: Python, Node.JS e Ruby on Rails. PHP ainda é minha paixão no entanto. Na formação, sou autodidata desde 2004. Aprendi o que eu sei com a internet e esse blog é uma tentativa de devolver um pouco disso. Eu gosto de opensource, e a maioria das coisas que você encontrar aqui vão estar licenciadas sobre beerware, ou licença da cerveja.

  • Mateus Silva

    massa vei valew