A visualizar arquivo completo com todos os posts do Blog

Nem todos os programadores de PHP desenvolvem a pensar no futuro. Quer estejam a desenvolver sozinhos ou em equipa é sempre bom obedecer a algumas regras que se devem manter em todo o projecto, assim como documentar o nosso código.

Aqui ficam algumas dicas que actualmente aplico em todos os meus projectos.

Portátil na relva

Indentação do código
Se não temos código legível como o vamos alterar no futuro? É por isso que a indentação é muito importante.

  1. <?php if (empty($var)) {echo 'Está vazio';} ?>

No exemplo acima temos tudo numa linha de código apenas. Com pouco texto é perceptível, mas com uma função mais complexa seria o caos. Se utilizarmos indentação o código fica perceptível quer por nós quer por quem visualize o código posteriormente.

  1. <?php
  2. if (empty($var)) {
  3.    echo 'Está vazio';
  4. }
  5. ?>

Pessoalmente não aconselho a efectuar a indentação com espaços, é preferível usar tabulações pois o seu tamanho pode ser definido directamente na aplicação que estamos a usar para editar o código. O número de tabulações entre linhas de código fica ao vosso critério, mas seja qual for lembrem-se de o utilizarem sempre para que o código fique igual em todo o projecto.

Nomes de funções e variáveis
O PHP é uma óptima linguagem pois deixa-nos programar da forma a que mais nos adaptamos. Isto tem um custo associado, e por vezes as nossas escolhas nos nomes de funções e variáveis podem não ser as mais correctas.

  1. $variable_name
  2. $VariableName
  3. $variableName
  4. $variablename

As primeiras três linhas são bons exemplos de como dar um nome a uma variável ou função. A primeira é normalmente a mais utilizada, usando um underscore (_) em substituição de um espaço.

A quarta linha é um mau exemplo porque o nome da variável fica mais confuso e torna-se mais difícil ler o seu nome.

Eu opto sempre por colocar o nome de variáveis e funções na forma CamelCase com a primeira letra minúscula (mixedCase) tal como na terceira linha do exemplo acima.

Números mágicos
Guardar um número como ID em vez de uma palavra numa base de dados torna a indexação mais rápida e ocupa menos espaço em disco, tornando a base de dados mais eficiente. Fazer o mesmo em programação é o oposto.

  1. <?php
  2. if ($var == 3) {
  3.    // Corre função
  4. }
  5. ?>

Visualizando o código ficamos sem saber a que corresponde o algarismo 3, um número mágico. Se definirmos uma palavra ao nosso algarismo tornamos o código mais perceptível e fácil de manter caso o valor deste algarismo altere.

  1. <?php
  2. define('ACTIVO', '3');
  3. if ($var == ACTIVO) {
  4.    // Corre função
  5. }
  6. ?>

Podemos assim definir uma palavra que corresponde ao algarismo, e se desejarmos basta alterar num local o algarismo correspondente e todo o nosso código vai saber que ACTIVO para a corresponder a um novo número.

Comentários
Colocar comentários no código a documentar o que cada função faz é crucial. Não apenas para quando trabalhamos em grupo mas também quando são projectos individuais. Certamente com o código fresco na cabeça se lembram do que cada pedaço de código faz, mas se necessitarem de alterar algo após 6 meses ou 1 ano certamente vão agradecer que o código esteja devidamente documentado.

Sempre que declararem uma função é bom explicar o que ela faz e explicar o que cada argumento recebe.

Existem países onde a tentativa de ataque a servidores e o envio de spam é superior aos restantes. Um desses países é a China, o qual decidi bloquear.

Após vários meses de teste decidi partilhar convosco os resultados.

China bloqueada

Preocupo-me bastante com a segurança dos servidores onde tenho os meus sites alojados. Aliás, programo sempre com a segurança em mente, colocando os mecanismos de defesa do servidor activos como último recurso. Existem programadores que o fazem ao contrário, não se preocupam com a segurança porque o servidor deve efectuar a protecção, acabando com os seus sites atacados por malware, muitas vezes a enviar spam do seu próprio domínio.

Sempre que analisava os logs de servidor ou era notificado de um bloqueio os países eram sempre os mesmos. Decidi analisar o tráfego de todos os sites que possuo, e apenas um destes países que me atacava não produzia visitas válidas.

Estou a falar da China, obviamente. Decidi então cortar o mal pela raiz e bloquear este país. Podem sempre usar proxys doutros locais, é certo, mas as notificações eram de IP’s associados à China.

No caso do CPanel com a firewall CSF basta adicionar a entrada CN para bloquear os IP’s provenientes deste país. Noutros sistemas podem ser utilizar uma das muitas listas existentes e adicionar as entradas ao iptables.

Resultados
Quando efectuei esta operação estava apreensivo pois tinha ideia que o load da máquina iria subir. Felizmente tal não aconteceu e as tentativas de ataque daquele país assim como o envio de spam acabaram.

Passei a ter menos alertas de tentativa de ataque e o número de mensagens de spam desceu consideravelmente. Tendo em conta que no meu caso não existe tráfego real vindo da China esta é uma medida interessante para aumentar a segurança de um servidor.

Quando lancei este blog sempre disse que aqui seria o local onde iria dar a minha opinião pessoal sobre vários assuntos, partilhar ideias e desenvolver aplicações úteis.

Noutros locais tal pode não acontecer, e é por isso que escrevo este post.

Escrever no computador

Quando um projecto ou comunicação feito por mim não está sobre meu controlo podem existir alterações no conteúdo que não são de todo do meu agrado. Nalguns locais posso-me dar ao luxo de não enviar conteúdo daquela forma, noutros não tenho essa sorte.

Portanto se virem algo escrito com o meu nome que não venha deste blog ou de outro dos meus projectos pode existir a possibilidade desse texto não reflectir a minha opinião, nem estar de acordo com os meus conhecimentos.

Fica aqui o alerta à navegação.

Conhecem o Layar, o primeiro browser de realidade aumentada? A localização dos postos de abastecimento do Mais Gasolina passaram a partir de hoje a estar disponíveis através desta aplicação para Android e iPhone.

Mais Gasolina Mobile no Layar

Quando lancei o Mais Gasolina uma das primeiras funcionalidades foi a possibilidade de exportação dos postos para o Google Earth e para os GPS da TomTom. Mais tarde veio a exportação para os GPS da NDrive e o Mais Gasolina Mobile.

Agora o Mais Gasolina passa a estar disponível no Layar.

O Mais Gasolina não está de todo preso ao computador, está cada vez mais móvel, e a implementação desta nova funcionalidade é apenas mais um passo para garantir um acesso gratuito noutras plataformas móveis.

Para testar basta abrirem a aplicação Layar e procurar pelo layer Mais Gasolina.

No fim de semana passado anunciei mais uma novidade para o Mais Gasolina Mobile disponível em m.maisgasolina.com, a geolocalização.

Agora é mais fácil obter os postos de abastecimento perto da nossa localização, algo indispensável numa web app deste género.

Mais Gasolina Mobile no Nexus One

Esta funcionalidade era para ter sido implementada logo de inicio, mas algumas dificuldades técnicas fizeram com que o Mais Gasolina Mobile fosse lançado sem esta.

Assim, se o browser do nosso telemóvel for compatível com a API de geolocalização da W3C (Android, Opera Mobile) ficamos a saber quais os postos mais perto da nossa localização.

Simples e eficaz, certo? Mas e se o browser não for compatível com geolocalização?

A pensar nestes casos foi criada uma nova área no Mais Gasolina Mobile que não só resolve esta situação como adiciona uma nova funcionalidade interessante. Na pesquisa por local basta indicar uma cidade ou localidade para obtermos os postos mais perto de nós. Por exemplo, se estiver em Matosinhos e pesquisar por esse local vou obter os postos de abastecimento mais perto de mim.

A nova funcionalidade interessante é a pesquisa por postos perto de locais onde iremos estar. Vamos supor que estou em Matosinhos mas quero saber onde abastecer em Portimão e apenas tenho o telemóvel comigo, basta uma pesquisa por Portimão e rapidamente fico a saber as bombas mais perto daquela localização.

Para quem possui um GPS continuo a aconselhar os pontos de interesse, disponíveis desde o lançamento do Mais Gasolina, no entanto o Mais Gasolina Mobile é a forma ideal de obter informações sobre o posto e os preços praticados.

Existem actualmente três jogos que não saem do meu Steam: GTA Vice City, GTA IV e Race Driver: GRID. Normalmente por esta altura jogo sempre Vice City, é um jogo que gosto e para passar o tempo é do melhor.

Desta vez decidi antes voltar a jogar Grand Theft Auto IV, e olhem que o jogo é terapêutico! Ajuda a libertar o stress e evita que ande por aí aos tiros na vida real :lol:

Grand Theft Auto IV

Sempre fui fanático por jogos de carros mas nunca gostei de estar limitado a pistas. Quando comecei a jogar GTA (o primeiro) tinha um novo tipo de jogo onde andava para todo o lado de carro com liberdade total. Fiquei viciado, principalmente quando saiu o Vice City!

Mas no GTA IV, apesar de ter menos espaço que o San Andreas, tem um guião interessante e muita coisa por explorar. Depois com os objectivos da Xbox Live (ou Games for Windows: Live) ainda se torna mais interessante voltar a jogar e completar alguns dos objectivos. Ainda hoje, mais de um ano depois, desbloqueei o objectivo Liberty City Minute onde tinha que acabar o jogo em menos de 30 horas.

Estou agora tentado a adquirir a expansão Episodes From Liberty City que contém o The Lost and Damned e The Ballad of Gay Tony.

Gosto mais de Carros do que Chocolates

O meu blog sobre carros não sofria uma actualização profunda no seu design desde que o coloquei online, em 2005.

Optimizado para resoluções mais pequenas, fruto dos seus 5 anos, esta sua primeira versão despede-se dando lugar a um design mais moderno que foi colocado hoje online.

 
Copyright © 1985 - 2010 Eduardo Maio. Alguns direitos reservados.
eduardomaio.net - Às vezes mais valia ser Agricultor do que Programador
Ao navegar no blog eduardomaio.net está a concordar com os termos legais e de privacidade.