Parte I – Introdução aos frameworks

Introdução a Frameworks

Diagrama ilustrativo sobre a interseção de funcionalidades comuns em aplicações semelhantes

Ao pé da letra, framework é uma abstração de soluções prontas para problemas comuns. Por exemplo, um e-commerce procura um conjunto de ferramentas que ajudem no seu funcionamento, como carrinho de compras, cálculo de frete, etc. Cada framework tem suas características e, por consequência, vantagens e desvantagens.

As maiores vantagens de fazer uso de Framework são:

  • Desenvolvimento rápido.
  • Não precisa de reinventar a roda, existem várias bibliotecas prontas.
  • As bibliotecas geralmente são bem testadas, documentadas e bem escritas.
  • A segurança é maior. Geralmente os frameworks já cuidam dos filtros de XSS, SQL Injection, session hijacking.
  • Seguem um padrão de escrita, como PSR-0, 1, 2… Isso torna o código mais limpo e legível.

Por outro lado, existem desvantagens:

  • A curva de aprendizado é alta, demora um pouco para aprender como usá-los.
  • Para criar novas funcionalidades você precisa de um tempo maior para aprender como o Framework funciona.
  • Se existe algum exploit ou falha de segurança, sua aplicação precisa esperar um patch da equipe que desenvolve o Framework.

Diferenças entre frameworks full stack e non-full stack.

Frameworks full stack obrigam você utilizar todo ecossistema deles, mesmo que seja apenas para usar uma ferramenta. Os non-full stack ou modulares, deixam a critério do desenvolvedor escolher o que vai usar e ainda existe a possibilidade do desenvolvedor usar as bibliotecas do framework em projetos avulsos.

Composer.phar

O grande hit dos frameworks modulares atualmente é Composer. Ele é um gerenciador de dependências, não de pacotes (embora lide com as bibliotecas e os pacotes). O desenvolvedor escolhe quais são as dependências do projeto e ele se encarrega de instala-las e mantê-las atualizadas. A ideia do Composer mesmo sendo brilhante, não é nova, ele foi inspirado no npm (node.js) e bundler (ruby). Todas as dependências ficam em um repositório chamado Packagist, que na verdade é um agregador de repositórios.

Os frameworks modulares utilizam o máximo do que o Composer pode proporcionar. Ele permite que o desenvolvedor “instale” os módulos (pacotes) através dele, tornando muito mais dinâmico o uso dos frameworks modulares, hoje pode-se usar a classe de Rotas do framework A e usá-la no framework B, tornando-os quase plug-and-play.

Concluindo

A escolha de qual framework usar é muito complicada, vários fatores devem ser levados em consideração, existem micro-frameworks específicos para criação de APIs, outros são específicos para e-commerce, blog, etc. Não existe solução perfeita, cada projeto precisa ser levado em conta qual tecnologia usar. Muitas vezes o uso de framework dificulta a implementação de novos recursos, ele deve ser utilizado a favor do projeto, não contra. Uma vez que ele gera mais problemas do que facilita já deve ser cogitada a ideia da troca de framework.

Referências

  1. http://stackoverflow.com/questions/635007/framework-what-is-a-php-framework
  2. http://stackoverflow.com/questions/1506782/full-stack-versus-non-full-stack-mvc-php-frameworks-whats-the-difference
  3. https://getcomposer.org/doc/00-intro.md

 

Assine o plano de hospedagem que melhor atende suas necessidades a partir de R$8,42/mês*

Pedro Maia
Pedro Maia

Desenvolvedor front-end na DialHost, estudante de Sistemas de Informação na PUC Minas. Apaixonado por desenvolvimento de aplicações web e bacon.

Otimizando o desempenho do site

Otimizando Sites

Gráfico Ilustrativo

Hoje, se você pesquisar no Google sobre otimização de sites,  irá encontrar uma pancada de posts em diversos blogs pelo mundo lhe ensinando técnicas de cache, alteração de alguns comportamentos do site pelo cabeçalho do HTTP, criar sprites com as imagens, etc…
Bom, apesar da clássica “cada caso é um caso”, pelo tempo que tenho dentro da DialHost analisando casos de clientes legando lentidão no site acabo por apresentar aqui algumas dicas essenciais para melhorar a capacidade de usuários suportados simultaneamente por um sistema web e como reduzir o tráfego de dados aplicando algumas diretivas. Lembrando que não focarei em implementações, pois há referências o suficiente no final do artigo.

Otimizando suas imagens

Se estiver utilizando softwares para edição de imagens, procure sempre salvá-las com qualidade considerável e no tamanho exato a qual serão utilizadas, ou seja, nada de redimensionamentos no HTML. Para montar o layout, dê preferência aos sprites pois haverá apenas uma requisição ao invés de várias (as quais exigem mais do servidor causando possíveis lentidões) e você evita que alguns elementos assíncronos sejam carregados enquanto o usuário navega na página. Tome cuidado com imagens que você realmente quer que sejam indexadas pelo Google, nesse caso o sprite já não ajuda tanto. Utilize também compressores de imagem (Ex: pngcrush, jpegtran, etc), eles salvam mais alguns poucos bytes.

Preocupe-se com o protocolo HTTP

Se você é desenvolvedor, deve voltar sua atenção ao principal protocolo em que trabalha. Os cabeçalhos oferecem diversos parâmetros para controlar seu sistema durante o carregamento das páginas. São parâmetros importantes: Cache-Control e Last-Modified para controle de cache e Content-Encoding para compressão.

Em produção, reduza seus arquivos

A não ser que você queira mostrar seu CSS, JavaScript e HTML para desenvolvedores, comprense-os. Não há necessidade de arquivos bem estruturados para produção, portanto deixe seus respectivos conteúdos em uma linha apenas, assim você salva alguns bons bytes. Um bom exemplo online é o JsCompress. Teste um javascript seu nele e veja a redução ocorrida.

Utilize domínios paralelos para requisições estáticas

Um impacto para os usuários quando requisitam uma página é o seu número de componentes. Com cada componente necessitando de uma nova requisição HTTP e a RFC 2616 (HTTP/1.1) sugerindo que apenas duas requisições devem ser processadas em paralelo por hostname, surge a necessidade de maior atenção para sites grandes em questão de arquivos por página. Uma boa sugestão são subdomínios para arquivos estáticos como imagens. Ex: http://img.example.com/ contém imagens estáticas para o site http://example.com/

Como disse anteriormente, não foquei em particularidades das N existentes pois além das referências abaixo, você não precisa suar a camisa para implementar todas as otimizações que conhece caso seu sistema não precise. Este é apenas um guia geral de onde aconselho uma atenção maior após o site entrar em ambiente de produção.

O conteúdo pesado, com exemplos de implementações, detalhes de cada parâmetro e outras dicas estão listados nos 3 guias que mais me auxiliam nestas questões. São guias do Google e Yahoo! de melhores práticas, há muita informação boa lá. Dê uma passada e salve no seu Delicious:
Melhores práticas de Cache do Google
Melhores práticas de PayLoads
Guia de Performance do Yahoo!

Ah, uma boa dica também é o plugin PageSpeed que pode ser incorporado ao seu Firefox ou Chrome e lhe auxiliar bastante para melhorar a performance das suas páginas, mas lembre de não se limitar a ele.

Com a DialHost você tem os melhores planos de hospedagem de sites e atendimento 24h.Confira!

 

Victor Torres
Victor Torres

É Jedi na DialHost, bacharel em Ciência da Computação e mestrando em Modelagem Matemática e Computacional pelo CEFET. Trabalha com desenvolvimento web desde 2007. Pesquisador de otimização e criptografia, é apreciador de um bom café e fã de histórias futuristas.

Stack Overflow – Conheça o melhor site de perguntas e respostas de programação

Desenvolvimento de software é algo que exige muito estudo, e é muito complicado para quem está começando. Mesmo com abundância de cursos online, blogs, tutoriais, livros de referência, manuais e ajuda, com frequência se encontra uma dúvida difícil de ser respondida.

O Stack Overflow é um site americano gratuito de perguntas e respostas sobre desenvolvimento de software de grande força no exterior. No Brasil há uma crescente popularidade apesar da barreira da língua, pois tudo postado no site deve ser em inglês.

Como funciona

Perguntas e respostas feitas pelos usuários podem ganhar votos positivos e negativos, o que recompensa ou pune seus donos com pontos de reputação, criando assim um sistema ao mesmo tempo competitivo e auto-regulatório. A existência dos pontos de reputação incentiva usuários a ajudarem cada vez mais, o que faz com que cada pergunta tenha uma quantidade de visualizações grande, e pode ser respondida em até dez minutos após ser postada dependendo de sua complexidade.

stock_overflow_1

A página inicial do site, exibindo as perguntas com mais votos (Foto:Divulgação)
Às perguntas atribuem-se tags, que juntamente com o título serão o meio pelo qual os experts na tecnologia em questão irão encontrar sua pergunta e responde-la. Pode- se fazer comentários em perguntas e respostas pedindo mais detalhes, indicando se é o melhor jeito de fazê-lo, ou até questionando a necessidade de fazer o que a pergunta pede.

Pontos de reputação indicam sua dedicação ao website, e reputações maiores te dão poder de tomar ações de maior responsabilidade como editar perguntas de outras pessoas, alterar tags, fechar ou deletar perguntas, entre outros. Esse sistema é interessante, pois usuários mais experientes guiam e alertam usuários novos, mantendo assim sempre a qualidade nas perguntas e respostas.

Nenhum conteúdo postado no site é de autoria do usuário que a escreveu, e toda informação do site pertence à comunidade, pois tudo pode ser mudado por todos (dependendo dos seus pontos de reputação), o que cria um modelo colaborativo parecido com o da Wikipédia.

Da criação ao sucesso

A ferramenta foi criada em 2008 pelos americanos Jeff Atwood e Joel Spolsky. Ambos são desenvolvedores de software, e possuem blogs conhecidos na área. Sem sites de pergunta e resposta que fossem gratuitos e de qualidade, a busca por informação específica na área de desenvolvimento era muito frustrante. “Se você tiver sorte, na quarta página de resultados de uma busca, você encontrara uma discussão de sete páginas com centenas de respostas, das quais 25% são spam”, disse Joel Spolsky em um de seus posts.

Para construir um site colaborativo, é necessário fazer com que seu número de usuários suba rapidamente, e para isso os blogs de Atwood e Spolsky foram muito úteis. Após cinco semanas de resultados impressionantes com o beta fechado para algumas centenas de desenvolvedores, em Setembro de 2008 o site foi aberto ao público, e vem desde então crescendo, alcançando hoje mais de 1,3 milhão de perguntas. A empresa possui atualmente 27 funcionários e reside em Nova York.

O nome do site foi originado de uma votação, e é o nome de um erro comum em desenvolvimento de software, “Stack Overflow”, que ocorre quando se excede a capacidade da parte “call stack” da memória, responsável por armazenar chamados de funções.

Stack Exchange

O sucesso do Stack Overflow foi tão grande, e o modelo de pontos de reputação funcionou tão bem que a mesma plataforma foi aproveitada para a criação de uma rede de sites de perguntas e respostas chamada Stack Exchange, que comporta hoje outros 41 com diferentes temas, dentro ou fora de tecnologia. Entre os mais famosos estão o Server Fault, sobre administração de sistemas, o English Language and Usage, sobre a língua inglesa, o Guitars, sobre teoria de música, violões e guitarras, e o Cooking, sobre culinária.

No blog do Stack Overflow foram divulgados dados de tráfego, e foi indicado que o crescimento do site é muito satisfatório, tendo conseguido em Dezembro de 2010 16 milhões de visitantes únicos.

stock_overflow_2

Dentre os países com mais usuários do Stack Exchange, em primeiro lugar naturalmente está o país onde o site surgiu, Estados Unidos com 30,5%. Em seguida estão Índia (8,6%), Reino Unido (7,2%), Alemanha (4,7%) e Canadá (4,1%). O Brasil se encontra na décima posição, com 1,7% de todos os usuários da rede.

Clique aqui para visitar o Stack Overflow

Fonte: http://www.techtudo.com.br/

DialHost
DialHost

Contamos com nosso DataCenter no Brasil de alta qualidade, estabilidade e confiança para hospedar seu site. Utilize poderosas ferramentas para otimizar o uso do seu serviço e seja sempre atendido de forma rápida e clara pelo nosso atendimento 24h.

10 dicas para tornar seu site WordPress mais leve e mais rápido

Com o Google e outros buscadores se preocupando cada vez mais com o tempo de resposta de sites e de blogs, é muito importante que você torne seu site WordPress mais leve e, acima de tudo, mais rápido. Existem muitos templates WordPress que infelizmente não estão devidamente otimizados para buscadores, mas mais importante que otimizar seu template é você otimizar sua instalação do WordPress para que seu site carregue suas postagens mais rapidamente e produza resultados mais interessantes e atrativos.

Embora o WordPress seja atualmente a plataforma de blogagem mais usada do mundo, é um fato também que o WordPress tem bastante dificuldade em lidar com consumos de memória. Se seu site receber uma boa quantidade de visitantes, seu servidor de hospedagem irá sentir dificuldades em lidar com tamanho consumo de memória, e é essencial tentar combater esse problema, para tornar seu site mais leve e mais rápido. De acordo com os colegas do line25, estas dicas de otimização reduzem cerca de 90% dos seus problemas de falta de velocidade em seu site.

1. Instale um plugin de cache

O cache é algo que normalmente resolve 90% dos problemas em servidores. Ele normalmente o imenso carregamento de páginas em seu servidor apresentando arquivos estáticos a seus usuários em vez de estar sempre chamando informação do seu banco de dados. Existem muitos plugins que você pode instalar para gerir o cache do seu site, mas tenha em mente que só deverá usar um e apenas um deles. Nunca instale mais do que um plugin de cache, de forma a não criar conflitos em seu servidor. Eis algumas recomendações:

* WP-Cache
* WP Super Cache
* Hyper Cache
* W3 Total Cache

De todos esses, o W3 Total Cache é o melhor de todos, pois não trata apenas da cache em suas páginas, mas também o faz em seu banco de dados, em seu browser, e ainda em seus objetos. No entanto, é o mais complicado de configurar de todos eles.

2. Remova alguns plugins e widgets

Os plugins para WordPress são o que tornam essa aplicação mais poderosa, mas a verdade é que muitos deles tornam seu site mais lento, e você deve removê-los ou integrá-los diretamente no arquivo de funções de seu template. Cada plugin cria processos extras que seu servidor tem de resolver cada vez que uma página é carregada, e removê-los, e consequentemente remover esses processos, pode tornar seu site bem mais rápido.

Em vez de usar um plugin para colocar seu Analytics no rodapé de seu site, faça-o você manualmente. Ao invés de usar um plugin para colocar suas mídias sociais no fundo de suas postagens, adicione-as você ao seu template. Se você remover alguns plugins desnecessários, certamente seu site ficará mais rápido.

3. Otimize o código de seu template

Esta dica é mais para designers e desenvolvedores que usam seus próprios sites, ao contrário de sites que são criados para clientes, ou ainda os templates WordPress que são lançados regularmente para o mercado de forma gratuita. Removendo algumas tags PHP de seu WordPress pelo velhinho código HTML pode realmente acelerar seu site. Imaginemos a função . Cada vez que sua página é carregada, o WordPress tem de verificar em seu banco de dados o número de páginas que estão armazenadas, e depois injetá-las em seu código através de elementos <li>.

Ao invés disso, linke você diretamente para suas páginas através de HTML em seu template:

<ul>
    <li><a href="/categoria/artigos">Artigos</a></li>
    <li><a href="/categoria/inspiracao">Inspiração</a></li>
    <li><a href="/categoria/tutoriais">Tutoriais</a></li>
    <li><a href="/sobre">Sobre</a></li>
    <li><a href="/publicidade">Publicidade</a></li>
    <li><a href="/contatos">Contatos</a></li>
</ul>

O mesmo pode ser feito para várias tags PHP que se encontram em seu template, como por exemplo as tags , ou a tag Depois de você ter seu template construído ou seu site online, é bem provável que nenhuma dessas informações venha a se alterar ao longo do tempo.

Hard-code-2

4. Minimize seu HTML e seu CSS

Minimizar seus arquivos garante que eles fiquem menos pesados, acelerando suas páginas em alguns milisegundos. Se você decidiu instalar o plugin W3 Total Cache para realizar o cache em seu site, ele oferece uma série de opções para minimizar seus arquivos de HTML e se CSS. Se por ventura não instalou o plugin, considere analisar seu código HTML e CSS e remover espaços em branco desnecessários ou otimizar seu código para que ele seja carregado mais rapidamente.

5. Comprima suas imagens

As imagens correspondem a uma grande porção dos arquivos que são carregados cada vez que um usuário de seu site pretende ler uma página. Alguns arquivos, como as imagens de cabeçalho e outras presentes em seu template, são carregadas sempre que uma página é carregada, e é essencial que elas estejam o mais comprimidas e leves possível. Tenha a certeza de que passa todas as suas imagens pela ferramenta Smush.it para as comprimir corretamente sem perderem qualidade. Se desejar, poderá ainda instalar o plugin WP Smush.it que o ajudará a otimizar todas as imagens que você usar em suas postagens.

6. Desligue a revisão de postagens

A revisão de postagens é algo importante se você estiver carregando um site com vários autores, mas para a maioria das pessoas que fazem sites essa é uma opção que nunca é usada para nada. A revisão de postagens é algo que pode tornar seu banco de dados bem pesado, com várias revisões de seus artigos, o que faz com que seus arquivos SQL se tornem alguns Megabytes mais pesados. Para desligar essa opção, copie e cole o seguinte código em seu arquivo wp-config que se encontra na raíz de seu servidor:

1 define('WP_POST_REVISIONS', false );

Não se esqueça também de eliminar suas revisões de postagens antigas correndo uma query SQL através do seu phpmyadmin ou ferramenta similar:

1 DELETE FROM wp_posts WHERE post_type = "revision";

Post-revisions-3

7. Elimine seus comentários de spam

Tal como acontece com a revisões de postagens, os comentários de spam que foram caçados em seu site pelo Akismet podem ocupar bastante espaço em seu banco de dados, especialmente se você nunca os eliminou e tem no seu site milhares deles. Em seu painel de administração, visite sua seção de comentários e o separador Spam, e carregue no botão que diz Eliminar Spam. Voilá!

8. Faça uma limpeza em seu banco de dados

Se o seu site tiver alguns anos, suas chances de ter em seu banco de dados uma série de tabelas que não são mais necessárias é muito grande. Muitos plugins que são bem desenvolvidos eliminam suas tabelas do banco de dados automaticamente, no entanto, existem muitos outros que mesmo depois de eliminados, deixam bastante informação desnecessária em sua base de dados. Essas tabelas que não são usadas estão ocupando espaço em seu banco de dados desnecessariamente, e é muito importante que você as elimine. O plugin WordPress Clean Options é uma excelente ferramenta que lhe permite verificar quais as tabelas de seu banco de dados que seu site não está mais usando, dando-lhe a possibilidade de as eliminar imediatamente.

9. Otimize seu banco de dados

Ao longo do tempo seu banco de dados fica desorganizado e com imenso lixo. Tal como acontece com a desfragmentação do disco duro de seu computador, a otimização de seu banco de dados remove esse lixo e reorganiza seu banco de dados de forma que ele fique mais bem estruturado e consequentemente mais leve. Existem dois métodos para fazer isso: ou através de um plugin ou via phpmyadmin. Se você tem o plugin WP-DBManager instalado em seu site, ele plugin tem uma opção de otimização de banco de dados integrada e, inclusive, tem uma opção extra que lhe permite fazer agendamentos de otimização frequentes.

10. Use múltiplos servidores

Se você chegou a um ponto em que sua instalação do WordPress mesmo otimizada e muito organizada continua dando problemas em sua VPS ou em seu servidor dedicado, seu próximo passo deverá ser alugar um novo servidor. Usar um bom servidor para carregar apenas seus bancos de dados MySQL permite que seu WordPress use todos os recursos necessários, enquanto que seu código PHP e seus arquivos de template são carregados a partir de um servidor com características mais modestas. Use a opção define(‘DB_HOST’); em seu arquivo wp-config.php para especificar o endereço de IP em que seu banco de dados se encontra. Simples!

Servers-4

Fonte: http://imasters.com.br/

DialHost
DialHost

Contamos com nosso DataCenter no Brasil de alta qualidade, estabilidade e confiança para hospedar seu site. Utilize poderosas ferramentas para otimizar o uso do seu serviço e seja sempre atendido de forma rápida e clara pelo nosso atendimento 24h.