Url amigável no PHP com Easy PHP
30/11/2008Um assunto muito comentado, principalmente tratando-se de WEB 2.0 é a otimização de websites para buscadores ou search engine otimization - seo. E uma das diretivas que se aconselha seguir é a de url’s amigáveis.
Às vezes os websites tem urls muito grandes e complexas, por exemplo:
index.php?quem=lucas&profissao=programador&linguagem=php&cidade=sorocaba&id=09041989
isso dificulta não só para os buscadores mas para os próprios usuários do site, imagine você lembrar essa url gigante, seria melhor se ela fosse mais simples:
lucas/programador/php/sorocaba/09041989
e sem contar que há rumores de que os buscadores não interpretam com grande relevância os dados apresentados após o ? (ponto de interrogação).
Há vários tutoriais na internet sobre como implementar a técnica de url’s amigáveis no php utilizando o mod_rewrite do apache, não seria de grande valia eu criar um tutorial para esse fim, eu gosto bastante de um tutorial do site Video Tutoriais, você pode ver o tutorial clickando AQUI.
Entretanto, tive alguns problemas para implementar um website rodando local no meu notebook, fiz tudo como o tutorial ensinava e não funcionava localmente, enviei para o server de produção e lá estava rodando sem maiores problemas, então fiz umas pesquisas pela web, postei no fórum de php do imasters, até que cheguei no fórum do próprio Easy PHP, já que utilizo essa solução para ambiente de desenvolvimento php no windows, encontrei um post referente ao problema e fui parar até um fórum de Dupral, foi aonde eu encontrei uma solução.
No arquivo de configuração do apache - httpd.conf além de se descomentar a linha do mod_rewrite, deve-se mudar em < Directory "${path}/www" >… a diretiva AllowOverride None para AllowOverride All, também aparece logo abaixo em < Directory "C:/Program Files/EasyPHP 2.0b1/www">… e também deve ser realizada essa alteração. Sempre reiniciando o Easy PHP após as alterações.
Fica aí a dica pessoal, qualquer problema deixe um comentário que responderei o quanto antes.
Livro Alta Performance em Sites Web
1/11/2008
Recomendo a leitura do livro Alta Performance em Sites Web, conhecimento essencial para engenheiros de front-end. É de extrema importância para os desenvolvedores web, sejam os programadores, os css designers ou qualquer outro profissional relacionado ao desenvolvimento de web sites, ter o mínimo de conhecimento sobre performance em suas aplicações. Esse livro foi escrito por Steve Souders, engenheiro de front-end do Yahoo. Ele mostra várias dicas e técnicas utilizadas para aumentar a performance de uma aplicação web, e praticamente todas elas, se não me engano, foram utilizadas no site do Yahoo. Outro detalhe importante é a ferramenta que ele desenvolveu para medir alguns quisitos de performance, YSLOW, que para ser utilizada é necessário o navegador FireFox com o plug-in firebug.
Vou fazer um breve comentário sobre os tópicos mais importantes do livro.
Faça menos requisições HTTP - nessa parte Steve Souders explica como diminuir as requisições HTTP que sua aplicação faz, consequentemente diminuindo o tempo de carregamento de uma página.
Use uma rede de distribuição de conteúdo - (CDN - content delivery networks) é uma coleção de servidores web distribuídos por vários lugares, distribuem conteúdo para os usuários de forma inteligente.
Obviamente que não são para aplicações de pequeno e médio porte, pois o custo é relativamente alto.
Adicione um Cabeçalho Expires - para o usuário não necessitar recarregar todos os componentes de sua página toda vez que visitar seu site, deve-se definir um cabeçalho expires com uma data futura, dessa forma os componentes só serão baixados novamente quando essa data for atingida, lembrando que essa prática é de maior valida para componentes de pouca atualização, para resolver esse problema Steve sugere nomear os componentes com versionamento, assim se o componente mudar, muda-se o nome do componente e ele será baixado novamente.
Componentes Gê-zip - Steve recomenda a compactação dos componentes, mostra o mod_deflate do Apache (obs.: os exemplos geralmente utilização programação PHP e Apache). Coloque as folhas de estilo no topo - Aqui Souders explica a diferença de colocar as folhas de estilo ( CSS ) em um arquivo externo, colocar no topo da página etc. Deve-se colocar as folhas de estilo no topo pois serão carregadas primeiro, quando o usuário começar a visualizar a página não terá grandes distorções no layout. Colocar o css em um arquivo externo é uma boa prática, pois dessa forma ficará no cache do browser, entretanto se estiver diretamente na página carregará mais rápido (geralmente utilizado na página inicial para aumentar a performance).
Minimize o javascript - nesse capítulo Souders ensina a técnica de minimizar os códigos javascript, tornando seus scripts realmente muito menores.
Bom, fica aí a dica, para maiores detalhes leia o livro!
UML (Unified Modeling Language)
24/05/2008É um modelo de linguagem, não um método. Um método pressupõe um modelo de linguagem e um processo. O modelo de linguagem é a notação que o método usa para descrever o projeto. Os processos são os passos que devem ser seguidos para se construir ou para se construir o projeto.
O modelo de linguagem corresponde ao ponto principal da comunicação. Se uma pessoa quer conversar sobre o projeto, como outra pessoa, é através do modelo de linguagem que elas se entendem. Nessa hora, o processo não é utilizado.
A UML define uma notação e um meta-modelo. As notações são todos os elementos de representação gráfica vistos no modelo (retângulo, setas, o texto, etc.), é a sintaxe do modelo de linguagem. Um meta-modelo é um diagrama de classe que define de maneira mais rigorosa a notação.
A UML é uma linguagem-padrão para a elaboração da estrutura de projetos de software.
Pode ser empregada para a visualização, especificação, construção e documentação de artefatos que façam uso de sistemas complexos de software, orientados a objeto.
Retirado da matéria de .NET da Faculdade de Tecnologia de Sorocaba - FATEC.
Muitos sistemas de informação possuem características próprias, alheias à experiência ou treinamento formal anteriores dos analistas; torna-se então necessário um aprendizado que demanda tempo e esforço, muitas vezes não disponíveis durante o desenvolvimento de um sistema. Além disso, muitas vezes é difícil saber se o conhecimento disponível é adequado às necessidades do desenvolvimento dos sistemas;
Geralmente grandes sistemas de informações exigem a integração de distintas especializações que possuem vocabulários e, às vezes, conceitos da mesma informação diferentes;
Há um padrão de mudanças na informação durante e após o desenvolvimentos de sistemas.
Retirado da matéria de .NET da Faculdade de Tecnologia de Sorocaba - FATEC.
Paradigma da Orientação a Objetos
18/05/2008Consiste em abordar a resolução de um problema, através da análise das entidades e seus relacionamentos, dentro do contexto onde se situa o problema. A partir dessa análise é construído um Modelo de Resolução que represente, da melhor maneira possível, aquilo que acontece no mundo real.
Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de projeto.
A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos.
Retirado da matéria de VB.NET da Faculdade de Tecnologia de Sorocaba - FATEC.
Paradigma da Programação Estruturada
16/05/2008Consiste em uma forma de resolução de problemas em computador, pela divisão do problema maior (principal), em problemas menores e assim sucessivamente. A solução do problema maior ocorre pela solução, em determinada ordem, dos problemas menores.
O modelo de resolução de cada problema menor passa pela análise das entradas e saídas necessárias a resolução do problema, e pela definição do processo que irá transformar as entradas em saídas.
Retirado da matéria de VB.NET da Faculdade de Tecnologia de Sorocaba - FATEC.
Uma linguagem de programação pode ser convertida, ou traduzida, em código de máquina por compilação ou interpretação, que juntas podem ser chamadas de tradução.
Se o método utilizado traduz todo o texto do programa (também chamado de código), para só depois executar (ou rodar, como se diz no jargão da computação) o programa, então diz-se que o programa foi compilado e que o mecanismo utilizado para a tradução é um compilador (que por sua vez nada mais é do que um programa). A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes sem que seja necessária nova compilação, o que compensa o tempo gasto na compilação. Isso acontece com linguagens como Pascal e C (linguagem de programação).
Se o texto do programa é traduzido na medida em que vai sendo executado, como em Javascript, Python, Perl ou PHP, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Programas interpretados são geralmente mais lentos do que os compilados, mas são também geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente (freqüentemente linguagens interpretadas são chamadas também de script).
Embora haja essa distinção entre linguagens interpretadas e compiladas, as coisas nem sempre são tão simples. Há linguagens compiladas para um código de máquina de uma máquina virtual (sendo esta máquina virtual apenas mais um software, que emula a máquina virtual sendo executado em uma máquina real), como o Java e C#. E também há outras formas de interpretar em que os códigos-fontes, ao invés de serem interpretados linha-a-linha, têm blocos “compilados” para a memória, de acordo com as necessidades, o que aumenta a performance dos programas quando os mesmos módulos são chamados várias vezes, técnica esta conhecida como Just-in-Time.
Retirado da matéria de .NET da Faculdade de Tecnologia de Sorocaba - FATEC
Boas Práticas de Programação
11/05/2008Para ser um bom programador deve-se ter boas práticas de programação, independente da linguagem, seja PHP, Java, DotNet e etc. E também independente se a técnica escolhida é a estruturada ou a orientada a objetos. Seguem algumas dicas:
• Estabeleça um comprimento máximo para a linha de codificação para evitar ter que
rolar a janela de código fonte.
• Ponha um espaço depois de cada vírgula em listas delimitadas por vírgulas, como
por exemplo, em uma lista de argumentos.
• Quando for necessário quebrar uma linha de cógigo faça de forma que fique obvio
que a linha está incompleta sem a linha seguinte.
• Evite colocar mais de uma declaração por linha.
• Quebre seções grandes e complexas de código em módulos menores,
compreensíveis.
• Não use números ou textos literais, como for i = 1 to 100. Ao invés disso, use
constantes, como por exemplo: for i = 1 to TOTAL_ITENS, para facilitar a
manutenção e o entendimento
• Utilize variáveis e rotinas somente para um único propósito. Evite criar rotinas de
múltiplos propósitos que executam uma variedade de funções sem conexões. As
variáveis devem ser usadas somente para armazenar informações para a qual foi
criada.
Retirado da matéria de VB.NET da Faculdade de Tecnologia de Sorocaba (FATEC).
Livro PHP para quem conhece PHP
4/05/2008
Indico a leitura do livro PHP para quem conhece PHP.
Segue Resenha:
PHP para quem conhece PHP apresenta recursos avançados desta poderosa linguagem de programação para a Web. Aborda diversos assuntos úteis ao desenvolvedor, como cookies e sessões, upload de arquivos, geração de imagens e gráficos, arquivos PDF, templates, abstração de bancos de dados, entre outros. Além disso, contém uma abrangente revisão sobre PHP, para aqueles que tiveram pouco contato com a linguagem.
Assim como nas demais obras do autor, neste livro a didática também é o ponto forte, o que permite ao leitor o rápido entendimento de assuntos aparentemente complexos. Para facilitar a compreensão dos conteúdos, são apresentados vários exemplos de programas e, ao final, um estudo de caso envolvendo diversos recursos da linguagem.
Nesta obra, você irá encontrar os seguintes assuntos:
- Revisão da linguagem PHP.
- Como melhorar o processamento de formulários HTML.
- Manutenção de informações com cookies e sessões.
- Uso de arquivos no formato texto para o rápido armazenamento e recuperação de dados.
- Envio de e-mails utilizando o PHP, incluindo o uso do formato HTML.
- Upload de arquivos e explicação das diferenças entre o uso dos protocolos FTP e HTTP.
- Geração e manipulação de imagens, incluindo a criação de diferentes tipos de gráficos (pizza, colunas e linhas).
- Criação de documentos no formato PDF, incluindo a geração de relatórios a partir de consultas SQL.
- Ferramentas de templates (modelos) e apresentação da Smarty (http://smarty.php.net), uma das mais utilizadas.
- Abstração de bancos de dados com as extensões dbx e PEAR::DB.
Ler “PHP para quem conhece PHP” é indispensável para quem deseja se tornar um especialista nessa linguagem!
Livro: Segurança em PHP
6/04/2008
Recomendo a leitura desse livro, Segurança em PHP. O foco maior é para administradores de servidores, mas nós programadores devemos estar atentos as possíveis falhas de segurança. Segue resenha:
As falhas de segurança em servidores web são um assunto, cada vez mais, em evidência, e é alarmante o crescimento de websites que sofrem ataques de todos os tipos. É necessário que os profissionais estejam sempre bem preparados e conheçam as maneiras corretas de impedir que vulnerabilidades sejam exploradas.
Segurança em PHP é uma obra de referência com conceitos e dicas preciosas tanto para programadores quanto para administradores de sistemas que têm como objetivo manter servidores e scripts PHP seguros e confiáveis.
Além de abordar aspectos de programação segura referentes à linguagem PHP, o leitor encontrará dicas de como programar de maneira eficiente e como configurar o servidor web e as conexões com banco de dados de forma segura para minimizar as possibilidades de falhas na segurança.
