Uso de frameworks para desenvolvimento web e mitos que já deveriam ter desaparecido

AGRADEÇA AO AUTOR COMPARTILHE!

O desenvolvimento de aplicações web utilizando frameworks se expandiu de tal forma que tornou-se imprescindível o uso de frameworks para construção de sistemas voltados para internet/intranet/web. Pequenos e grandes; nacionais e internacionais; muitos são os cases atribuídos aos modernos e ágeis frameworks para desenvolvimento web.

O famoso padrão MVC (model view controller) encaixa-se como uma luva para aplicações web, e é melhor aproveitado quando explorado por um framework. Frameworks implementam o padrão MVC de forma realmente padronizada (o que às vezes varia, é a nomenclatura, como no Django), explorando ao máximo o padrão MVC.

Existem inúmeros benefícios alcançados ao utilizar frameworks, como o ganho de produtividade, a redução da possibilidade de erros (produtividade, de novo), maior nível de abstração (produtividade?), compatibilidade e integração entre aplicações (produtividade!), desenvolvimento de forma mais segura e prazerosa :) Além destes benefícios, há a vantagem de contar com o apoio da comunidade, já que os frameworks são usados em larga escala e geralmente são comunitários.

Contra estes benefícios, existem poucas desvantagens e muitos mitos. Em grande parte das discussões que envolvem o uso de frameworks, percebe-se no time “do contra” muito preconceito, argumentos recheados de mitos e, por vezes, confusões e conclusões baseadas em frustrações passadas. Alguns dos mitos e confusões mais comuns são:

  • Frameworks amputam o desenvolvedor. Algumas pessoas defendem que ao usarmos frameworks passamos mais tempo configurando do que programando. Em alguns casos, tais pessoas têm razão (experimente fazer algo bem simples em frameworks que não trazem convention over configuration), mas, na maioria dos casos, elas estão incorretas. Assim, defender o não-uso de frameworks argumentando que o desenvolvedor crescerá mais pessoal e profissionalmente fazendo tudo “na mão” é algo bastante errado, até por que os frameworks atuam principalmente nas partes mais chatas. Não é fazendo validação de formulário e tratamento de requisições com type cast que alguém se torna um excelente programador;
  • Não é boa ideia usar os frameworks modernos, pois os antigos eram muito complexos. “Eu tenho um trauma com frameworks, usei isso um tempo atrás e não deu certo”. Preconceito discriminatório não é bom em informática nem em nenhum outro lugar. Hoje em dia, os frameworks são muito mais modernos e ágeis do que as ferramentas de anos atrás. Não faz sentido algum julgar uma ferramenta que você não conhece baseando em uma que você conhece (e não gosta), não da pra justificar a recusa do VRaptor 3 baseando-se numa má experiência com o Struts 1.1 em 2003, ou de um dos vários frameworks Python modernos por que em 2002 você testou o Zope e achou ele complicado;
  • Frameworks provocam perda de desempenho. Sim, provocam, mas isso geralmente é imperceptível. Mesmo que haja uma gigante e complexa estrutura (o que é incomum nos frameworks mais modernos), a interpretação de uma linguagem de templates e mais algumas firulas que fazem com que se perca desempenho, dificilmente o usuário final perceberá a diferença. Além disso, os frameworks também fornecem recursos como cache em memória para que o desempenho com eles seja melhor do que sem eles;
  • Se um framework tiver uma falha de segurança, minha aplicação fica vulnerável. Sim, é verdade, mas frameworks raramente têm falhas de segurança (pesquise no Google sobre falhas de segurança em frameworks). Frameworks bons são testados, utilizados e desenvolvidos massivamente; e costumam ter grande parte do código coberta por testes, o que garante um alto índice de segurança e pequena possibilidade de falha.
  • Usar framework? Eu não gosto de WordPress nem Joomla, são pesados! Por mais incrível que possa parecer, existem profissionais que atuam com desenvolvimento web e não sabem ao certo o que é framework. Esta falta de conhecimento é comum em alguns profissionais totalmente técnicos (geralmente 100% auto-didatas), desprovidos de alguns conceitos fundamentais. É um caso bem difícil de solucionar, mas o incentivo da comunidade e a exigência do mercado de um nível maior de conhecimento de conceitos pode, a longo prazo, solucionar este problema.

Hoje em dia, dificilmente alguém consegue levantar argumentos válidos contra o uso de frameworks web. Cases grandes como Twitter, SourceForge e BitTorrent.com mostram que os “peixes grandes” acreditam e, consequentemente, investem em frameworks web.

Frameworks web são utilizados em larga escala. Não é moda, é uma necessidade comprovada pela comunidade e pelo meio corporativo, e alguns mitos têm que ser derrubados.

AGRADEÇA AO AUTOR COMPARTILHE!

3 Comentários

Denis
1

Excelente artigo, me fez relembrar que estou há muito tempo me “enrolando” para começar a utilizar algum framework em PHP. Um dos fatores que impede é falta de tempo e aquela “sensação de conforto” em fazer tudo na mão por já conhecer as rotinas.
Parabéns pelo artigo.

Daniel
2

Excelente. Estou começando agora com a utilização de frameworks para desenvolvimento WEB e estou me apaixonando. Utilizo Django, e tudo o que foi dito é confirmado. E digo mais, um desenvolvedor WEB passa mais tempo validando pequenos detalhes do que construindo realmente, caso não faça a utilização de um framework que conheça.

Mauro
3

Exelente artigo,

trabalhando com um framewrok não se precisa reinventar a roda todos os dias pois em frameworks, não em todos, temos os conceitos KISS e DRY aplicados, sendo assim ja temos uma boa gama de coisas para o auxilio no desenvolvimento.

@Denis

Um framework que comecei a estudar e não me arrependi em nada foi o cakephp, em relação ao tempo pare e estude o cakephp sabado e domingo, pois em pouco tempo tera uma aplicação funcionando.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">